Design Systems · Token Architecture
Where flexibility should live
Push flexibility into one shared token and components get stuck. Spread it into a token per component and you maintain forty copies of the same value. Try both failure modes, then break a live example.
Try it yourself
This changes a real CSS color token — not a mock. Flip the overrides. Watch what stays in sync.
3 of 3 components in sync
Always uses system/border. It has no override, so it always follows the
color above.
Off: uses system/border, same as Input. On: gets its own token — fine
if Dropdown must look different. Now you maintain one more value.
Off: follows system/border. On: locked to a fixed color in code. Change
the picker above and this one stops moving.
Does this need its own token?
Three questions design systems teams ask before they add a component token.
How leaders name the system layer
Different names. Same idea: a thin, purpose-named layer between raw values and components.
| Type | Vois | GitHub Primer | Uber Base | Atlassian | IBM Carbon |
|---|---|---|---|---|---|
| Text | system/text | fgColor-default | contentPrimary | color.text | $text-primary |
| Surface | system/surface | bgColor-default | backgroundPrimary | color.background.* | $layer-01 |
| Border | system/border | borderColor-default | borderOpaque | color.border | $border-subtle |
| Icon | system/icon | (part of fgColor-*) | contentPrimary | color.icon | $icon-primary |
| Surface overlay | system/surface-overlay | overlay-bgColor | theme overlay | elevation.surface.overlay | $overlay |
Not a spec — a working model. These five token names aren't the answer for every system. Put most flexibility in the semantic layer. Keep component tokens rare enough that each one still means something.
Sources
- Token namesprimer.style
- Colors guidebaseweb.design
- Design tokens overviewm3.material.io
- Color implementationcarbondesignsystem.com
- Component-level tokens: worth it?medium.com
- Angular Material 3 themingkonstantin-denerz.com
- Definition layers within semantic tokensmedium.com
- Truly Semanticdamato.design
- Naming tokens in design systemsEightShapes
- Design tokens: single source of truthspectrumhq.in
- A system that doesn't collapsedev.to
- Design tokensarts.ac.uk
- Neptune Web colorstransferwise.github.io
- Modern Angular Material themingmedium.com