Skip to content

Design System and Theming

How to change the visual look of the search experience without changing what it does.

This page explains how you can change the visual look of the search experience without changing what it does.


Every building block in the SDK (product cards, filters, sorting menus, buttons, etc.) has a visual look. The design system lets you pick which look each building block uses.

Think of it like choosing a “skin” for each part of the search experience. The behavior stays the same. Only the appearance changes.


Each building block has a setting called the design name. This setting tells the SDK: “For this building block, use this visual style.”

By default, every building block uses the “default” style. But you can switch any building block to a different style.

Example: Imagine you have a filter header (the title above each filter group, like “Brand” or “Price”). You could show it using:

  • The default style. A plain text header with an arrow icon.
  • The bubble style. A rounded, pill-shaped header.

You choose by setting the design name to either default or bubble.


The SDK comes with four built-in designs:

DesignDescription
defaultThe standard look. Clean and neutral. Works for most websites. Every building block has a “default” version.
bubbleA rounded, softer look. Currently available for filter headers and filter options.
sliderA design optimized for sliding/carousel content. Available for banners.
contentOutA design where content appears outside its container. Available for sorting and navigation elements.
adaA design optimized for the ADA compliance. Available for all building blocks.

Not every design covers every building block. If a design does not have a version for a specific building block, the SDK automatically falls back to the default design for that building block.


Here are the parts of the search experience that can have different visual styles:

CategoryWhat can be themed
FiltersFilter headers, checkbox lists, tree views, color swatches, star ratings, switch buttons, range sliders, input boxes, apply buttons, filter modals
SortingSorting dropdown, sorting buttons, sorting list, sorting modal
Product displayProduct list (results page), product list (searchbox), loading skeletons, no-results message, product list header
BannersBanner display style
Search elementsSearch input, search button
NavigationClose button, go-back button, see-all button, logo
ContentAsset list, asset headers, custom assets, suggestions, visual sorting

Each building block picks its own design independently. This means you can mix and match.

For example, on the same page:

  • The filter headers could use the bubble design.
  • The product list could use the default design.
  • The banners could use the slider design.

There is no requirement to use the same design everywhere.


If you set a design name that does not exist, the SDK shows a warning and uses the default design instead. This means you can never break the search experience by choosing a wrong design name. It will always fall back safely.


ConceptWhat it means
Design nameA setting on each building block that picks which visual style to use.
Default designThe standard look. Always available for every building block.
5 built-in designsdefault, bubble, slider, contentOut, ada.
Mix and matchEach building block picks its design independently.
Safe fallbackIf a design does not exist, the SDK automatically uses the default one.

The designName property is set on each building block in the layout config (inside componentOptions or at the layout node level). Each building block calls getDesignComponents(designName) to resolve its visual sub-elements. If a design does not export a specific sub-element, the default version is used automatically.


{
component: 'facet',
componentOptions: {
facetHeader: {
designName: 'bubble'
}
}
}