What Is a Design System?
A design system is far more than a UI kit. A design system is a continuously evolving single source of truth that establishes rules of visual narration and interaction. It must be comprehensive, combining components, behaviors, and branding. It must also be flexible and scalable. In other words, a design system = UI kit + behavior and scale rules + code + brand book.
Establishing a design system brings significant benefits for a product team. It promotes consistency, clarity, and quality in the design process. It can also deliver significant competitive advantages for businesses.
Below, we’ll talk about each aspect of a design system, as well as its benefits to designers, developers, and the product team as a whole.
The UI kit includes all reusable UI components. It can be a simple kit that includes only inputs, buttons, context menus, and tooltips. On the other hand, it can also be much more complex, including text styles, icons, and all other reusable components, including cards, website headers and footers, and so on.
The benefits for designers are significant. They include a huge increase in speed, since they’re working with pre-developed wireframes. Design is simply faster when using pre-designed reusable components, rather than having to draw them from scratch each time. Using a ready-made UI kit could save as much as 30% of designers’ production time.
A UI kit is a way for a designer to communicate to the developer the ideal way to style a component. This benefits developers by giving them a complete reference set for all UI elements. In the rare case a visual discrepancy in UI components shows in a mockup, the developer can verify with the designer that the discrepancy is intentional.
There may be some technical limits that can be resolved at this time through collaboration and communication between the designer and the developer.
A style guide adds to the UI kit by describing rules for:
- Resizing behavior
- Ordering items
- Text justification
- Content states (i.e., what happens when there is a lot of content vs. little or none at all)
The advantage for designers is that, when you’re reusing components, it’s much easier to maintain the consistency of the design (especially in a distributed team) and reduce errors. It reduces the number of edits to “combing” layouts (i.e., cleaning up layers, ensuring understandable and relevant naming, removing unused layers). It also reduces time spent on communication with the development team to find out whether something is a feature or a bug in the UI. Ultimately, using a style guide can save another 10% of the team’s time during the product development process.
The benefit to developers comes from taking out the guesswork by defining common rules for behavior when multiple components are combined onscreen. This makes the process of building pages or views faster and easier.
This stage involves closer interaction between the designer and the developer to cover as many UI use cases as possible.
When the style guide has been fully translated into code — describing all elements and the components that include them — you have a ready-to-use component library.
The advantage for designers is that there’s no need to draw the UI of all screens. In most cases, everything will be done within the wireframes. For unique cases in which there’s no suitable component of the library, several screens with UI will also have been created. This approach can save up to 50% of project time for the entire team.
If the library is well-written, developers won’t need to make design decisions. Furthermore, the library can be reused on other projects, or used to expand the functionality of an existing one.
Since entire pages or views can be generated with maximum consistency — and since design decisions are minimized — even people with little design background (e.g., admins or project managers) can test hypotheses with users before committing to large financial investments. This is especially valuable to startups trying to reduce costs.
In creating the project using the component library, the developer can act independently, involving the designer as needed for consultations.
Finally, we’re getting to the most delicious part: the overall design system you’ve created.
As we’ve mentioned, the design system provides the rules of visual narration and interaction. If we talk about it from the designer’s perspective, the design system is not only the rules set by the UI kit and the style guide. It’s also a description of the permissible deviations, as well as a list of points setting the styles to be used. For example, a design system may provide rules for icon style (e.g., line thickness, rounding of corners, rounding of lines’ ends, color palette, maximum overall dimensions, limitations of optical mass), rounding of corners of input fields and buttons, properties of shadows, or descriptions of decorative elements and their possible usage.
A design system also describes the intent of the design. Typically, there’s a clear set of rules for when to use (and not use) specific elements. It explains which rules can be broken, and which rules should never be broken.
A design system’s main task is not simply to describe the rules of the existing elements. Rather, it’s is to describe the guidelines by which new elements will be generated in the future. This is important to ensure that, when scaling the project, it will continue to look natural and harmonious.
You could compare a design system to a building, and the library components to building blocks. Change the size, color, and shape of the blocks and the height of the walls, and you’ll get a completely different building — but it will be perfectly reproduced even if you decide to build an entire district.
From the developer’s point of view, the design system is one and the same as the component library. But it’s important to note that, unlike the component library, the design system is not static. Instead, it’s a living, dynamic entity that constantly acquires new components and modifies existing ones as needed.
When working on a design system, it’s very important to have close interaction between the designer and the developer. This ensures visual consistency, which is the main goal of the design system.
How does the design system benefit designers? First of all, it’s very convenient to use when working in teams, especially when it involves a large project with extensive branching functionality or even a number of services united by one brand. After all, it’s critical for any organization with multiple digital products to maintain consistency across their digital portfolio.
For developers, the advantages are essentially the same: the ease of maintaining projects, and the possibility of making easy modifications when necessary.
What are the benefits to a project, or a whole system of projects, of developing a design system? With a ready-made design system, you can save up to 70% of the team’s time during the product development process. This increases the quality and quantity of the delivered functionality. Relatively speaking, a business could grow as much as three times faster than competitors who don’t use a design system in product development.
Yes, the development of a design system requires a significant investment at the outset. But in the long term, it provides an undeniable competitive advantage for your business.
Need help developing a design system for your projects? Let us know!
Mikhail Nikipelov is a talented designer who joined Distillery in 2016. Drawing inspiration from the quote “Thinker doesn’t fear, feared doesn’t think,” Mikhail encourages his colleagues to speak up and raises high the torch of extremely high-quality web design. In his free time, he enjoys playing guitar and djembe.