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."4category: design5catalog_summary: "Component library, design tokens, design system documentation"6display_order: 17---89# Design System1011Build, 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.1213This 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`.1415---1617## When to use1819- Building a design system from scratch20- Auditing an existing system for gaps or fragmentation21- Defining design tokens at the system level22- Structuring a component library23- Establishing contribution and governance models24- Migrating from ad-hoc components to a documented system2526## When NOT to use2728- Designing a single page or component (use `design-standards`)29- Brand identity work (use `brand-identity`)30- Component-level frontend implementation (use `frontend-component-build`)31- Pure design documentation for marketing (use `brand-style-guide`)3233---3435## Required inputs3637- The brand identity (tokens, voice, imagery direction)38- The product surfaces the system needs to support (web, mobile, marketing, app, internal tools)39- The team and its working tools (Figma, code framework, doc platform)40- Existing components, even if undocumented41- Constraints (accessibility requirements, performance targets, browser support)4243If brand identity is undefined, run `brand-identity` first.4445---4647## The framework: 5 layers4849A complete design system has five layers, stacked. Each layer feeds the layer above.5051### 1. Foundations (tokens)5253The atomic decisions. Color, type, spacing, radius, shadow, motion, breakpoints.5455**Why this layer matters:**56- Tokens are the source of truth for everything above57- Token changes propagate everywhere automatically58- Without tokens, the system has no foundation5960**Output:**61- A documented token set (see `design-standards/references/design-tokens-template.md`)62- Token implementation in code (CSS variables, JS objects, Style Dictionary, etc.)63- Token implementation in Figma (variables and styles)64- A primer doc explaining what tokens to use when6566**Common patterns:**67- 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.6869### 2. Elements (atoms)7071The smallest functional building blocks. Buttons, inputs, labels, badges, icons, links, dividers.7273**Per element, document:**74- Visual variants (primary, secondary, ghost, etc.)75- Size variants (small, medium, large)76- States (default, hover, focus, active, disabled, error, loading)77- Anatomy (the parts that make up the element)78- Spacing and proportions79- Accessibility (keyboard support, screen reader behavior, ARIA)80- Code usage (props, examples)8182**Output:**83- Element library in Figma84- Element components in code85- Per-element documentation8687### 3. Components (molecules + organisms)8889Combinations of elements that form recognizable UI patterns. Cards, alerts, modals, navigation, forms, data tables, headers, footers.9091**Per component:**92- Composition (which elements it uses)93- Variants and configurations94- Use cases (when to reach for this vs. an alternative)95- Layout behavior (responsive, contained, full-bleed)96- Anti-patterns (when NOT to use it)9798**Output:**99- Component library100- Per-component documentation with usage guidance101102### 4. Patterns (templates)103104Larger structures that combine components. Sign-in flow, settings page, dashboard layout, marketing page sections.105106**Per pattern:**107- The structure and components used108- The user journey it supports109- Layout grid and spacing110- Responsive behavior111- Variants (e.g., "with sidebar," "fullscreen," "modal")112113**Output:**114- Pattern library or page templates115- Documentation showing complete examples116117### 5. Documentation and governance118119How the system gets used, contributed to, and maintained.120121**Documentation includes:**122- Getting started guide for new team members123- How to use vs. how to extend124- Contribution model125- Versioning policy126- Migration paths when breaking changes happen127- Decision log for major system choices128129**Governance includes:**130- Who owns the system (a team or rotation)131- How new components get proposed and approved132- How conflicts get resolved133- How the system evolves vs. stays stable134- Cadence of review and updates135136---137138## Workflow139140### For a new design system1411421. **Inventory the existing UI.** Screenshot every component, button, form, modal across the product. The list of distinct UI patterns is your starting scope.1432. **Identify the duplicates.** Same component built 5 different ways across the product. These are your high-value consolidation targets.1443. **Define foundations.** Token set, with both base and semantic layers. Document each.1454. **Audit elements.** From the inventory, identify the actual elements (buttons, inputs, etc.) and reduce variants to a managed set.1465. **Build the element library.** Figma + code. Document each element.1476. **Identify priority components.** The 10 to 15 components that appear most often. Build those first.1487. **Document patterns.** Page-level templates that show the system in use.1498. **Establish governance.** Owner, contribution model, review cadence.1509. **Roll out.** Migrate existing surfaces to the system progressively.151152### For an existing design system audit1531541. **Inventory what exists.** What's documented, what's in Figma, what's in code, what's actually used in production.1552. **Map gaps.** Where the system is incomplete. Where teams build outside the system because the system can't serve their need.1563. **Map fragmentation.** Where the system has divergent implementations (Figma vs. code, web vs. mobile, multiple teams).1574. **Identify decay.** Components that have drifted from the documented standard.1585. **Prioritize fixes.** Foundation gaps first. High-use component drift second. Rarely-used component cleanup last.1596. **Plan rollout.** Major changes need migration paths.160161---162163## Failure patterns164165- **Building the system before the brand is set.** Tokens depend on brand. Set brand first.166- **Atoms-up extreme.** Spending 6 months on tokens and elements before producing components anyone uses. Ship components people need; refine tokens iteratively.167- **One-person system.** A system without governance fails as soon as the original designer leaves. Establish ownership early.168- **Stale documentation.** A system with code that's diverged from the docs is worse than no system. Synchronize or kill the docs.169- **Versioning everything.** Treating every component as needing a major version. Most components evolve in place. Reserve versioning for breaking changes.170- **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.171- **Building in a vacuum.** A system designed without input from the teams using it gets ignored. Co-design with consumers.172- **No deprecation path.** Old components linger in code forever because no one knows it's safe to remove them. Document deprecation explicitly.173- **Token explosion.** Defining 200 color tokens for a brand with 10 colors. Discipline. Most products need fewer tokens than they have.174175---176177## Output format178179A design system has multiple deliverables. Typically:180181- **Documentation site** (Notion, dedicated site, GitHub Pages, Storybook addon, etc.)182- **Figma library** (or equivalent design tool)183- **Code library** (npm package, monorepo workspace, copy-paste components)184- **Decision log** (system-level decisions and the reasoning)185- **Roadmap and changelog**186187For a design system audit, output is a markdown report at `design-system-audit.md`:1881891. Inventory of what exists (foundations, elements, components, patterns)1902. Gap analysis1913. Fragmentation analysis1924. Drift analysis1935. Prioritized remediation plan1946. Governance recommendations195196---197198## If required data is unavailable199200This 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.201202---203204## Reference files205206- [`references/system-architecture.md`](references/system-architecture.md) - The four-layer model (tokens, primitives, patterns, templates) and how to decide where new work belongs.207- [`references/system-audit-template.md`](references/system-audit-template.md) - Template for auditing an existing design system.208- [`references/governance-playbook.md`](references/governance-playbook.md) - Contribution model, ownership, and decision process for an active system.