Tier II · Craft in Figma / Multi-brand file organization

Multi-brand file organization

One system, several brands. This chapter covers the ways to organise that in Figma, and how to let each brand feel like itself without forking everything.

One component skeleton wearing several different brand skins

Everything in this course has been building toward this file. You have the functional/perceptual split from Lecture 1, the token mental model from Lecture 2, variables and modes from Lecture 4, component architecture from Lecture 5, and auto layout from Lecture 6. Multi-brand organisation is where all of those meet a single, awkward, load-bearing question: when one design system must serve several brands, where do the brands differ, and how do you structure a Figma file so that difference is cheap to express and cheap to maintain?

It comes up constantly in serious agency and in-house platform work: a bank with retail and business apps, a media company with a dozen mastheads, a car group with a stable of marques, an events business with several show brands. Most teams start with one Figma file per brand, and most teams drown in exactly that. What follows is the seam, the three organisational schools, and the two authorities who tell you what to put on each side of the line.

The seam: functional stays shared, perceptual is where brands differ

The Porsche Design System: brand-driven and tightly art-directed. Source: designsystem.porsche.com
The Porsche Design System: brand-driven and tightly art-directed. Source: designsystem.porsche.com

Go back to Kholmatova’s split. It happens to be the fault line a multi-brand system is built along. Every pattern is either functional or perceptual, and the two differ in origin, not just in how they look.

Functional patterns are a bit like nouns or verbs, they are concrete, actionable parts of the interface; whereas perceptual patterns are similar to adjectives, they are descriptive. A button is a module with a clear function: allow users to submit an action. But the typographic style in the label of the button, its shape, background colour, padding, interactive states and transitions are not modules. They are styles; they describe what kind of button it is. From a front-end perspective, modules always have a basis in HTML, and perceptual patterns are typically CSS properties.

Alla Kholmatova“Design Systems”, Chapter 1: Design Patterns

Functional patterns come from the product’s domain and from user behaviours: an event card, an exhibitor list, a ticket call-to-action, a data grid, a checkout. Perceptual patterns come from the brand’s ethos: colour, typography, iconography, spacing, shape, imagery, motion, tone. Her HipChat and Slack example says most of what this lecture is about. Near-identical chat features, an entirely different feel, and all of that difference sits in the perceptual layer. Same skeleton, different skin.

That is your multi-brand seam. The functional layer is the shared infrastructure: components named by purpose, owned by the centre, identical across every brand. The perceptual layer is where brand lives: tokens, type, colour, iconography, per brand. Kholmatova says the same thing in brand terms:

Sometimes such qualities are seen as styling or the skin of a product, a layer on top. But to be effective they must live not only on the surface but at the core of the brand, and they should evolve with the product. When effective, perceptual patterns become powerful product differentiators.

Alla Kholmatova“Design Systems”, Chapter 4: Perceptual Patterns
rule

The practical rule that falls out of the seam: name functional components by purpose, never by brand. A component called EventCard can be reskinned four ways. A component called AquaBlueCard can only ever be one thing, which is Kholmatova’s pink-button warning applied to whole components. Brand belongs in the values you bind, not in the names you assign.

The three organisational schools

IBM Carbon renders White, Gray 10, Gray 90 and Gray 100 themes from one token set. Source: carbondesignsystem.com
IBM Carbon renders White, Gray 10, Gray 90 and Gray 100 themes from one token set. Source: carbondesignsystem.com

Once you accept the seam, the Figma question gets concrete: how do you physically arrange collections, libraries and modes so the shared functional layer and the per-brand perceptual layer can coexist? The field has settled on three schools. None of them is universally correct. The right choice depends on your team size, brand count, and how much the brands actually share anatomically.

SchoolHow it worksCost / risk
1 · One library per brandEach brand gets its own full library: components and styles duplicated per brand.Full isolation, but N× maintenance and guaranteed drift. A fix must be made N times. Legacy except where brands share almost no anatomy.
2 · Brand as a variable modeOne shared library. Brand is a mode in a variable collection; you toggle brand per frame and every bound component re-skins.Lowest maintenance, build once. Critique: no native staging or QA of variable changes before they go live. Viable at roughly 4 to 12 brands after the 2025 mode-limit change.
3 · Core library + per-brand foundation librariesOne core component library plus a separate foundation (token) library per brand, swapped in per file.Isolation plus shared components. Native library swap does not reliably swap variables, so plugins or Figma’s Enterprise-only “extended collections” are needed. For separate brand teams, confidentiality, or 8+ brands.

