Craft
What a Design System Is Actually For
Everyone builds one. Fewer people can say why. We get into what ours standardizes, what it leaves alone on purpose, and why a design system that never bends is already broken.
A design system sits at the centre of most modern digital projects. Teams build component libraries, document spacing scales, lock down colour palettes. Then someone asks a simple question: what is this actually for? The room goes quiet.
We built ours because clients kept asking why their buttons looked different across pages, or why mobile spacing felt inconsistent. Fair questions. But a design system that tries to answer every question becomes a cage. The best ones know when to standardize and when to step back.
What a design system should standardize
Start with the elements users encounter most often. Buttons, form fields, navigation patterns, typography hierarchies. These need consistency because users build mental models. When a primary button looks different on every screen, trust erodes. People hesitate before clicking.
Spacing matters more than most teams admit. A consistent rhythm between elements makes interfaces feel calmer. Our design system uses an 8-pixel grid. Not because eight is magic, but because picking one number and sticking to it removes hundreds of micro-decisions. Designers move faster. Developers know what to expect.
Colour needs rules too. Accessibility requirements set a floor: contrast ratios, focus states, error messaging. Beyond that, a limited palette keeps things cohesive. We define primary, secondary, neutral, success, warning, and error colours. Each has defined use cases. This supports our website design work by giving every project a clear visual language from day one.
What it should leave alone
Layout is where systems often overreach. Yes, define grid structures and breakpoints. But trying to prescribe every arrangement kills creativity. Some content needs asymmetry. Some pages benefit from unexpected white space. A design system should provide tools, not blueprints.
Tone of voice belongs to the brand, not the system. Components can suggest placeholder text, but the words themselves need room to breathe. This connects directly to our content writing approach, where voice adapts to audience and context. A button labelled 'Submit' works for forms. A button labelled 'Let's go' works for onboarding. The system accommodates both.
Illustration and imagery resist systemization by nature. You can define aspect ratios, file formats, and alt text requirements. You cannot standardize creativity. Trying to force every image into the same visual style flattens personality. Better to set guardrails and trust the people doing the work.
Why flexibility matters more than rules
A design system exists to solve problems, not create them. When a component doesn't quite fit, teams face a choice: bend the system or bend the solution. Rigid systems force bad compromises. Flexible ones adapt.
We encountered this during app development for a client in healthcare. Their forms needed custom validation states our system hadn't anticipated. We could have forced existing error patterns into the wrong context. Instead, we extended the system. The new patterns fed back into future projects. The system grew stronger by admitting it wasn't finished.
According to GOV.UK's service manual, design systems work best when they evolve with user needs. Static systems age poorly. The web changes. User expectations shift. Technologies improve. A system built five years ago and never touched since is already broken, even if every component still renders perfectly.
How ours actually gets used
Every project starts with the design system as a foundation, not a straitjacket. Designers pull components, adapt spacing, apply the colour palette. Then they look at what the specific brief needs. Sometimes that means creating something new. Sometimes it means using existing components in unexpected ways.
Developers appreciate the structure. Consistent naming conventions, documented props, clear usage examples. These speed up implementation and reduce bugs. But we've also built in escape hatches: custom classes for one-off adjustments, variant options for edge cases. This supports our broader services by letting us move quickly without sacrificing quality.
The balance between consistency and creativity
Consistency builds trust. Creativity builds engagement. A design system serves both, or it serves neither. Users need reliable patterns to navigate confidently. They also need moments of delight that break the pattern.
Consider navigation. The main menu should work predictably across every page. Users shouldn't have to relearn where to find things. But a campaign landing page might hide the traditional navigation entirely, focusing attention on a single action. The design system accommodates both needs because it knows its job: enable good decisions, don't make every decision.
This thinking extends to our SEO work as well. Technical consistency matters: proper heading hierarchies, semantic HTML, predictable URL structures. But content needs to vary by intent and audience. The system provides the scaffolding. The content provides the substance.
When to break your own rules
Breaking the design system isn't failure. Refusing to break it when needed is. Every exception teaches you something. Maybe a component needs more variants. Maybe a spacing value doesn't work at certain breakpoints. Maybe an accessibility requirement conflicts with an aesthetic choice.
We document every exception. Not to shame anyone, but to spot patterns. When the same workaround appears three times, it becomes a feature request. The design system updates. The exception becomes the rule. This cycle of use, break, learn, and improve keeps the system relevant.
Some teams treat their design system like scripture: sacred and unchangeable. This creates shadow systems. Designers and developers build unofficial workarounds that never get documented. Inconsistencies multiply in the dark. Better to acknowledge that the system doesn't cover everything and probably never will.
What makes a design system worth building
A design system earns its keep by saving time, reducing errors, and making quality the default. When onboarding a new designer, they should get up to speed in days, not weeks. When a developer implements a feature, they shouldn't have to guess at spacing or hunt for the right shade of blue.
But the real value shows up in what the team stops thinking about. Micro-decisions drain energy. Should this margin be 12 pixels or 16? Should this text be 14 or 15? A good design system answers these questions once, freeing brainpower for harder problems. Like whether this feature actually solves the user's need. Or whether this flow makes sense on a phone.
These benefits compound across projects. Patterns tested in one build inform the next. Components refined through real use become more robust. The design system becomes institutional knowledge made tangible. New team members inherit years of decisions without sitting through years of meetings.
Ultimately, a design system exists to make better work possible. Not to constrain it, not to automate it away, but to clear the path for the thinking that actually matters. When it does that job well, nobody notices the system at all. They notice the product feels right.
Ready to talk about your project?
Start a conversation →