DEV Community

Cover image for Design Systems (Part I: Foundations)
Emma Bostian ✨
Emma Bostian ✨

Posted on • Edited on

Design Systems (Part I: Foundations)

The web was built as a set of interconnected pages, and blossomed from how content was historically consumed: through books. Since books format content in a series of pages, it was only natural for web pages to leverage the familiar paradigm. Thus, web pages were born.

Other technology terminology stems from printed books: bookmarks and pagination are two such examples. And while the traditional concept of web pages worked for decades, we've quickly realized that this paradigm is no longer viable for building sustainable web applications.

Many companies are in the throes of a paradigm shift towards more modular web applications through the use of reusable components. And while modular web applications are more scalable and testable, they can also provide some challenges.

Building component libraries is good practice, so long as all teams within an organization are developing and consuming one library; unfortunately this often isn't the case. More likely you'll see multiple teams building the same component in different places; this is a catalyst for application inconsistency.

This is where design systems shine.
Design systems allow teams throughout an organization to define their own identity and bake it into accessible and consistent components. These are subsequently consumed by product teams and can have an invaluable impact on the success of a product.

Let's delve into some of the foundational knowledge of design systems, and learn how your team can adopt them to build accessible, scalable, and consistent products.

Question

What Is A Design System?

A design system is a set of reusable standards and components which reinforce a brand's identity. These standards and components allow teams to efficiently build user interfaces with respect to accessibility, performance, consistency, and brand.

While the industry hasn't officially defined a design system, in general it's comprised of three facets: a design language, a component library, and a style guide. We'll dive into each of these areas in-depth a bit later.

Man

Benefits Of A Design System

There are many benefits of establishing a design system. Here are some of the benefits.

Accessibility

Design systems bake accessibility into the design language and component library, ultimately ensuring that every customer can use your product, or products, and achieve the same results.

Through the design language we can ensure that the color palette has sufficient contrast, the typography scale is legible, and the content is digestible.

These design language patterns are the foundation for building the component library, which ensures we leverage semantic HTML elements. And when HTML isn't sufficient, we incorporate WAI-ARIA to fill in the gaps.
Accessibility is no longer an after-thought.

Trickle-Down Style Updates

When a design pattern is updated, developers no longer have to struggle to update the components in multiple places. Design systems provide one source-of-truth for components and patterns. Thus, styles must only be updated in one place. The changes are then propagated to products with just a quick update to the library package version.

Responsiveness

Component libraries are built to be responsive. They account for varying screen resolutions and viewports.

Consistency

Arguably one of the most vital benefits of a design system is consistency. As the number of teams working on a product scales, the UI remains consistent.

Easy On-Boarding

Having a design system significantly reduces the on-boarding time of new team members by providing one source-of-truth for them to learn. By providing comprehensive documentation in one easy-to-find location, we reduce the overwhelm of staring a new job.

Additionally, developer and designers can easily collaborate cross-team when there is one component library being used.

Improved Development Speed

Once the component library has had a stable release, development speed will be drastically improved.

Developers will no longer be burdened with building components from scratch and ensuring that they're accessible and responsive. They will simply be able to import and leverage these components.

Clock

Drawbacks Of A Design System

While there are many benefits of a design system, there are also some drawbacks. Below are some of the most common.

Time Consumption

Design systems aren't built overnight. Often they take many months to years to build a stable version.

Additionally, design systems are never "done." There will be points within a system life cycle where the focus is primarily on maintenance instead of active development. And while these periods of maintenance take less designer and developer resources, the ultimate reality is that design systems are products, not projects; they must be nurtured to survive.

Large, Up-Front Commitment

For a system to succeed, there must be an up-front investment of designers and developers. Often a lack of dedicated resources leads to system failure.

Product Team Buy-In

Product teams are a design system's primary stakeholders. Without their buy-in and support a system cannot succeed.

Credit cards

Who Is Building Design Systems?

There are many revered companies adopting the paradigm of design systems. The benefits of systems are being more widely acknowledged, causing industry leaders to pave the way for adoption.

Below are some of the most widely known design systems being developed.

Mailchimp

Mailchimp is a popular tool for marketing email campaigns. They have developed a comprehensive design system.

They've even published a separate content style guide to help their employees build products with the persona of Mailchimp.

Mailchimp

Material Design

Google Material Design is one of the most notable systems to date. Not only does the style guide include foundation such as color and iconography, but their component library serves iOS, web, Android, and Flutter.

Google

IBM Carbon

IBM Carbon is another revered design system. They provide components in React, Vue, Angular, and of course, vanilla JavaScript.

Carbon

Atlassian

Atlassian's design system is housed within a beautiful style guide. They provide many resources for brand, identity, and iconography.

Atlassian


I hope part one served as a solid foundation of design systems. Part two will cover Design Language in-depth. Feel free to let me know what you think about design systems down below.

All graphics are courtesy of unDraw.

Latest comments (31)

Collapse
 
sumitpathak1 profile image
Sumit Pathak

Thank you. It was really helpful

Collapse
 
hifza_khan0 profile image
Hifza

Hey, It’s my first visit on your Post. Very interesting article and very helpful Post.
If anyone required website development and design for your business or product visit Kamil web solutions for the best web designing and development also get SEO Services in Dubai, UAE.

Collapse
 
patriciopatriar profile image
Ataghana Micheal

I'm also new to this your. You're welcome on board. I discuss all topics for ecommerce businesses. A step by step guide on Print On demand & dropshipping, tutorials for apps & online tool thesuccessmade.com/

Collapse
 
johnstna00 profile image
Andrew Johnston

Emma very useful set of articles. Typically where or who is the organisation does responsibility for the design system reside. Understand marketing, product design are involved and obviously developers need to use it but struggle to understand how the relationships work in reality.

Collapse
 
ahmednrana profile image
Rana Ahmed

I like the Microsoft office fabric ui. It's lovely

Collapse
 
juanbosnic profile image
juanbosnic

Data speaks better than words. Show them the cost (sometimes called debt) of not mantaining the core elements of your system. You might need to make projections/asumptions, but these things are not so "tangible" since they have mostly long term consequences.

Collapse
 
manashwitwicky profile image
Manash-witwicky

Always wanted to learn this stuff. Great post. 😊

Collapse
 
jaamaalxyz profile image
Md. Jamal Uddin

this one seems looks good to me for news portals design.theguardian.com/

Collapse
 
murkrage profile image
Mike Ekkel

I am currently organising the different components and styling my company uses. I joined the team a little over a month ago and quickly realised it's very hard for new people to jump in and get going. The only way to figure out what type of components and styling has already been made and in what context is by jumping in the code and browsing the website.

I've got a design background and I just couldn't quite get how they got any work done without organising these things. So I prepared some stuff and showed them how efficient a design system could be and how much value it can add to our current work and future projects. This series is definitely helping my case as well as helping me set up the system for my organisation.

Collapse
 
sk8guerra profile image
Jorge Guerra

I've thinking about it, but didn't know how important it is to split you web pages into components. Now I now the basics, and will start working (even though takes me so much time 😂) in my own design system.
Thank you so much Emma for taking the time to write about this important topic.

Collapse
 
sevonefive profile image
Michael Lyon

Good article.

Another good design system is Ant Design. The React library are insanely simple to use, and the look/feel is A+.