The best design systems I’ve built are a little boring. That’s a compliment. They do not win awards, they do not trend on design showcase sites, and nobody posts screenshots of their button component with a row of fire emoji underneath. What they do is quietly make every screen in a product feel familiar, predictable and easy to use, and that turns out to be one of the most valuable things a design team can give its users.

Users shouldn’t have to learn a new button on every screen. They came to pay a bill, book a table or send a file, not to admire our creativity. Over the last few years I have helped build or rebuild design systems for a fintech app, a healthcare portal and a mid-sized online retailer. The most successful of them were the most boring. Here is why I have come to love that, and how I keep a system dull in all the right ways.

Boring is a feature

When people talk about a “boring” product, they usually mean it as an insult. In interface design, boring often means trustworthy. A primary button that always looks the same, always sits in the same place and always does the same kind of thing is a button nobody has to think about. Every second a user does not spend decoding the interface is a second they spend on the task they actually came to do.

I think of it like the signs on an interstate highway. They are deliberately plain: the same colors, the same typeface, the same shapes, in every state. Nobody wants a highway designer to get creative with exit signs at seventy miles an hour. Digital products deserve the same respect for the user’s attention.

Consistency is a feature users never notice — until it’s gone.

Owen

That is the strange thing about consistency. When it works, it is invisible. Users never write in to say they appreciated how every date picker behaved the same way. But the moment one screen breaks the pattern, with a different button style or a form that validates differently, the support tickets start arriving.

Fewer components

Every new component is something to maintain forever. Say no often.

This is the rule I repeat most in design system meetings, and it is the one I get the most pushback on. A team is building a new feature, and they want a special card with a slightly different shadow, or a toggle that looks just a little more playful. Each request seems small on its own. Over two years, those small requests add up to four kinds of cards, three toggles and a dozen button variants that all need documenting, testing, updating and fixing whenever something underneath them changes.

Close-up of code on a computer screen
Every component lives on in code, tests and documentation long after the meeting where it was approved.

So I ask a few questions before anything new goes into the system:

  1. Can an existing component handle this with a small, documented option?
  2. Will at least three different parts of the product need it?
  3. Does it solve a real user problem, or only a visual preference?
  4. Who will own and maintain it a year from now?

If the answers are no, no, a preference and nobody, the answer is a polite no. That does not mean teams cannot experiment. They can build one-off designs inside their own feature. If the experiment proves itself and other teams start asking for it, then it earns a place in the system.

Clear names

If a developer can’t guess what a component does from its name, rename it.

Naming sounds like a small thing until you watch a team lose an afternoon arguing about whether they need the “Hero Tile” or the “Feature Panel” or the “Promo Block,” only to discover all three do almost the same thing. Clever names feel fun in a workshop and become expensive in a codebase.

I prefer names that describe what a component is or does, in the plainest words possible. A button is a button. A message that appears briefly at the bottom of the screen is a toast or a notification, and everyone on the team should agree which word we use. Variants follow the same logic: primary, secondary, danger. Not “sunrise,” “ocean” and “volcano.”

My naming rules of thumb

Documentation people actually read

A design system is only as good as its documentation, and most documentation is too long. Designers and developers are busy. They open the docs because they need an answer right now, usually something like “which button do I use here?” or “what spacing goes between these two cards?”

So every component page in my systems starts with the same three things: a live example, a short “use this when” sentence and a short “don’t use this when” sentence. Detailed specs, accessibility notes and edge cases come after, for people who need them. The goal is that someone can get the right answer in under thirty seconds.

Two coworkers looking at a laptop together
The best documentation answers a teammate’s question before they have to ask it in chat.

I also keep a short changelog at the top of the docs. When a component changes, teams can see what changed and why without digging through meeting notes. Boring, again. Also incredibly useful.

Room to breathe

None of this means a product has to look dull. Boring systems can power beautiful products. The predictability lives in the building blocks, not in the final page. Marketing pages, onboarding moments and empty states can still have personality, illustrations and motion. They just sit on top of a foundation that behaves the same way everywhere.

In fact, I find that a boring foundation frees teams to be more creative where it counts. When nobody has to reinvent the form field, there is more time to think about the moment a customer finishes their first project, or the message they see when something goes wrong. That is where personality earns its keep.

A good example came from the online retailer I mentioned earlier. After we cut their button styles from eleven to three and their card types from six to two, the product team shipped new features noticeably faster, by their own estimate. They used that time to design a genuinely delightful order tracking page. Customers loved it, and it was built entirely from boring parts.

Key takeaway: A design system should make the common things predictable so the special things can shine. Fewer components, plainer names and shorter docs beat cleverness every time.

In praise of dull

I used to measure a design system by how impressive it looked in a portfolio. Now I measure it by how rarely people have to think about it. If a new designer can build a screen on their first day without asking anyone for help, the system is working. If users move through the product without stopping to figure out what a button does, the system is working.

It will never be the flashiest thing I make. But a boring, reliable design system is one of the kindest things a team can build, both for the people who use the product and for the people who build it.

2 Responses

Leave a Reply

Your email address will not be published. Required fields are marked *