Back to Blog
Design Systems Team Collaboration Design Process

Building Design Systems That Actually Get Used

Savelle McThias
Building Design Systems That Actually Get Used

I’ve built three design systems in my career. The first one failed completely—nobody used it. The second one saw moderate adoption. The third one was actually successful and is still being used today.

Here’s what I learned about creating design systems that teams actually want to use.

Why Design Systems Fail

Before talking about success, let’s acknowledge why design systems often fail:

1. Built in Isolation

The most common mistake is creating a design system in a vacuum, without input from the people who will actually use it. You end up with components that look great in Figma but don’t solve real problems.

2. Too Rigid

Some design systems are so strict they feel like prisons rather than tools. When the system doesn’t accommodate real needs, teams work around it rather than with it.

3. Poorly Documented

A component library without documentation is just a collection of files. If people don’t know how to use your system, they won’t.

4. Lack of Maintenance

A design system isn’t a one-time project—it’s a product that needs ongoing maintenance. When it falls behind product needs, teams stop using it.

Principles for Success

Here’s what actually works:

Start Small

Don’t try to build everything at once. Start with:

  • Color palette
  • Typography system
  • Most common components (buttons, inputs, cards)
  • Basic layouts

You can expand later based on actual needs, not assumptions.

Involve the Team Early

From day one, include:

  • Designers: What do they actually need?
  • Developers: What’s feasible and maintainable?
  • Product managers: What business problems need solving?

Make it collaborative, not dictatorial.

Document Everything

Every component needs:

  • What it is: Clear description of purpose
  • When to use it: Specific use cases
  • When not to use it: Common misuses
  • Code examples: Copy-paste ready implementations
  • Do’s and don’ts: Visual examples of correct and incorrect usage

Make It Easy to Use

Reduce friction at every step:

  • Clear naming conventions
  • Easy access (Figma libraries, npm packages, etc.)
  • Copy-paste code snippets
  • Clear contribution process

The easier it is to use the system correctly than to create something custom, the more adoption you’ll get.

Building Blocks of a Good System

Foundation Layer

Start with the fundamentals:

Colors

  • Primary, secondary, accent colors
  • Semantic colors (success, error, warning, info)
  • Neutral grays
  • Consider accessibility from the start

Typography

  • Font families
  • Size scale
  • Weight scale
  • Line height guidelines

Spacing

  • Consistent spacing scale (4px, 8px, 16px, 24px, etc.)
  • Margin and padding guidelines
  • Layout grid system

Elevation

  • Shadow system
  • Z-index scale

Component Layer

Build commonly used components:

Form Elements

  • Inputs (text, number, email, etc.)
  • Checkboxes and radio buttons
  • Select dropdowns
  • Textareas
  • Form validation states

Buttons

  • Primary, secondary, tertiary variants
  • Different sizes
  • Loading and disabled states
  • Icon buttons

Feedback

  • Alerts and notifications
  • Loading states
  • Empty states
  • Error states

Navigation

  • Headers
  • Sidebars
  • Tabs
  • Breadcrumbs

Pattern Layer

Document common patterns:

  • Form layouts
  • Dashboard layouts
  • List and table patterns
  • Modal and dialog patterns
  • Empty state patterns

Governance and Maintenance

Clear Ownership

Someone needs to own the design system. This could be:

  • A dedicated team (for large organizations)
  • Rotating ownership (for smaller teams)
  • Part-time ownership (minimum viable approach)

Without clear ownership, the system will decay.

Contribution Process

Make it easy for others to contribute:

  1. Clear guidelines for proposing new components
  2. Review process for contributions
  3. Documentation requirements
  4. Testing requirements

Versioning Strategy

Use semantic versioning and clear release notes:

  • Major versions: Breaking changes
  • Minor versions: New features
  • Patch versions: Bug fixes

Regular Review

Schedule quarterly reviews to:

  • Identify components that need updates
  • Remove unused components
  • Add frequently requested components
  • Update documentation

Measuring Success

Track adoption and usage:

  • Component usage: Which components are used most/least?
  • Design consistency: Are teams following the system?
  • Development speed: Are teams shipping faster?
  • Designer/developer satisfaction: Survey your users regularly

Common Challenges

”Our project is special”

Every project feels special, but most use cases are common. Push back on custom components unless there’s a genuine need.

Balancing flexibility and consistency

Allow customization where it makes sense (colors, spacing) but be strict about structure and behavior.

Technical debt

It’s okay to iterate. Version 1 doesn’t need to be perfect. Ship something useful, then improve it.

Getting buy-in

Start small, show value, then expand. A successful small system beats a failed comprehensive one.

The Bottom Line

A design system is a product, and your team is your user. Apply the same user-centered thinking you’d apply to any product:

  • Understand their needs
  • Solve real problems
  • Make it easy to use
  • Iterate based on feedback
  • Maintain it over time

When you do this right, you don’t need to convince people to use your design system. They’ll want to use it because it makes their work easier, faster, and better.

That’s when you know you’ve built something truly valuable.

Share this article

Want to discuss your project?

I'm always open to new opportunities and collaborations.

Get in Touch