Design Systems & UI Architecture
(Designing UI platforms, not just components)
Architect rule:
A design system is a UI platform with rules, constraints, and evolution paths.
Why Design Systems Are Architectural
1.1 The Common Misconception
A design system is not only:
- a reusable component library
- a Storybook site
- a Figma file
Those assets matter, but the real architectural value is that the system defines what is allowed, what is discouraged, and how change happens safely.
1.2 Why Architects Belong Here
Design systems sit at the intersection of:
- consistency
- accessibility
- performance
- developer experience
- organizational scale
That is architecture territory.
The Design System Stack
2.1 The Layered Model
| Layer | Purpose |
|---|---|
| Design tokens | encode semantic decisions |
| Foundations | define typography, spacing, color, motion, elevation |
| Primitives | provide low-level accessible building blocks |
| Patterns | encode recurring UI arrangements |
| Templates or recipes | help teams apply the system coherently |
2.2 Why Skipping Layers Fails
When teams jump straight to components:
- theming becomes brittle
- rebrands become rewrites
- accessibility depends on luck
- API sprawl accelerates
Tokens, APIs, and Theming
3.1 Tokens Encode Intent
Prefer semantic tokens over raw value naming.
Example:
- weaker:
--blue-500 - stronger:
--color-action-primary
The point is not naming purity. The point is preserving design meaning as implementation changes.
3.2 Component APIs Are Contracts
Good component APIs optimize for:
- clarity
- composability
- accessibility defaults
- stable extension points
Avoid APIs that are merely thin wrappers around CSS knobs.
3.3 Composition Over Configuration
Composition usually ages better than sprawling prop surfaces because it:
- reduces invalid states
- keeps behavior easier to reason about
- makes migration more predictable
This is a default, not a religion. Some components genuinely need constrained configuration.
3.4 Theming Model
A credible theming model usually looks like:
| Layer | Responsibility |
|---|---|
| Token | semantic meaning |
| Theme | concrete value mapping |
| Component | consumes tokens, not raw values |
That makes white-labeling, accessibility tuning, and regional variation much safer.
Accessibility and Internationalization
4.1 Accessibility Is a System Property
Architects should expect the design system to guarantee:
- semantic defaults
- focus visibility
- keyboard support
- contrast-aware tokens
- motion-respectful behavior
4.2 Internationalization Impacts the Design System
UI architecture needs to account for:
- longer translated strings
- bidirectional layout support
- locale-aware number and date presentation
- typography differences across scripts
If the design system assumes English-length copy and left-to-right layout only, it is incomplete.
Versioning and Adoption
5.1 Versioning Rules
Define:
- what is breaking
- what can change safely
- deprecation window length
- migration expectations
5.2 Deprecation as a First-Class Capability
Teams trust a design system when deprecated components:
- remain usable during the stated window
- emit visible migration guidance
- have clear replacements
5.3 Adoption Is an Architectural Problem
Teams do not adopt systems because a standards document exists. They adopt systems when:
- the recommended path is faster
- the docs are clear
- generators and examples reduce friction
- ownership is obvious
Storybook, Testing, and Governance
6.1 Storybook as a Platform Surface
Storybook and similar tools are useful when they serve as:
- documentation
- contract verification
- visual review surface
- onboarding path
6.2 Testing Expectations
For design-system components, verify:
- accessibility defaults
- visual stability
- usage examples for intended composition
- migration behavior for deprecated APIs
6.3 Governance Checklist
- Who can add or remove tokens?
- Who approves breaking changes?
- How are adoption and misuse measured?
- How are accessibility regressions caught before release?
Review Checklist
- Are tokens semantic rather than tied to raw values?
- Do component APIs prevent obvious misuse?
- Does theming flow through tokens instead of ad-hoc overrides?
- Are localization and accessibility built into the model?
- Is there a versioning and deprecation policy?
- Is the design system easier to adopt than to bypass?
Exercises
Exercise 1 - Token Audit
Review twenty tokens and label each as:
- semantic
- raw-value driven
- redundant
Exercise 2 - Component API Review
Take one complex component and identify:
- the core use case
- misuses the API currently allows
- which props could become composition points
Exercise 3 - Adoption Review
Interview two consuming teams and document:
- where the system saves time
- where it causes friction
- what would make bypassing less attractive
Further Reading
- W3C WAI: WCAG Overview - https://www.w3.org/WAI/standards-guidelines/wcag/
- MDN: Container queries - https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries
- MDN: Intl - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl