Home
Wiki
Home
Wiki
  1. Css - Scss
  • Back to home
  • 1. Themes
  • Vs Code
    • Getting Started
  • Kitchenware
    • Layout
      • New Layout
      • Legacy Layout
    • Components
      • Announcement
      • Banner Carousel
      • Banner With Products Carousel
      • Blog Category List
      • Blog List
      • Brand List
      • Brands Carousel
      • Breadcrumb
      • Call To Action
      • Cart
      • Categories List
      • Change Password
      • Checkout
      • Cookie Manager
      • Filter list
      • Footer
      • Forgot Password
      • Form
      • Hero Carousel
      • Icon Block
      • Invitation
      • Last Visited Products
      • Layout
      • Login
      • Map
      • Nav Bar
      • Offer
      • Product Attachments
      • Product Attributes
      • Product Documentation
      • Product Expected
      • Product Modal
      • Products Block
      • Products Carousel
      • Product Single
      • Profile
      • Quote
      • Register
      • Related Products
      • Search
      • Stores
      • Subscribe Newsletter
      • Text with Image
      • Top Bar
      • Video
    • Reusables
      • Getting Started
    • Assets
      • Getting Started
    • SDK
      • Products
        • _findProductsByCategory
        • _findProductsByIds
        • _findProductsByTitle
        • _findProductsByFilter
        • _findProductsByCriteria
        • _findProductsAndCalculate
        • _findProductsThenCalculate
        • _getProductAttributeSet
        • _setLastVisited
      • Categories
        • _findCategoryTreeById
        • _findCategoriesByIds
        • _findCategoryByAlias
        • _findCategoryTreeByAlias
        • _getCategoryContent
      • Collections
        • _getCollectionContent
        • _findCollectionsByIds
        • _findCollectionsByIdsThenCalculate
      • Brands
        • _getBrandContent
        • _findBrandsByIds
      • Cart
        • _addToCartMulti
        • _addToCart
        • _setCart
        • _clearCart
        • _setCartListener
        • _removeFromCart
        • _calculateCart
      • Checkout
        • _startCheckout
        • _updateCheckout
        • _completeCheckout
      • Shopping Lists
        • _getShoppingLists
        • _updateShoppingList
        • _createShoppingList
        • _deleteShoppingList
        • _getShoppingListByAlias
      • Navigation
        • _getFooterMenu
        • _getHeaderMenu
      • Users
        • _getUserById
      • Utils
        • _calculateCurrency
        • _getCurrencySymbol
        • _getCulture
        • _subscribeToNewsletter
        • _findUnitsByIds
  • Noir
    • 0. Introduction
    • 6. FAQ
    • 1. Structure
      • _Overview
      • LayoutA.liquid
      • ComponentsList.liquid
      • Metas.liquid
      • CssVariables.liquid
      • Json.liquid
      • GoogleTagManager.liquid
      • StagingButton.liquid
    • 2. Components
      • _Overview
      • Announcement
      • BannerCarousel
      • BlogCategoryList
      • BlogHighlights
      • BlogList
      • BrandList
      • Breadcrumb
      • Cart
      • CategoriesList
      • ChangePassword
      • Checkout
      • CookieManager
      • CustomTable
      • Faq
      • FilterList
      • Footer
      • ForgotPassword
      • Form
      • IconBlock
      • Invitation
      • LastVisitedProducts
      • Login
      • Map
      • NavBar
      • Offer
      • ProductAttachments
      • ProductAttributes
      • ProductComparison
      • ProductDocumentation
      • ProductMixList
      • ProductsBlock
      • ProductsCarousel
      • ProductSingle
      • Profile
      • Quote
      • Register
      • RelatedProducts
      • SingleBlog
      • Stores
      • TextWithImage
      • ThankYouPage
      • TopBar
      • Wishlist
    • 3. Reusables
      • _Overview
      • Addresses
      • AddressForm
      • AnnouncementModal
      • BackToTop
      • BillingRetail
      • BlogPostingStructuredData
      • BrandListStructuredData
      • CollectionStructuredData
      • Company
      • General
      • GroupChildrenTable
      • Login
      • LoginModal
      • MonthlyTransactions
      • Offers
      • Orders
      • Payment
      • ProductAttachments
      • ProductAttributes
      • ProductAvailabilityAction
      • ProductComparisonButton
      • ProductComparisonFloatingButton
      • ProductGridItem
      • ProductGridItemClassic
      • ProductListItem
      • ProductModal
      • ProductStructuredData
      • ProfileInfo
      • PromptModal
      • Quotes
      • Register
      • Services
      • Shipping
      • ShoppingLists
      • ShoppingListsButton
      • ShoppingListsNavbar
      • StoresStructuredData
      • Toast
      • Transactions
      • Users
      • VariantContent
      • VariantContentClassic
      • WishlistButton
    • 4. Assets
      • Fonts
      • Images
      • Templates
      • Javascript
        • _Overview
        • theme.js
      • Css - Scss
        • _Overview
        • ThemeClasses
    • 5. SDK
      • _Overview
      • LiquidGlobals
      • ServicesSDK
  1. Css - Scss

