A design system is not a Figma component library. It's not a CSS framework. It's not Storybook. A design system is a shared language — a single source of truth for how your product looks, behaves, and communicates — expressed simultaneously in design tools and production code. When done well, a designer and developer working on the same feature are, quite literally, speaking the same vocabulary. When done poorly, they're translating between incompatible dialects every sprint.
Start with Design Tokens
Tokens are the atomic layer: named values for colour, spacing, typography, border radius, shadow, and motion. They are defined once and referenced everywhere. color.brand.primary is defined in a single JSON file, transformed into CSS custom properties, JavaScript constants, and Figma variables simultaneously via tools like Style Dictionary. When the brand refreshes and primary changes from indigo to violet, you update one token value and every surface — web, mobile, email templates — updates automatically.
Component Architecture Principles
- Composable, not configurable: A Button with 47 props is an anti-pattern. Prefer composable primitives —
ButtonBase,ButtonIcon,ButtonLabel— that combine cleanly. - Accessibility baked in: Every component ships with correct ARIA attributes, keyboard handling, and focus management. This is enforced in Storybook via a11y addon tests.
- Documented in isolation: Every component has a Storybook story for every meaningful state — default, hover, disabled, loading, error. The story is the spec.
The Governance Challenge
The hardest part of a design system is not building it — it's maintaining it as the product evolves. Establish clear ownership (a dedicated "platform" team, or a core maintainer rotation), a component request process (RFC with use case and proposed API before implementation), and a semantic versioning policy for breaking changes. Design systems that lack governance drift into incoherence within 12 months as teams add one-off components to meet deadlines and nobody removes the originals.