Andrey Ozerov · Design systems for multi-brand products

Many brands. One codebase.

I build token architectures where a new brand is one file of 55 values. Components, markup and releases stay exactly the same. The proof is below: a live product in 4 brands and 2 themes.

Key numbers

  • 4brands in the live demo, all on one codebase
  • 2themes per brand: light and dark
  • 55values in a brand file. That file is the whole brand

Switch the brand. The code stays put.

Aurum Multibrand live demoAurum Multibrand live demo

Loading demo…

Pick Aurum, Nova, Fiesta or Ultra, then flip light and dark. Colors, fonts, radii and spacing change. The components underneath don't.Open full screen ↗

Six layers. Only one of them is the brand.

A component never knows which brand it is in. It asks for a meaning, the theme picks a step on a color ramp, and only the brand file holds real colors, fonts and radii. Every number below is counted from the demo's tokens at build time.

The layers, top to bottom

  1. Components548 tokens · 29 components

    Buttons, cards and chips read meanings, never raw values.

  2. Theme73 per theme × 2

    Semantic colors: text, fill, border. Light and dark are an axis of their own.

  3. Typography25 text styles

    Built from the brand's fonts and the core type scale.

  4. Map41 ramp steps

    Tints and shades calculated from brand colors, so nobody picks them by hand.

  5. BrandPer brand55 values × 4 brands

    The only file that changes when you add a brand.

  6. Core59 values

    The raw scale: sizes, radii, weights, base colors.

Follow one token through the layers

Token
Brand
  1. Componentbutton.primary.bg.default
  2. Themecolor.fill.primary.default
  3. Mapcolor.product1.500step 500 is the brand color itself
  4. Brandcolor.product1#CFA74A
  5. Result#CFA74A

Switch the site theme at the top right: light and dark take different steps of the same ramp.

How a brand gets from Figma to production

  1. A brand is data

    Every brand is one Token Studio file with the same 55 keys: colors, fonts, radii, spacing, layout. Designers change values. Component tokens are never touched.

  2. The pipeline builds it

    Tokens live in Git as JSON and compile to CSS custom properties. Automated checks catch missing keys, broken layer references and failing WCAG contrast before anything ships.

  3. Two attributes switch it

    The product changes brand and theme with data-brand and data-theme on one element. Same markup, same components, one release for every brand.

For teams running more than one brand

  • iGaming and white-label platforms

    One product sold under many brands. Every operator gets its own look without a separate codebase.

  • Fintech with sub-brands

    A main brand plus products for different audiences or markets. Same UX, different look, one library.

  • Agencies on one stack

    Many clients on the same components. A new client starts from a brand file, not from a fork.

Running more than one brand? Let's talk.

An audit of your current system, a token architecture, a full multi-brand library or just the Figma-to-code pipeline. Tell me where you are now.

Tell me about your brands