Skip to main content

Component Styling Reference

This guide serves as a comprehensive reference for customizing Mimeeq components using CSS variables and parts. It provides detailed information about what can be styled for each component in the Mimeeq system.

Note: For conceptual information and usage examples, please refer to:

Global CSS Variables

Mimeeq uses a comprehensive set of CSS variables to control the overall appearance of the application. These variables provide consistent theming across all components and can be customized at the :root level.

Color System Overview

Mimeeq organizes colors in a structured system:

  • Main Colors: Base colors like --mmq-accent-main serve as anchors
  • Color Ranges: Each main color has shades from 50 (lightest) to 1000 (darkest)
  • Accent Color: The primary customizable color that represents your brand

When you customize the accent color, all related shades are automatically generated to maintain visual harmony.

:root {
--mmq-accent-main: #0056b3; /* Your brand color */
}

For a complete explanation of the color system and all global CSS variables, please refer to the Theme Customization documentation.

Customizable Theme Elements

The Mimeeq platform allows for theme customization at different levels. The following elements can be customized either through customer account settings or embed templates:

Primary Customization Options

SettingDescriptionCSS VariableDefault Value
accentColorThe primary brand color--mmq-accent-main#ac1015
accentTextColorText color on accent backgrounds--mmq-accent-contrast-text#fff or #000 based on contrast
backgroundColorMain background color--mmq-background-primary#fff
hotSpots.colorColor of hotspots--mmq-hot-spots-color20% opacity of accent color
hotSpots.borderColorBorder color of hotspots--mmq-hot-spots-border-color70% opacity of accent color
group.activeColorBackground color for active groups--mmq-group-active-colorrgb(86, 85, 83)
group.hoverColorBackground color for hovered groups--mmq-group-hover-colorrgb(86, 85, 83)
group.openedGroupTextColorText color for opened groups--mmq-group-opened-group-text-colorBLACK
group.hoverGroupTextColorText color for hovered groups--mmq-group-hover-group-text-colorBLACK
mesh.overlayOverlay color for meshInternalVaries

Customization Hierarchy

Mimeeq applies theme customizations in the following order of precedence:

  1. Inline customization - Highest priority, set directly on the mmq-embed element (not recommended for most use cases)
  2. Embed template - Customizations specific to a particular embed configuration
  3. Customer account - Default customizations for all embeds under a customer account
  4. System defaults - The base theme values used when no customizations are specified

When customizing the accent color, all related shade variations are automatically generated, ensuring a consistent color scheme throughout the application.

Understanding the Color System

The Mimeeq color system is built around a consistent approach to color generation:

  1. Main Colors: Each color palette has a main color (usually at the 1000 position) that serves as the anchor for the entire palette.

  2. Color Ranges: From each main color, a range of shades (50-1000) is automatically generated, where:

    • 50 is the lightest shade
    • 1000 is the darkest/main color
  3. Special Accent Color: The accent color is particularly important as it can be customized by users to match their branding:

    • Can be set in customer accounts
    • Can be specified in embed templates
    • Can be set inline on specific mmq-embed elements
    • All accent shades are automatically generated based on the main accent color
  4. Legacy Keys: For backward compatibility, each color also has light and dark variants:

    • light typically maps to shade 50
    • dark is a darker variation of the main color

When customizing the look of your application, changing the accent color is the recommended approach, as it will automatically generate appropriate shades and maintain visual consistency.

Entry Point Components

These components are directly accessible for styling and often serve as containers for other components.

mmq-variant-ui

The main container for product variants and customization options.

CSS Variables:

