Discover more from Design Buddies Newsletter
How to Build a Design System: A Guide for UX Designers
Design systems can help you streamline workflows, increase efficiency, and scale the design process. But where do you start? Building a design system is no small feat and requires collaboration across disciplines.
This guide will walk you through the steps to build a design system from the ground up. You’ll learn how to get stakeholder buy-in, conduct research, define the scope, and develop a component library. We'll also cover how to effectively partner with developers to build a living code library and tooling. By the end, you'll feel equipped with a practical framework to lead your team in creating a design system.
Design Buddies Newsletter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.
Define the Need for a Design System
First, define the need. Why do you want to build a design system? Maybe your product has grown increasingly complex with many new features added over time. Or your company has acquired another product and you need to consolidate redundant design elements. A design system will help keep things consistent and scalable.
Once you have the purpose clear, assemble your team. Work with other UX designers, developers, and key product stakeholders. Explain your vision and get buy-in from leadership. No one person can build an effective system alone.
Now dive into your existing UI. Analyze all the colors, fonts, icons, components, templates, etc. See what’s being reused and what needs standardization. Group similar elements together into categories. This audit will form the framework for your system.
When you have everything organized into a logical structure, start documenting. Create a style guide with visual examples and code snippets. Outline principles to guide future design decisions. Build a library to house all your UI elements.
Keep refining and improving. A design system is a living, breathing entity. As your product and users evolve, so must your system. Review and revisit, making changes to keep the experience optimal.
Conduct User Research to Inform the Design System
To build a design system that actually meets user needs, you’ll need to do some user research. Survey existing users, conduct interviews, or run usability testing to understand how people currently use your product.
Look for patterns in the issues or frustrations that come up. Do people struggle with the same parts of the interface or experience? Those are opportunities to create components or standardize the design to improve the overall experience.
Interview stakeholders and developers as well. Ask them what would make their jobs easier or help speed up development cycles. Finding ways to reduce redundancy and maximize code reusability.
Conducting research upfront will help ensure your design system solutions actually solve real problems. It also helps get buy-in from others if they feel heard and included in the process. Review analytics to see how people are interacting with your product.
Once you’ve gathered insights from various sources, work with your team to determine what components, styles, guidelines, and standards would have the biggest impact. Focus on the most common or problematic parts of the experience first before moving into niche use cases.
Create a Style Guide: Colors, Typography and Components
Creating a style guide is a key part of building a design system. Your style guide establishes the visual language for your product by documenting colors, typography, components, and more.
Define your primary and secondary brand colors, including hex codes and usage guidelines for each. Specify if colors are used for backgrounds, text, icons, links, etc. For example:
Primary blue (#0000ff): Used for links, buttons, and highlights
Light gray (#eeeeee): Used for backgrounds, alternating row colors in data tables
List the fonts, sizes, and styles used in your product interface. For example:
Headings: Open Sans Bold, sizes 32px (h1) to 18px (h6)
Body copy: Open Sans Regular, 16px
Code: Consolas, 14px
Specify appropriate uses for each font and style.
Provide examples, specifications, do's and don'ts for all interface components like:
Buttons: Default, primary and secondary buttons. Size, color, hover and active styles for each.
Form fields: Text inputs, select menus, checkboxes, radio buttons, etc. Show required, error and disabled states.
Tables: Document structure, row colors, pagination, etc.
Your style guide gives developers the information they need to build a consistent interface and ensures your product's design remains cohesive as new features are added. Be sure to thoroughly document each component, keep the guide up-to-date, and make it easily accessible to your team.
Following these guidelines will result in an effective style guide that translates your vision into clear direction for developers. Keeping open communication and collaborating throughout the process will lead to the best outcome.
We’re also partnering with Bitesize UX to bring you a workshop on a Hands-On UI Workshop: Create a Design System and Style Guide (Thu Jul 13, 3 pm PST)
Collaborate With Developers to Build the System
Collaborating with developers is key to building a successful design system. As a UX designer, you'll need to work closely with developers to ensure your designs are feasible and align with engineering best practices.
Communicate Early and Often
Have ongoing conversations with developers throughout the design process. Explain your design decisions and get their input on what will or won't work technically. This helps avoid wasted effort and ensures the final product meets both design and development standards.
Provide Detailed Specifications
Developers need comprehensive specifications to build components and features. Supply redlines, style guides, font sizes, spacing details, and anything else required to construct your designs. The more details the better.
Build a Component Library
Work together to create a library of reusable components like buttons, inputs, navigation, etc. Start with essential elements and expand from there. A robust component library allows for consistency and efficiency.
Define Coding Standards
Determine standards for markup, CSS, naming conventions, and more. Following established standards makes the codebase scalable and easy to maintain. Be open to developer recommendations on best practices.
Test and Iterate
Develop a testing plan to validate components and catch any issues. Get developer input on possible edge cases or browser compatibility problems. Make improvements iteratively based on feedback.
Building a design system as a collaborative effort between UX designers and developers results in a product that is high quality, functional and ready to scale. Through frequent communication, detailed specifications, establishing standards and testing, you'll be well on your way to crafting a design system that meets the needs of both design and engineering. Keep at it and don't be afraid to make changes as you go to achieve the best outcome. The key is working as a team!
Will building a design system slow down my design process?
Building a design system does require an initial investment of time and resources. However, in the long run, it will actually speed up your design process and make you a more efficient UX designer. Some reasons why:
Components and patterns you design can be reused, so you’re not reinventing the wheel with every new project. This allows you to focus on higher-level design work.
handoff to developers is simplified since you’re providing code components, clear guidelines, and examples. This reduces back-and-forth questions and confusion.
Consistency is built in, creating a cohesive experience across platforms and products. You spend less time on menial details and ensuring things match.
Your team can build on the system together, crowdsourcing new components and features. This collaborative effort lightens the load for any single designer.
So while the initial build may seem time-consuming, if you invest in a robust and well-designed system, it will absolutely save you time and boost productivity in the long run. The key is starting with the basics and then building on and improving the system over time through real-world use.
How do I get developers on board with a design system?
For a design system to be truly successful, you need buy-in from developers. Here are some tips to get developers on your side:
Explain the benefits. Help them understand how a design system will make their jobs easier, reduce rework, and enable them to build higher quality user experiences.
Provide code components. Give developers functional code blocks that they can easily implement. This makes integration into projects seamless.
Offer clear guidelines. Create thorough documentation that specifies proper usage of components, best practices, examples, etc. This gives developers a trusted reference point.
Make the system collaborative. Ask for developer input on what components they need and how to improve the system. They will be much more willing to use a system they helped build.
Start small and build over time. Don't overwhelm developers with a massive system overhaul all at once. Release the system in phases so they can get comfortable with it gradually.
Provide support. Be available to answer any questions developers have about properly using the design system. Your support and guidance will ensure the system is implemented as intended.
With the right approach, you can turn developers into your strongest allies in building a design system. Take the time to address their needs and concerns, and they will become active contributors to and advocates for your system.
So you've set up your design system and now comes the fun part - maintaining and evolving it. Keep collaborating with your developers, listen to feedback from other designers and teams using the system. Make improvements and add new components as needed. A design system is a living, breathing product that requires care and feeding to thrive.
We’re collaborating with LIT videobooks to bring you a free videobook! Hooked by Nir Eyal also just launched this week. It’s a great book for anyone working on products!
🐰 Upcoming Design Buddies Events
Jul 13 (IRL Singapore): Designer, Founders, & Creators Meetup
Thu Jul 6, 10 am PT: XR Design Case Study: Creating a VisionOS Prototype
Thu Jul 6, 3 pm PT: Redesign The Bed Bath & Beyond Website: Hands-On UX Workshop with Bitesize UX
Thu Jul 13, 3 pm PT: Hands-On UI Workshop: Create a Design System and Style Guide
Wed Jul 26, 8 am PT: Lessons From the World's Largest Design Community on Discord (Design Buddies) with Nas.io
Every Saturday, 10 am ET: UX Book Club by Haidita and Steven
👀 Course interest survey - Unconventional ways to land a UX design job and stand out in the competitive job market (takes 2 mins)
🐰 About Design Buddies
Design Buddies is a community where you level up your design career. Make lifelong friends, improve your design craft, and land jobs. We have free resources, events, design challenges, a job board, mentorship, fun perks, and more.
🎁 Find and post jobs on our job board
💖 Partner with us