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
If required data is unavailable
This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
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-system3description: 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---56# Design System78Build, 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.910This 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`.1112---1314## When to use1516- Building a design system from scratch17- Auditing an existing system for gaps or fragmentation18- Defining design tokens at the system level19- Structuring a component library20- Establishing contribution and governance models21- Migrating from ad-hoc components to a documented system2223## When NOT to use2425- 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`)2930---3132## Required inputs3334- 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 undocumented38- Constraints (accessibility requirements, performance targets, browser support)3940If brand identity is undefined, run `brand-identity` first.4142---4344## The framework: 5 layers4546A complete design system has five layers, stacked. Each layer feeds the layer above.4748### 1. Foundations (tokens)4950The atomic decisions. Color, type, spacing, radius, shadow, motion, breakpoints.5152**Why this layer matters:**53- Tokens are the source of truth for everything above54- Token changes propagate everywhere automatically55- Without tokens, the system has no foundation5657**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 when6263**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.6566### 2. Elements (atoms)6768The smallest functional building blocks. Buttons, inputs, labels, badges, icons, links, dividers.6970**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 proportions76- Accessibility (keyboard support, screen reader behavior, ARIA)77- Code usage (props, examples)7879**Output:**80- Element library in Figma81- Element components in code82- Per-element documentation8384### 3. Components (molecules + organisms)8586Combinations of elements that form recognizable UI patterns. Cards, alerts, modals, navigation, forms, data tables, headers, footers.8788**Per component:**89- Composition (which elements it uses)90- Variants and configurations91- 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)9495**Output:**96- Component library97- Per-component documentation with usage guidance9899### 4. Patterns (templates)100101Larger structures that combine components. Sign-in flow, settings page, dashboard layout, marketing page sections.102103**Per pattern:**104- The structure and components used105- The user journey it supports106- Layout grid and spacing107- Responsive behavior108- Variants (e.g., "with sidebar," "fullscreen," "modal")109110**Output:**111- Pattern library or page templates112- Documentation showing complete examples113114### 5. Documentation and governance115116How the system gets used, contributed to, and maintained.117118**Documentation includes:**119- Getting started guide for new team members120- How to use vs. how to extend121- Contribution model122- Versioning policy123- Migration paths when breaking changes happen124- Decision log for major system choices125126**Governance includes:**127- Who owns the system (a team or rotation)128- How new components get proposed and approved129- How conflicts get resolved130- How the system evolves vs. stays stable131- Cadence of review and updates132133---134135## Workflow136137### For a new design system1381391. **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.148149### For an existing design system audit1501511. **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.157158---159160## Failure patterns161162- **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.171172---173174## Output format175176A design system has multiple deliverables. Typically:177178- **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**183184For a design system audit, output is a markdown report at `design-system-audit.md`:1851861. Inventory of what exists (foundations, elements, components, patterns)1872. Gap analysis1883. Fragmentation analysis1894. Drift analysis1905. Prioritized remediation plan1916. Governance recommendations192193---194195## If required data is unavailable196197This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.198199---200201## Reference files202203- [`references/system-architecture.md`](references/system-architecture.md) - The four-layer model (tokens, primitives, patterns, templates) and how to decide where new work belongs.204- [`references/system-audit-template.md`](references/system-audit-template.md) - Template for auditing an existing design system.205- [`references/governance-playbook.md`](references/governance-playbook.md) - Contribution model, ownership, and decision process for an active system.