ThemeClasses

Purpose#

This page documents a small set of theme classes that are generated from the SCSS layer and are used across the theme to support consistent UI flows.
It is not a full CSS reference; it focuses on the classes that act as “building blocks” for interactions and reusable UI patterns.
Some of these classes also appear in the general styling documentation as examples, but this page is the canonical curated list of the “theme-level” utility classes.
In particular, classes from Assets/scss/base/_custom-classes.scss may not be obvious from markup alone, so they are documented explicitly here.

Buttons#

Source: Assets/scss/elements/_buttons.scss
.btn — base button class.
.btn__icon — icon-only button styling.
Common modifiers:
Variants: .btn--primary, .btn--primary-outline, .btn--accent, .btn--transparent
Sizes: .btn--xl, .btn--lg, .btn--md, .btn--sm

Modal#

Source: Assets/scss/elements/_modal.scss
.modal — modal overlay/backdrop container.
.modal__box — modal content container.
.modal__box--product — product quick-view modal variant.
Related (product modal):
.modal__box--product__title-cat — header/title/category area.
.modal__box--product__btn-add — add-to-cart button wrapper.

Toast#

Source: Assets/scss/elements/_toast.scss
.toast — toast notifications container.
.toast__box — base toast message box.
Variants: .toast__box--info, .toast__box--error, .toast__box--success (commonly map to $store.toast message type).

Compare (floating button)#

Source: Assets/scss/base/_global.scss
.floating-compare-button — floating compare button container.
.floating-compare-button__count — counter badge shown on the floating compare button.

Base layout / content helpers#

Source: Assets/scss/base/_global.scss
.container — standard page container wrapper (sets responsive max-width and flex layout).
[x-cloak] — hides Alpine elements until Alpine initializes.
.plain-page — base typography spacing for “plain pages” content.
.post — base typography spacing for blog post content.
#post-wrap — blog post content wrapper (mainly image handling).

Custom utility classes#

Source: Assets/scss/base/_custom-classes.scss

Responsive visibility#

.desktop-only — hides content on viewports smaller than the desktop breakpoint.
.mobile-only — hides content on desktop and above.

Field helper text#

.field-status, .helper — small helper/status text below fields.

Loading indicators#

.dot-flashing — three-dot loading indicator.
.isLoading — adds an inline loading “spinner ring” overlay to a container.
.hideLoading — hides the ring and restores child opacity (used as .isLoading.hideLoading).

Skeleton placeholders#

Shimmering grey placeholders shown while a page is still loading.
.skeleton — paints the element itself as a shimmering grey block.
.skeleton-cover — hides the element's content and draws the shimmer over the same box, so the layout keeps its final size.
%skeleton and %skeleton-cover — the SCSS placeholders behind those classes. Components use @extend %skeleton-cover; inside their own SCSS.
%skeleton-shine — the shared shimmer layer (a ::before pseudo-element). It moves with transform: translateX(...) rather than animating background-position, so the animation runs on the compositor and does not repaint every frame.
Colors come from --color-skeleton / --color-skeleton-shine, and --color-dark-skeleton / --color-dark-skeleton-shine in dark mode (Assets/scss/base/_theme.scss). The shimmer stops when the visitor prefers reduced motion.