When to pick each. If the brands share most of their anatomy and one small team owns everything, go with School 2. The modes approach gives you a single source of truth and a one-click re-skin. If you have separate brand teams, confidentiality requirements between brands, or more than roughly eight brands, go with School 3, where the isolation earns back the plumbing. School 1 only survives where two brands share so little structure that calling them one system is a fiction. For the common four-to-twelve-brand case, the settled advice is layered collections everywhere (a primitives collection plus a semantic collection, with components bound only to the semantic tier), then modes for small shared-anatomy teams and library swap for large or siloed ones.

The 2025 change that made brand-as-mode viable

Watch · Louis Chenais: design tokens explained: multi-brand design systems

School 2 used to hit a hard ceiling. For years Figma capped variable modes at four per collection on every paid plan, which is why pre-2025 multi-brand articles either dismiss the modes approach or bend around it. If a mode carries a brand and you only get four of them, you have nothing left to spend on light/dark or density, and a dozen brands is out of the question.

Then that ceiling moved. At Figma’s Schema conference on 28 October 2025, the per-collection mode limits rose from four to 10 on Pro, 20 on Organization, and 40 on Enterprise, with Enterprise-only “extended collections” on top. Add typography variables from 2024, which let font-family itself become a mode-switched string, and brand-as-mode became a first-class strategy at real brand counts rather than a demo trick. So when you read an article claiming Figma only gives you four modes and brand-as-mode does not scale, check its date. That constraint expired in October 2025.

rule

IBM Carbon is the proof of concept for School 2 at scale. Carbon v11 consolidated what had been separate theme files into four themes as variable modes inside one library (White, Gray 10, Gray 90, Gray 100), and layered a contextual layer token on top so nested surfaces resolve automatically. It validates the pattern: themes as modes, in one library, is a shipping-grade architecture, not an experiment.

Perez-Cruz: consistency is not the goal, expression is

Watch · Yesenia Perez-Cruz: expressive design systems (Amuse 2019)
Zendesk’s Garden: a calm, accessible product system. Source: garden.zendesk.com
Zendesk’s Garden: a calm, accessible product system. Source: garden.zendesk.com

Kholmatova gives you the seam. Yesenia Perez-Cruz tells you what to do with the perceptual side of it so your brands do not collapse into one beige average. Her book Expressive Design Systems opens from a different fear than most systems writing. Where the usual worry is inconsistency, hers is that systems get so consistent they go dead:

In this book, I'm going to describe ways you can create a design system that makes your products feel cohesive across multiple touchpoints while still leaving room for meaningful experimentation and divergence. This is what I call an expressive design system.

Yesenia Perez-Cruz“Expressive Design Systems”, A Book Apart, 2019: Introduction

She pulls apart two words most people use loosely. Unity means all your brand elements work together as one, and a tool can deliver that: shared components, a style guide, a brand language. Cohesion is the harder quality that makes experiences understandable across the whole journey, and no tool on its own produces it. Here is her formulation, from the New York subway signage case:

Design systems create better products when they provide both unity and cohesion. Unity means that things feel complete, all of your brand elements work together as one... Cohesion is the quality that makes your user interfaces easy to understand across the experience.

Yesenia Perez-Cruz“Expressive Design Systems”, Chapter 1: Setting a Purpose

For multi-brand work the lesson is sharp. A shared component library buys you unity almost for free. It does not buy you cohesion, and it does not buy you brand. Both of those you have to design into the perceptual layer on purpose.

Big levers and small dials

Material’s role system lets one component re-skin across brands purely through tokens. Source: m3.material.io
Material’s role system lets one component re-skin across brands purely through tokens. Source: m3.material.io

Her most useful framework for a multi-brand file is how she decides where variation is allowed to happen. She frames the whole design language as a set of controls, some coarse and some fine:

To create an expressive design language, you're modulating three things: color, typography, and space. I think of these as the big levers and small dials of a design system. Changes to your color palette, typography, and spacing scale are your big levers: they broadly define the overall feel of your brand. Small dials are the individual adjustments you can make within a component.

Yesenia Perez-Cruz“Expressive Design Systems”, Chapter 3: Communicating Brand

