| name | create-a-design-system |
| category | design |
| description | Create a reusable interface system from real product patterns, including tokens, components, states, accessibility, documentation, and contribution rules. Use when screens drift, teams rebuild the same controls, or a product needs consistent design and implementation across several surfaces. |
create-a-design-system
Build the system from recurring product needs, not an abstract component wishlist. Give each pattern one
owned contract across design, code, content, accessibility, and testing.
Inputs
- Gather current screens, components, styles, accessibility findings, brand rules, and supported platforms.
- Name design, engineering, content, and product owners plus intended adopters.
- Define the first product journeys the system must support.
Procedure
- Inventory repeated visual and behavioral patterns across shipped interfaces. Record duplicates, variants, and known failures.
- Group patterns into foundations, primitives, components, compositions, and product-specific exceptions.
- Define tokens for color, type, spacing, size, radius, motion, elevation, and breakpoints using semantic names.
- Choose the smallest component set needed by the priority journeys.
- Specify each component's anatomy, content rules, variants, states, responsive behavior, keyboard behavior, and accessible name.
- Implement design and code sources together. Map every variant and token between them.
- Create examples for default, long content, empty, loading, error, disabled, focus, high zoom, and translated states.
- Add visual, interaction, accessibility, and API checks appropriate to each component.
- Migrate one real journey and measure duplication removed, defects found, and adoption friction.
- Define contribution, review, versioning, deprecation, and exception rules with accountable owners.
- Publish searchable documentation and a roadmap driven by product use rather than component count.
Boundaries
Do not replace working platform conventions without evidence. Never encode inaccessible color, motion,
focus, or content behavior as a reusable default. Do not force one component to cover unrelated semantics.
Done
- An audited inventory connects each initial token and component to real product use
- Design, code, content, states, and accessibility contracts match for the published components
- A migrated journey passes visual, keyboard, screen-reader, responsive, and interaction checks
- Contribution, versioning, deprecation, exception, and ownership rules are documented and exercised
Then use run-a-design-handoff to move a product flow onto the system.