Component loading state#

Components whose content is fully server-rendered (Faq, CategoriesList, IconBlock, CustomTable, ProductAttributes, ProductAttachments, ProductDocumentation, Login, Register, Form, BrandList) render without a skeleton: their HTML is already final.
Every Swiper carousel (BannerCarousel, ProductsCarousel, ProductsBlock, RelatedProducts, LastVisitedProducts, ProductComparison, BlogHighlights, CategoriesList, BrandList, the ProductSingle gallery, and any custom view) shows its slides as skeletons until Swiper has initialised, whatever its animation setting. The shared rule .swiper:not(.swiper-initialized) .swiper-slide in Assets/scss/base/_custom-classes.scss applies %skeleton-cover and hides the pagination and navigation buttons; the placeholders disappear as soon as Swiper adds swiper-initialized, and the slides then fade in over 0.4s (swiper-fade-in, disabled under prefers-reduced-motion). A component that deliberately does not run Swiper at some breakpoint must add swiper-disabled to the .swiper element there, otherwise the skeleton never ends; ProductsBlock does this on desktop (1440px and up).
Components with an entrance animation (ProductsCarousel, TextWithImage) additionally get a --loading modifier only when an animation is configured, so their text is not blank before the animation plays. BannerCarousel still adds bannerCarousel--loading with an animation, but its skeleton now comes from the shared Swiper rule.
Components that depend on JavaScript for layout or data (Map, Cart) use this pattern. Only the parts that wait for that data get a skeleton; static headings and buttons render normally:
1.
The section is server-rendered with a <component>--loading modifier, e.g. class="component map map--loading", so the skeleton is visible from the first paint.
2.
The component's SCSS styles the parts of the component under that modifier, usually with @extend %skeleton-cover;. Text-like elements also get w-fit, so the bar matches the text width.
3.
The component's JavaScript removes the modifier as soon as that component is ready, never on window.load (which waits for every image and third-party script on the page). Cart binds it with :class="{ 'cart--loading': firstLoading }", so it goes away when the first cart fetch completes; only the item list and the summary prices are covered.
All other components have no skeleton loading state.
Some components defer the removal with requestAnimationFrame; either way it happens in init(), not on window.load.
Carousels remove it from their Swiper init callback instead.
When you build a custom view for one of these components, keep the --loading modifier on the section and keep the removal in init(). Otherwise the placeholders either never appear or never go away.

Keyframes#

Source: Assets/scss/base/_keyframes.scss
Shared keyframes for entrance animations and loaders: fade-in, slide-in-left, slide-in-left-short, slide-in-right, slide-in-right-long, slide-in-top, slide-in-bottom, rise-in, rise-in-small, reveal-from-left, clip-reveal-left, zoom-in, pop-in, stomp, skeleton-shimmer, dot-flashing, dot-flashing-dark, rotate-ring.

Scrollbar styling#

.custom-scrollbar — applies a thin WebKit scrollbar with a primary-colored thumb.
.custom-scrollbar--lg — slightly thicker scrollbar.
.custom-scrollbar--gray — gray thumb.

Shadows#

.shadow--1, .shadow--2, .shadow--3 — predefined box-shadow elevations.
Responsive: .lg:shadow--1, .lg:shadow--2, .lg:shadow--3, .lg:shadow-none.

Layout helpers#

.two-cols — builds a 2-column responsive layout.
.right-container, .left-container — align content to theme container edges on large screens.

Navigation / megamenu positioning helpers#

These exist to support precise megamenu column sizing and alignment at desktop breakpoints.
.lg:menu-5-width-first
.lg:menu-5-width
.lg:left-2-width
.lg:left-3-width (supports .burger variant)
.lg:left-4-width (supports .burger variant)
.lg:pl-container (desktop container-aligned left padding)

Form state helpers#

.valid, .invalid — enables field state icons inside the sibling label (~ label .icon-state).
.input-disabled — disabled input styling.
Modified at 2026-10-15 13:50:14
Previous
_Overview
Next
_Overview
Built with