Design systems that actually work
How a design system can carry creativity rather than constrain it — through tokens, components, and documentation people actually use.
Design systems have a divided reputation. To some they're order and speed; to others a corset that irons every idea flat. After a handful of projects, I'm convinced the difference isn't in the system itself, but in the attitude you build it with.
A system should carry, not chain
The best design system takes the same recurring decisions off my plate, so I have energy left for the special ones. Spacing, color, type sizes — none of that needs reinventing every time.
A good system makes the obvious easy and the exceptional possible.
The foundation is tokens: named values for color, typography, spacing and radius. They're the
language the whole product speaks. Change a token and everything that uses it changes —
consistently, in one place. What matters is that tokens carry meaning, not just values:
color-surface rather than grey-100. That keeps the system legible even when the values shift
later.
Components and documentation
On top of the tokens sit components. Here I'm careful to leave enough room: sensible defaults, but doors open for the special case. A component that allows exactly one look gets worked around — and then the system quietly falls apart from the inside.
What's most often underrated is the documentation. A system nobody understands effectively doesn't exist. For me that includes:
- The why, not just the how — the intent behind a decision
- Examples in real context, not isolated buttons
- Clear boundaries — when to use a component, and when deliberately not to
A design system is never finished. It lives with the product, grows, and sometimes lets go. That sense of stewardship is exactly what separates a system gathering dust from one a team can lean on. When it works, you don't notice it — you just build faster, calmer and more coherently. And that's precisely the goal.