Map this straight onto your Figma structure. The big levers, colour, typography and the spacing scale, are what a brand mode or a per-brand foundation library should carry: pull the lever and the whole brand shifts. The small dials are the per-component adjustments you expose deliberately and sparingly, so a brand can tune one component without forking it. The discipline is keeping brand difference on the levers and dials you chose, rather than letting it leak into ad-hoc overrides scattered across the file.

Her deeper warning is the one that separates a real multi-brand system from a reskin. Cohesion and unity are not enough if the perceptual layer has no range:

Expressive design systems have three defining qualities... They support a range of expression. Your design system should enable meaningful experimentation and divergence while still retaining the spirit of the system writ large.

Yesenia Perez-Cruz“Expressive Design Systems”, Introduction: What Makes a Design System Expressive?

The practical consequence: if you give the perceptual layer no real range, brands feel like reskins. When every brand is the same component with a different hex value swapped in, users sense the sameness even when they cannot name it. A brand needs enough room on the big levers, a distinct type voice, a genuinely different colour strategy rather than a hue rotation, its own spacing rhythm, so it reads as itself and not as a paint job over a competitor. Making that room is the design work. The file structure only holds it.

rule

Perez-Cruz’s Vox Media case makes the point concrete. Vox built a system, later called the Chorus / Unison work, that had to serve editorially distinct brands (Vox, The Verge, Eater, SB Nation and more) from a shared foundation. The lesson she draws is not “force them to converge” but the opposite: define a shared functional core, then give each brand real expressive range on the big levers so The Verge and Eater feel like different publications, not two skins of one CMS. The shared system is what makes the variation affordable, not what suppresses it.

The Harry’s Forge lesson: some brands need different structure, not different tokens

Uber’s Base Web: components driven entirely by a theme object. Source: baseweb.design
Uber’s Base Web: components driven entirely by a theme object. Source: baseweb.design

Here is the failure mode that catches teams who over-trust the seam. The clean story says functional structure is shared and only perceptual tokens differ. That holds most of the time and breaks right where it hurts. Harry’s built a multi-brand system called The Forge to serve both Harry’s and Flamingo, and they found some components that swapping tokens could not reconcile at all.

rule

The Forge lesson. On Harry’s the Cart was a popup; on Flamingo the same Cart was a sidebar. Same job, genuinely different anatomy. Harry’s answer was not one component with a token override, and not two unrelated components either. It was a set of flexible base primitives that each brand composes differently into its own complex component. The takeaway for your file: some components need per-brand structure, not just per-brand tokens. Plan for a small number of components where the anatomy itself diverges, built from shared sub-parts, and do not try to force them into a single variant set. Navigation is the usual first offender.

This refines the seam rather than weakening it. The functional layer is shared at the level of purpose and primitives, not always at the level of a single frozen assembly. Most components share their assembly across brands and vary only on the perceptual layer. A minority share only their primitives and their purpose, and get re-composed per brand. Knowing which is which before you build is the craft.

Case studies: how real systems hold the seam

Salesforce’s Lightning Design System 2: a large multi-surface system in the wild. Source: lightningdesignsystem.com
Salesforce’s Lightning Design System 2: a large multi-surface system in the wild. Source: lightningdesignsystem.com

Volkswagen Group: GroupUI. The clearest large-scale instance of the shared-functional / per-brand-perceptual seam. GroupUI serves 15+ brands (Volkswagen, Audi, Škoda, Porsche, MAN, Scania and more) from one framework-agnostic component core, built as Stencil.js web components so it does not care which front-end framework a brand ships. Every brand’s identity comes entirely through design tokens, with the Figma and Sketch libraries mirroring the code. Their own positioning for the system says a lot: it sits “between standard and flexibility.” That is the seam stated as a product goal. One shared functional core, brand carried wholly by the perceptual token layer, School 2 thinking at industrial scale.

NL Design System. The governance model that makes multi-brand sustainable. NLDS serves many Dutch government organisations (Utrecht, Amsterdam, Den Haag and others) from a shared base, and it splits ownership precisely: the centre owns behaviour, accessibility and the token contracts; each organisation owns only its token values, expressed as a JSON theme that compiles to a CSS theme class. An org can change what a component looks like but not how it behaves or whether it is accessible. That is the seam written as a governance rule rather than just a file structure. Their naming convention, prefix.block.element.modifier.property (for example utrecht.button.background-color), bakes the brand prefix into the token so values never collide across organisations. Component maturity moves through their estafettemodel (relay model): Help Wanted → Community → Candidate → Hall of Fame, so a pattern earns its place in the shared core by surviving real use instead of being decreed into it. That is the answer to “who is allowed to change what” that a modes-based file cannot give you on its own.

