Design System
Build, evolve, or audit a design system. Stack-agnostic in principle. Implementation is stack-specific (Figma, Storybook, code library, etc.) but the structure and governance principles transfer.
This skill is for building the system. For applying a system to specific pages or components, use design-standards. For brand visual identity, use brand-identity.
When to use
- Building a design system from scratch
- Auditing an existing system for gaps or fragmentation
- Defining design tokens at the system level
- Structuring a component library
- Establishing contribution and governance models
- Migrating from ad-hoc components to a documented system
When NOT to use
- Designing a single page or component (use
design-standards)
- Brand identity work (use
brand-identity)
- Component-level frontend implementation (use
frontend-component-build)
- Pure design documentation for marketing (use
brand-style-guide)
Required inputs
- The brand identity (tokens, voice, imagery direction)
- The product surfaces the system needs to support (web, mobile, marketing, app, internal tools)
- The team and its working tools (Figma, code framework, doc platform)
- Existing components, even if undocumented
- Constraints (accessibility requirements, performance targets, browser support)
If brand identity is undefined, run brand-identity first.
The framework: 5 layers
A complete design system has five layers, stacked. Each layer feeds the layer above.
1. Foundations (tokens)
The atomic decisions. Color, type, spacing, radius, shadow, motion, breakpoints.
Why this layer matters:
- Tokens are the source of truth for everything above
- Token changes propagate everywhere automatically
- Without tokens, the system has no foundation
Output:
- A documented token set (see
design-standards/references/design-tokens-template.md)
- Token implementation in code (CSS variables, JS objects, Style Dictionary, etc.)
- Token implementation in Figma (variables and styles)
- A primer doc explaining what tokens to use when
Common patterns:
- Two-tier tokens: base tokens (raw values) + semantic tokens (named uses). Example:
color-blue-600 (base) + color-text-link (semantic). Components reference semantic tokens. Theme changes update semantic tokens, not base.
2. Elements (atoms)
The smallest functional building blocks. Buttons, inputs, labels, badges, icons, links, dividers.
Per element, document:
- Visual variants (primary, secondary, ghost, etc.)
- Size variants (small, medium, large)
- States (default, hover, focus, active, disabled, error, loading)
- Anatomy (the parts that make up the element)
- Spacing and proportions
- Accessibility (keyboard support, screen reader behavior, ARIA)
- Code usage (props, examples)
Output:
- Element library in Figma
- Element components in code
- Per-element documentation
3. Components (molecules + organisms)
Combinations of elements that form recognizable UI patterns. Cards, alerts, modals, navigation, forms, data tables, headers, footers.
Per component:
- Composition (which elements it uses)
- Variants and configurations
- Use cases (when to reach for this vs. an alternative)
- Layout behavior (responsive, contained, full-bleed)
- Anti-patterns (when NOT to use it)
Output:
- Component library
- Per-component documentation with usage guidance
4. Patterns (templates)
Larger structures that combine components. Sign-in flow, settings page, dashboard layout, marketing page sections.
Per pattern:
- The structure and components used
- The user journey it supports
- Layout grid and spacing
- Responsive behavior
- Variants (e.g., "with sidebar," "fullscreen," "modal")
Output:
- Pattern library or page templates
- Documentation showing complete examples
5. Documentation and governance
How the system gets used, contributed to, and maintained.
Documentation includes:
- Getting started guide for new team members
- How to use vs. how to extend
- Contribution model
- Versioning policy
- Migration paths when breaking changes happen
- Decision log for major system choices
Governance includes:
- Who owns the system (a team or rotation)
- How new components get proposed and approved
- How conflicts get resolved
- How the system evolves vs. stays stable
- Cadence of review and updates
Workflow
For a new design system
- Inventory the existing UI. Screenshot every component, button, form, modal across the product. The list of distinct UI patterns is your starting scope.
- Identify the duplicates. Same component built 5 different ways across the product. These are your high-value consolidation targets.
- Define foundations. Token set, with both base and semantic layers. Document each.
- Audit elements. From the inventory, identify the actual elements (buttons, inputs, etc.) and reduce variants to a managed set.
- Build the element library. Figma + code. Document each element.
- Identify priority components. The 10 to 15 components that appear most often. Build those first.
- Document patterns. Page-level templates that show the system in use.
- Establish governance. Owner, contribution model, review cadence.
- Roll out. Migrate existing surfaces to the system progressively.
For an existing design system audit
- Inventory what exists. What's documented, what's in Figma, what's in code, what's actually used in production.
- Map gaps. Where the system is incomplete. Where teams build outside the system because the system can't serve their need.
- Map fragmentation. Where the system has divergent implementations (Figma vs. code, web vs. mobile, multiple teams).
- Identify decay. Components that have drifted from the documented standard.
- Prioritize fixes. Foundation gaps first. High-use component drift second. Rarely-used component cleanup last.
- Plan rollout. Major changes need migration paths.
Failure patterns
- Building the system before the brand is set. Tokens depend on brand. Set brand first.
- Atoms-up extreme. Spending 6 months on tokens and elements before producing components anyone uses. Ship components people need; refine tokens iteratively.
- One-person system. A system without governance fails as soon as the original designer leaves. Establish ownership early.
- Stale documentation. A system with code that's diverged from the docs is worse than no system. Synchronize or kill the docs.
- Versioning everything. Treating every component as needing a major version. Most components evolve in place. Reserve versioning for breaking changes.
- Adopting "atomic design" dogmatically. Atoms / molecules / organisms is a useful mental model, not a rigid taxonomy. Don't argue about whether something is a molecule or an organism.
- Building in a vacuum. A system designed without input from the teams using it gets ignored. Co-design with consumers.
- No deprecation path. Old components linger in code forever because no one knows it's safe to remove them. Document deprecation explicitly.
- Token explosion. Defining 200 color tokens for a brand with 10 colors. Discipline. Most products need fewer tokens than they have.
Output format
A design system has multiple deliverables. Typically:
- Documentation site (Notion, dedicated site, GitHub Pages, Storybook addon, etc.)
- Figma library (or equivalent design tool)
- Code library (npm package, monorepo workspace, copy-paste components)
- Decision log (system-level decisions and the reasoning)
- Roadmap and changelog
For a design system audit, output is a markdown report at design-system-audit.md:
- Inventory of what exists (foundations, elements, components, patterns)
- Gap analysis
- Fragmentation analysis
- Drift analysis
- Prioritized remediation plan
- Governance recommendations
Reference files
references/system-architecture.md - The four-layer model (tokens, primitives, patterns, templates) and how to decide where new work belongs.
references/system-audit-template.md - Template for auditing an existing design system.
references/governance-playbook.md - Contribution model, ownership, and decision process for an active system.
1---2name: design-system-103description: Build or audit a design system including component library, design tokens, naming conventions, contribution model, and documentation. Use this skill whenever the user wants to build a design system, audit an existing system, define design tokens at the system level, structure a component library, or set up design system governance. Triggers on design system, component library, design tokens, atomic design, atoms, molecules, organisms, design system documentation, Storybook, Figma library, system governance, design contribution model. Also triggers when teams are inconsistent across products and a system is the answer.4---5
6# Design System
7
8Build, evolve, or audit a design system. Stack-agnostic in principle. Implementation is stack-specific (Figma, Storybook, code library, etc.) but the structure and governance principles transfer.
9
10This skill is for building the system. For applying a system to specific pages or components, use `design-standards`. For brand visual identity, use `brand-identity`.
11
12---
13
14## When to use
15
16- Building a design system from scratch
17- Auditing an existing system for gaps or fragmentation
18- Defining design tokens at the system level
19- Structuring a component library
20- Establishing contribution and governance models
21- Migrating from ad-hoc components to a documented system
22
23## When NOT to use
24
25- Designing a single page or component (use `design-standards`)
26- Brand identity work (use `brand-identity`)
27- Component-level frontend implementation (use `frontend-component-build`)
28- Pure design documentation for marketing (use `brand-style-guide`)
29
30---
31
32## Required inputs
33
34- The brand identity (tokens, voice, imagery direction)
35- The product surfaces the system needs to support (web, mobile, marketing, app, internal tools)
36- The team and its working tools (Figma, code framework, doc platform)
37- Existing components, even if undocumented
38- Constraints (accessibility requirements, performance targets, browser support)
39
40If brand identity is undefined, run `brand-identity` first.
41
42---
43
44## The framework: 5 layers
45
46A complete design system has five layers, stacked. Each layer feeds the layer above.
47
48### 1. Foundations (tokens)
49
50The atomic decisions. Color, type, spacing, radius, shadow, motion, breakpoints.
51
52**Why this layer matters:**
53- Tokens are the source of truth for everything above
54- Token changes propagate everywhere automatically
55- Without tokens, the system has no foundation
56
57**Output:**
58- A documented token set (see `design-standards/references/design-tokens-template.md`)
59- Token implementation in code (CSS variables, JS objects, Style Dictionary, etc.)
60- Token implementation in Figma (variables and styles)
61- A primer doc explaining what tokens to use when
62
63**Common patterns:**
64- Two-tier tokens: base tokens (raw values) + semantic tokens (named uses). Example: `color-blue-600` (base) + `color-text-link` (semantic). Components reference semantic tokens. Theme changes update semantic tokens, not base.
65
66### 2. Elements (atoms)
67
68The smallest functional building blocks. Buttons, inputs, labels, badges, icons, links, dividers.
69
70**Per element, document:**
71- Visual variants (primary, secondary, ghost, etc.)
72- Size variants (small, medium, large)
73- States (default, hover, focus, active, disabled, error, loading)
74- Anatomy (the parts that make up the element)
75- Spacing and proportions
76- Accessibility (keyboard support, screen reader behavior, ARIA)
77- Code usage (props, examples)
78
79**Output:**
80- Element library in Figma
81- Element components in code
82- Per-element documentation
83
84### 3. Components (molecules + organisms)
85
86Combinations of elements that form recognizable UI patterns. Cards, alerts, modals, navigation, forms, data tables, headers, footers.
87
88**Per component:**
89- Composition (which elements it uses)
90- Variants and configurations
91- Use cases (when to reach for this vs. an alternative)
92- Layout behavior (responsive, contained, full-bleed)
93- Anti-patterns (when NOT to use it)
94
95**Output:**
96- Component library
97- Per-component documentation with usage guidance
98
99### 4. Patterns (templates)
100
101Larger structures that combine components. Sign-in flow, settings page, dashboard layout, marketing page sections.
102
103**Per pattern:**
104- The structure and components used
105- The user journey it supports
106- Layout grid and spacing
107- Responsive behavior
108- Variants (e.g., "with sidebar," "fullscreen," "modal")
109
110**Output:**
111- Pattern library or page templates
112- Documentation showing complete examples
113
114### 5. Documentation and governance
115
116How the system gets used, contributed to, and maintained.
117
118**Documentation includes:**
119- Getting started guide for new team members
120- How to use vs. how to extend
121- Contribution model
122- Versioning policy
123- Migration paths when breaking changes happen
124- Decision log for major system choices
125
126**Governance includes:**
127- Who owns the system (a team or rotation)
128- How new components get proposed and approved
129- How conflicts get resolved
130- How the system evolves vs. stays stable
131- Cadence of review and updates
132
133---
134
135## Workflow
136
137### For a new design system
138
1391. **Inventory the existing UI.** Screenshot every component, button, form, modal across the product. The list of distinct UI patterns is your starting scope.
1402. **Identify the duplicates.** Same component built 5 different ways across the product. These are your high-value consolidation targets.
1413. **Define foundations.** Token set, with both base and semantic layers. Document each.
1424. **Audit elements.** From the inventory, identify the actual elements (buttons, inputs, etc.) and reduce variants to a managed set.
1435. **Build the element library.** Figma + code. Document each element.
1446. **Identify priority components.** The 10 to 15 components that appear most often. Build those first.
1457. **Document patterns.** Page-level templates that show the system in use.
1468. **Establish governance.** Owner, contribution model, review cadence.
1479. **Roll out.** Migrate existing surfaces to the system progressively.
148
149### For an existing design system audit
150
1511. **Inventory what exists.** What's documented, what's in Figma, what's in code, what's actually used in production.
1522. **Map gaps.** Where the system is incomplete. Where teams build outside the system because the system can't serve their need.
1533. **Map fragmentation.** Where the system has divergent implementations (Figma vs. code, web vs. mobile, multiple teams).
1544. **Identify decay.** Components that have drifted from the documented standard.
1555. **Prioritize fixes.** Foundation gaps first. High-use component drift second. Rarely-used component cleanup last.
1566. **Plan rollout.** Major changes need migration paths.
157
158---
159
160## Failure patterns
161
162- **Building the system before the brand is set.** Tokens depend on brand. Set brand first.
163- **Atoms-up extreme.** Spending 6 months on tokens and elements before producing components anyone uses. Ship components people need; refine tokens iteratively.
164- **One-person system.** A system without governance fails as soon as the original designer leaves. Establish ownership early.
165- **Stale documentation.** A system with code that's diverged from the docs is worse than no system. Synchronize or kill the docs.
166- **Versioning everything.** Treating every component as needing a major version. Most components evolve in place. Reserve versioning for breaking changes.
167- **Adopting "atomic design" dogmatically.** Atoms / molecules / organisms is a useful mental model, not a rigid taxonomy. Don't argue about whether something is a molecule or an organism.
168- **Building in a vacuum.** A system designed without input from the teams using it gets ignored. Co-design with consumers.
169- **No deprecation path.** Old components linger in code forever because no one knows it's safe to remove them. Document deprecation explicitly.
170- **Token explosion.** Defining 200 color tokens for a brand with 10 colors. Discipline. Most products need fewer tokens than they have.
171
172---
173
174## Output format
175
176A design system has multiple deliverables. Typically:
177
178- **Documentation site** (Notion, dedicated site, GitHub Pages, Storybook addon, etc.)
179- **Figma library** (or equivalent design tool)
180- **Code library** (npm package, monorepo workspace, copy-paste components)
181- **Decision log** (system-level decisions and the reasoning)
182- **Roadmap and changelog**
183
184For a design system audit, output is a markdown report at `design-system-audit.md`:
185
1861. Inventory of what exists (foundations, elements, components, patterns)
1872. Gap analysis
1883. Fragmentation analysis
1894. Drift analysis
1905. Prioritized remediation plan
1916. Governance recommendations
192
193---
194
195## Reference files
196
197- [`references/system-architecture.md`](references/system-architecture.md) - The four-layer model (tokens, primitives, patterns, templates) and how to decide where new work belongs.
198- [`references/system-audit-template.md`](references/system-audit-template.md) - Template for auditing an existing design system.
199- [`references/governance-playbook.md`](references/governance-playbook.md) - Contribution model, ownership, and decision process for an active system.