VariableDescriptionDefault Value
--mmq-configurator-container-heightHeight of the configuratorcalc(100vh - 30px - var(--mmq-variant-ui-extra-space, 0px))
--mmq-configurator-container-max-heightMaximum height of the configurator900px
--mmq-configurator-container-min-heightMinimum height of the configurator375px
--mmq-canvas-heightHeight of the 3D canvas area on mobileRequired on mobile
--mmq-variant-ui-extra-spaceExtra space for fixed elements like headers0px
--mmq-sidepanel-widthWidth of the side panel (desktop)379px
--mmq-tablet-sidepanel-widthWidth of the side panel (tablet)35%
--canvas-max-heightInternal Maximum canvas heightCalculated
--canvas-min-heightInternal Minimum canvas heightCalculated
--canvas-no-options-heightInternal Canvas height without optionsCalculated
--configurator-max-heightInternal Maximum height with aspect ratioCalculated
--configurator-max-widthInternal Maximum width with aspect ratioCalculated
--available-viewport-yInternal Available vertical spaceCalculated
--mmq-viewport-heightViewport height value100vh
--mmq-configurator-wrapper-mobile-base-heightMobile base heightViewport dependent
--mmq-configurator-wrapper-mobile-vertical-paddingMobile vertical paddingAs needed
--mmq-configurator-wrapper-vertical-paddingVertical paddingAs needed
--mmq-configurator-page-container-vertical-paddingPage container padding10px

Parts:

PartDescription
wrapperMain container that wraps all configurator elements
contentContainer for the 3D/2D canvas and related controls
canvas-containerContainer specifically for the 3D/2D visualization canvas
side-panelContainer for options panel
side-panel-containerContainer for the side panel
side-panel-contentContent area of the side panel
side-panel-footerFooter of the side panel
side-panel-groupGroup container in the side panel
side-panel-group-contentContent area for a group in the side panel
side-panel-group-headerHeader for a group in the side panel
side-panel-group-item-buttonButton element within a group item
side-panel-group-item-button-expandedButton element when group is expanded
side-panel-headerHeader of the side panel
headerHeader displayed on desktop devices
mobile-headerHeader displayed on mobile devices
fullscreen-headerHeader displayed in fullscreen mode
footerFooter element containing product information
finish-btnButton to complete configuration
price-value-fieldElement showing price on mobile
price-containerContainer for price information on mobile
summary-box-priceElement showing price on desktop
summary-box-price-wrapperWrapper for the price display in summary box
brandElement that displays the brand name
product-nameElement that displays the product name
name-wrapperContainer for product name and brand information
carouselContainer for the thumbnail carousel
carousel-wrapperWrapper element for the carousel content
carousel-thumbsContainer for the thumbnail images
carousel-thumbIndividual thumbnail image in the carousel
carousel-thumb-3dSpecial thumbnail representing the 3D view
carousel-indicatorsContainer for the carousel position indicators
carousel-indicatorIndividual indicator/dot for the carousel
carousel-arrow-leftLeft navigation arrow for the carousel
carousel-arrow-rightRight navigation arrow for the carousel
drag-tooltipTooltip indicating drag interaction is available
fullscreen-buttonButton to exit fullscreen mode
qty-boxContainer for quantity inputs
qty-button-downQuantity decrease button
qty-button-upQuantity increase button
ar-buttonButton that launches AR view
components-mapperComponents mapper container
block-headerHeader for a configuration block

mmq-modular-ui

Used for modular UI elements such as headers, toolbars, and modular components.

CSS Variables:

VariableDescriptionDefault Value
--mmq-modular-ui-extra-spaceExtra space to adjust heightOptional
--mmq-configurator-wrapper-mobile-modular-base-heightBase height for wrapper on mobileCalculated
--mmq-side-panel-widthWidth of the modular side panel376px
--mmq-modular-canvas-heightHeight of canvas in modular modeMobile only
--mmq-modular-elements-dialog-topTop position of elements dialogOptional
--mmq-side-panel-topTop position of the side panel24px
--mmq-configurator-wrapper-modular-vertical-paddingVertical padding for wrapperAs needed
--mmq-canvas-buttons-heightHeight of canvas buttonsFor spacing calculations
--mmq-toolbar-heightHeight of toolbarFor spacing calculations
--mmq-toast-z-indexZ-index for toastsDefault stack
--mmq-viewport-heightViewport height value100vh
--base-heightInternal Base height calculationVaries mobile/desktop