The panel: structure, expression, and the evidence

Canonical’s brand guidelines hold Ubuntu’s identity across a wide product family. Source: design.ubuntu.com
Canonical’s brand guidelines hold Ubuntu’s identity across a wide product family. Source: design.ubuntu.com

Three voices on one seam, from three angles. Kholmatova gives you the structural line: functional patterns are the shared, purpose-named infrastructure, perceptual patterns are where brand lives, and they differ in origin, not just in looks. That tells you where to cut. She also hands you the strict-versus-loose dial from Chapter 6, where a multi-brand system is usually strict on the functional contract (behaviour, accessibility, the shape of the API) and deliberately loose on the perceptual layer so brands have room to be themselves. Perez-Cruz tells you what to do on the loose side: modulate the big levers of colour, type and space per brand, expose small dials sparingly, and give the perceptual layer genuine range, since unity and cohesion without expressive range produce reskins rather than brands. The case studies supply the proof and the two hard edges. GroupUI shows the seam works at 15+ brands when brand rides entirely on tokens. NLDS shows the governance that keeps the seam honest, with the centre owning contracts and orgs owning values. Harry’s Forge marks the boundary of the clean story, where some components need per-brand structure and not just per-brand tokens. Kholmatova tells you where to cut, Perez-Cruz how much room to leave, and the real systems what breaks when you cut wrong.

Pitfalls

  • Naming components by brand. AquaBlueButton can never be reskinned. Name by purpose, bind brand as values. This is Kholmatova’s pink-button warning at component scale.
  • Binding components to primitives instead of semantics. If a component points at blue-500 rather than color-action, no brand mode can re-skin it. Bind only to the semantic tier.
  • Treating every brand as a token swap. The Forge shows some components (cart, nav) need per-brand structure. Plan for a small set of re-composed components up front.
  • Zero perceptual range. One skeleton plus a hue rotation is a reskin. Give the big levers real range or the brands will feel like the same product wearing hats.
  • Citing the four-mode limit. That ceiling ended 28 October 2025 (10 / 20 / 40 by plan). Do not architect around an expired constraint.
  • No ownership line. Without an NLDS-style contract (centre owns behaviour, orgs own values), every brand quietly edits the shared core and drift returns through the back door.
The one sentence to carry

A multi-brand system shares one functional skeleton and lets brands diverge on the perceptual layer; structure the file so brand rides on big levers you have chosen, give that layer real range so brands are not reskins, and remember that a few components need per-brand structure, not just per-brand tokens.

Further reading

rule
Check your understanding4 questions · instant feedback

1. In Kholmatova’s terms, which layer is the seam a multi-brand system is built along, with brands sharing one side and diverging on the other?

Backwards. Functional patterns (the modules, named by purpose) are shared; perceptual patterns are where brand diverges.
Correct. Functional patterns are the shared, purpose-named infrastructure; the perceptual layer (colour, type, iconography, motion) is where brand lives. Same skeleton, different skin.
Then they would not be different brands. The whole point is a managed divergence on the perceptual layer.

2. Why did the 28 October 2025 Figma change matter for the brand-as-mode school?

Correct. The old four-mode ceiling made brand-as-mode impractical; the raised limits (Pro 10, Org 20, Enterprise 40) made it a first-class strategy at 4 to 12+ brands.
Naming by purpose is still the rule; the change was about mode counts, not naming.
The semantic tier is still what components bind to; more modes does not change that.

3. Perez-Cruz’s “big levers and small dials” framework identifies which three big levers?

Not her framework. The levers are the perceptual foundations, not system artefacts.
Correct. Colour, typography and the spacing scale are the big levers that define the overall feel of a brand; small dials are per-component adjustments.
Those are her quality goals, not the levers you modulate to express a brand.

4. What is the Harry’s Forge lesson for a multi-brand file?

Correct. Cart was a popup on Harry’s and a sidebar on Flamingo. Same purpose, different anatomy, composed per brand from shared base primitives.
This is exactly the assumption the Forge disproves for a minority of components.
School 1’s full duplication is what the Forge avoids; it shares primitives and composes them per brand.
0 / 4 answeredClick an answer to check it