Root structure
Thesrc/ directory contains three main folders:
All source files are located in the
src/ directory. During the build process, these files are compiled and optimized for production.Assets directory
Theassets/ folder contains all static resources:
JavaScript organization
JavaScript files are organized by page type and functionality:- Core files:
app.js,app-helpers.js,base-page.js - Page-specific:
home.js,cart.js,product.js,blog.js,brands.js - Feature modules:
loyalty.js,order.js,wishlist.js,testimonials.js - Partials: Reusable modules in
partials/directory
Styles architecture
SCSS files follow the ITCSS (Inverted Triangle CSS) methodology:01-settings: Configuration layer
01-settings: Configuration layer
Contains global variables, Tailwind configuration, fonts, and breakpoints.
tailwind.scss- Tailwind CSS importsfonts.scss- Font family definitionsglobal.scss- Global variablesbreakpoints.scss- Responsive breakpoint mixins
02-generic: Base layer
02-generic: Base layer
General styles, resets, and animations that apply globally.
reset.scss- CSS reset rulescommon.scss- Common styles and helper classesanimations.scss- Animation definitions from anime.csslazyload.scss- Lazy loading placeholder stylesrtl.scss- Right-to-left language supportltr.scss- Left-to-right language supporttooltip.scss- Tooltip component styles
03-elements: Element layer
03-elements: Element layer
Styling for bare HTML elements.
buttons.scss- Button element stylesform.scss- Form input stylingradio.scss- Custom radio button stylesradio-images.scss- Radio image options for products
04-components: Component layer
04-components: Component layer
Component-specific styling for theme components.
header.scss- Header componentfooter.scss- Footer componentmenus.scss- Main and mobile menuuser-menu.scss- User dropdown menuuser-pages.scss- Profile, orders, notificationshome-blocks.scss- Homepage block componentsslider.scss- Slider componentsproduct.scss- Single product pagebrands.scss- Brand listing pagefilters.scss- Product filtering UIgifting.scss- Gift wrapping systemloyalty.scss- Loyalty program UIadd-product-toast.scss- Add to cart notificationno-content-placeholder.scss- Empty state displayslanding-page.scss- Custom landing pagesvirtooal.scss- Virtual try-on integration
05-utilities: Utility layer
05-utilities: Utility layer
Utility classes and third-party integrations.
swal.scss- Sweet Alert modal stylingchat-bots.scss- Chat widget integrationsafari-fixes.scss- Safari browser-specific fixesfont-customization.scss- Custom font utilities
Views directory
Theviews/ folder contains all Twig templates organized by purpose:
Page templates
The theme includes templates for all major e-commerce pages:index.twig- Homepagecart.twig- Shopping cartloyalty.twig- Loyalty programlanding-page.twig- Custom landing pagestestimonials.twig- Customer testimonialsthank-you.twig- Order confirmationpage-single.twig- Static pages
Customer pages
Customer account functionality is organized inpages/customer/:
profile.twig- User profile managementnotifications.twig- User notificationswallet.twig- Wallet balance and transactionswishlist.twig- Saved productsorders/index.twig- Order historyorders/single.twig- Order details
Locales directory
Translation files for bilingual support:blocks- Component translations (header, footer, etc.)pages- Page-specific text (cart, order, etc.)common- Shared translations across the theme
The theme supports both Arabic (RTL) and English (LTR) languages out of the box. Custom translations can be added by extending the locale JSON files.
Build output
During the build process:- SCSS files are compiled from
src/assets/styles/app.scss - JavaScript files are bundled and optimized
- Twig templates are processed and validated
- Assets are optimized and output to the
dist/directory
File naming conventions
- Twig templates:
kebab-case.twig - JavaScript:
kebab-case.js - SCSS:
kebab-case.scss - Images:
kebab-case.svg,kebab-case.png
Next steps
Assets folder
Explore images, JavaScript, and styles in detail
Views folder
Learn about components, layouts, and pages
Locales
Understand the localization system