Parts:

PartDescription
wrapperMain wrapper for modular UI
headerHeader component for desktop view
mobile-headerHeader shown on mobile devices
option-panelPanel showing configuration options
toolbar-positionerComponent positioning the toolbar
canvas-buttonsButtons displayed on canvas
element-listList of available elements
notifications-containerContainer for notifications
notifications-container-mobileContainer for mobile notifications
pricePrice component
price-containerContainer for price display
toast-containerContainer for toast notifications
quote-preview-uiPreview UI for quotes

mmq-tabs

Provides tabbed navigation functionality for organizing content into separate views.

CSS Variables:

VariableDescriptionDefault Value
--mmq-tabs-top-spacingTop spacing for tabs60px
--mmq-tabs-no-related-bottom-marginBottom margin when no related section0px
--mmq-tabs-mobile-top-spacingTop spacing for tabs on mobile15px
--mmq-tabs-bottom-spacingBottom spacing for tabsAs needed

Parts:

The mmq-tabs component uses the following structure but doesn't expose specific parts directly through Shadow DOM.

Displays related products or recommendations below the configurator.

CSS Variables:

VariableDescriptionDefault Value
--mmq-related-margin-bottomBottom margin for related section60px
--mmq-related-with-tabs-padding-topTop padding when tabs are visible57px
--mmq-related-no-tabs-padding-topTop padding when tabs are not visible57px
--mmq-loader-colorColor of the loaderTheme dependent

Parts:

The mmq-related-products component doesn't expose specific parts directly through Shadow DOM.

mmq-basket

Handles shopping cart functionality with floating button and sliding panel.

CSS Variables:

VariableDescriptionDefault Value
--mmq-basket-z-indexZ-index for basket backdropDefault stack
--mmq-basket-panel-z-indexZ-index for cart items panelDefault stack
--mmq-basket-btn-z-indexZ-index for basket button1000
--mmq-basket-button-backgroundBackground color for buttonTheme dependent
--mmq-basket-button-colorText/icon color for buttonTheme dependent
--mmq-basket-button-position-bottomDistance from bottomAs needed
--mmq-basket-button-position-leftDistance from leftAs needed
--mmq-basket-button-position-rightDistance from right0
--mmq-basket-button-position-topDistance from topAs needed
--mmq-basket-button-radiusBorder radius for button4px
--mmq-basket-button-icon-sizeSize of basket icon24px
--mmq-basket-panel-position-rightRight alignment for panel0
--mmq-basket-panel-position-leftLeft alignment for panelunset
--mmq-basket-panel-position-topTop alignment for panel0
--mmq-basket-panel-position-bottomBottom alignment for panel0
--mmq-basket-header-content-flowFlex direction for headerDefault flow
--mmq-font-familyFont familySystem default
--mmq-contact-form-footer-discount-value-colorColor for discount valuesTheme dependent
--mmq-contact-form-footer-addition-value-colorColor for addition valuesTheme dependent

Parts:

PartDescription
buttonThe floating basket button
counterThe item counter badge
iconThe icon within the button
panelThe sliding panel with contents
backdropThe backdrop/overlay behind panel

mmq-dialog

Used for displaying dialog boxes and pop-up messages.

CSS Variables:

VariableDescriptionDefault Value
--mmq-dialog-widthWidth of the dialog570px (desktop)
--mmq-dialog-heightHeight of the dialog570px (desktop)
--mmq-dialog-max-widthMaximum width of dialogOptional
--mmq-dialog-max-heightMaximum height of dialogOptional
--mmq-dialog-marginMargin around dialogauto
--mmq-dialog-mobile-marginMargin on mobileauto 16px
--mmq-dialog-paddingPadding inside dialog0
--mmq-dialog-z-indexZ-index of dialogDefault stack
--mmq-dialog-positionPosition propertyrelative
--mmq-dialog-topTop positionOptional
--mmq-dialog-rightRight positionOptional
--mmq-dialog-bottomBottom positionOptional
--mmq-dialog-leftLeft positionOptional
--mmq-dialog-insetInset positioningOptional
--mmq-dialog-overflowOverflow behaviorDefault
--mmq-background-whiteBackground colorTheme dependent
--mmq-box-shadow-primaryPrimary shadow colorTheme dependent
--mmq-box-shadow-secondarySecondary shadow colorTheme dependent

Parts:

The mmq-dialog component doesn't expose specific parts directly through Shadow DOM. It relies on child components like mmq-dialog-header, mmq-dialog-content, and mmq-dialog-footer.

mmq-ar-loader

Component that handles loading and displaying AR experiences.

CSS Variables:

AR-specific components primarily inherit global theme variables.

Parts:

PartDescription
modalThe AR modal component
portalPortal element containing AR modal

mmq-mobile-tabs

Component for displaying and managing tabs on mobile devices.

CSS Variables:

VariableDescriptionDefault Value
--mmq-mobile-tabs-min-heightMinimum height for mobile tabs115px
--mmq-dialog-header-backgroundBackground for header in dialog modewhite
--mmq-mobile-tabs-content-margin-bottomBottom margin for contentOptional
--mmq-text-alignText alignment for tab itemsleft

Parts:

PartDescription
listList element containing tab buttons
list-wrapperContainer element that wraps the tab list
tabIndividual tab button element
tab-activeCurrently active tab button
content-wrapperContainer for tab content
footerFooter containing actions
finish-btnFinish button in mobile footer
summary-box-pricePrice element in summary box
summary-headerHeader shown in summary view
summary-header-backBack button in the summary header
summary-panelPanel displaying the summary content
tab-panelPanel containing content for a tab
tab-configuratorConfigurator tab content
tab-summarySummary tab content
tab-galleryGallery tab content
tab-downloadsDownloads tab content
tab-elementsElements tab content
tab-finishesFinishes tab content
tab-popularPopular items tab content
tab-relatedRelated items tab content
tab-textText tab content
no-itemsElement displayed when no items are available
groupsContainer for all option groups
group-itemIndividual option group item
group-headerHeader element for a group item
group-contentContent area of a group item
group-item-buttonButton element within a group item
group-item-button-expandedButton element when group is expanded
components-mapperWrapper for components
block-headerHeader for configuration block
qty-boxQuantity input container

mmq-side-panel

Side panel component for displaying configuration options.

CSS Variables:

VariableDescriptionDefault Value
--mmq-side-panel-widthWidth of the panel376px
--mmq-side-panel-topTop position24px
--mmq-side-panel-bottomBottom position24px
--mmq-side-panel-rightRight position24px
--mmq-viewport-heightCustom viewport height100vh

Parts:

PartDescription
containerMain container for side panel
headerHeader element
side-panel-contentContent container
footerFooter element
finish-btnFinish button
side-panel-groupContainer for option groups
side-panel-group-contentContent area for a group
side-panel-group-headerHeader for a group
side-panel-group-item-buttonButton for a group item
side-panel-group-item-button-expandedExpanded button state
components-mapperContainer for component mapping
block-headerHeader for configuration block
qty-boxQuantity box element
qty-button-downQuantity decrease button
qty-button-upQuantity increase button
summary-box-pricePrice element
summary-box-price-wrapperPrice wrapper

Key UI Components

These components are frequently styled and appear throughout the application.

mmq-button

A customizable button component with various styles and states.

CSS Variables:

VariableDescriptionDefault Value
--mmq-button-colorText colorvar(--mmq-typography-primary)
--mmq-button-contrast-colorText color on colored backgroundsvar(--mmq-common-white)
--mmq-button-bg-hoverBackground color on hoverVariant dependent
--mmq-button-border-radiusBorder radius4px
--mmq-button-fontFont sizevar(--mmq-font-size-regular)
--mmq-button-font-weightFont weight600
--mmq-button-gapGap between icon and text4px
--mmq-button-heightHeightauto
--mmq-button-widthWidthauto
--mmq-button-paddingPadding0
--mmq-button-padding-smallPadding for small variant10px 24px
--mmq-button-outline-colorOutline colorvar(--mmq-button-color)
--mmq-loader-colorColor of the loadervar(--mmq-button-color)

Parts:

The mmq-button component doesn't expose specific parts through Shadow DOM.

mmq-tooltip

A tooltip component for displaying additional information on hover.

CSS Variables:

The tooltip inherits global theme variables.

Parts:

The mmq-tooltip component doesn't expose specific parts through Shadow DOM.

mmq-loader

A versatile loading indicator with multiple animation styles.

CSS Variables:

VariableDescriptionDefault Value
--mmq-loader-colorColor of the loadercurrentColor
--mmq-loader-sizeSize of the loaderVariant dependent
--mmq-bg-colorBackground for bar loadervar(--mmq-accent-light)
--mmq-moon-loader-widthBorder width for moon loader4px

Parts:

The mmq-loader component doesn't expose specific parts through Shadow DOM.

mmq-quick-icon-button

Button component used for action icons on canvas and in toolbars.

CSS Variables:

VariableDescriptionDefault Value
--quick-icon-button-bgBackground colorrgba(46, 51, 65, 0.05)
--mmq-quick-icon-backgroundBackground (rgba format)46, 51, 65, 0.05
--mmq-quick-icon-button-icon-colorIcon colorvar(--mmq-grey-600)
--mmq-quick-icon-button-font-sizeIcon size16px
--mmq-quick-icon-button-widthButton width40px
--mmq-quick-icon-button-heightButton height40px
--mmq-quick-icon-button-border-radiusBorder radius4px
--quick-icon-button-bg-hoverHover backgroundvar(--mmq-grey-200)
--quick-icon-button-color-hoverHover colorvar(--mmq-grey-800)
--mmq-quick-icon-button-disabled-opacityDisabled opacity0.3

Parts:

PartDescription
buttonThe button element

mmq-dialog-header

Header component for dialogs with title and close button.

CSS Variables:

VariableDescriptionDefault Value
--mmq-dialog-header-heightMinimum height on desktop60px
--mmq-dialog-header-paddingPadding10px 24px (mobile) / 16px 24px (desktop)
--mmq-dialog-header-justifyContent justificationspace-between
--mmq-dialog-header-backgroundBackground colorOptional
--mmq-dialog-header-positionPosition propertystatic
--mmq-dialog-header-topTop position with fixed/absolute0
--mmq-wrap-linesLines shown before truncating2

Parts:

PartDescription
titleThe title element
close-buttonThe close button element
close-iconThe close icon

mmq-dialog-content

Content container for the dialog component.

CSS Variables:

VariableDescriptionDefault Value
--mmq-dialog-content-heightHeight of content areaauto or calc(100% - 140px) with actions
--mmq-dialog-content-paddingPadding9px (desktop) / 24px 16px (mobile)
--mmq-dialog-content-marginMargin0
--mmq-dialog-content-overflowOverflow behaviorauto
--mmq-dialog-content-backgroundBackground colortransparent
--mmq-dialog-content-mobile-heightHeight on mobileauto

Parts:

The mmq-dialog-content component doesn't expose specific parts through Shadow DOM.

Footer component for dialogs with action buttons.

CSS Variables:

VariableDescriptionDefault Value
--mmq-dialog-footer-paddingPadding0 24px (desktop) / 16px (mobile)
--mmq-dialog-footer-justifyContent justificationspace-between
--mmq-dialog-footer-padding-topTop padding with border16px

Parts:

The mmq-dialog-footer component doesn't expose specific parts through Shadow DOM.