Design Systems play a pivotal role in shaping a product's experience and perception among users. They are essential for creating a scalable, efficient, and consistent design process. By serving as a single source of truth, design systems streamline collaboration and reduce redundancy. Step behind the scenes of construction with me where we will ask questions and see the work that goes behind a wholesome design system!
Design systems are like superheroes for digital products, equipped with superpowers to elevate the user experience and streamline the design process. They are the secret sauce that empowers designers and developers to create remarkable and cohesive experiences across every corner of the digital universe.
Picture it as a meticulously crafted toolkit, brimming with reusable components, guidelines, and design principles. It is like having a trusted sidekick that ensures consistency, efficiency, and harmony throughout your entire product ecosystem.
In short, a design system is a collection of reusable components, rules, development tokens and robust guideline of how a digital product should be designed. It greatly reduces the time and effort taken in building a scalable product from both the designer and developer's part, all the while ensuring consistency, user experience and the ability to create new products under the same umbrella. In today's fast-paced digital world, where users expect seamless experiences across multiple devices, having a design system in place is undoubtedly crucial. However, a well-crafted design system is not just about putting a collection of UI elements together, it israther about creating a cohesive and comprehensive solution that scales, adapts and allows for easy customisation.
By providing a centralised repository of design elements and guidelines, Design Systems enable teams to work harmoniously, reducing redundancies and saving valuable time and resources. According to a survey conducted by Lucidpress in 2019, 24.5% of respondents stated that inconsistent branding leads to market confusion, while 18.6% believed that such inconsistency could harm a brand's reputation. Consistency in design improves user understanding and recognition, enhances user experience and mass-perception of the brand. It is like having a master conductor orchestrating a symphony of design elements, colours, typography, and spacing, all in perfect harmony. This consistency not only creates a seamless experience for users but also instills a sense of trust and familiarity.
While a style guide primarily focuses on the "what" of design, a design system goes a step further, addressing the "how" and "why" as well. In other words, while a style guide sets the stage for brand consistency, a design system empowers teams to create cohesive, efficient, and user-centred digital experiences.
A style guide primarily focuses on visual elements and brand guidelines. It outlines the rules and specifications for colours, typography, logos, and other visual assets. Think of it as a comprehensive handbook that explains and establishes the visual identity of a brand. A style guide ensures that the brand is presented consistently across different touch-points, such as marketing materials, websites, and applications. It acts as a reference point for designers and developers, providing guidance on how to implement the brand's visual elements accurately.
On the other hand, a design system takes a more holistic approach, encompassing not only visual elements but also the functional and interactive components of a digital product. A design system goes beyond visual aesthetics to encompass the underlying structure and behaviour of digital products. It offers a library of components, user interface patterns, tokens, coding standards, and best practices, enabling designers and developers to create cohesive and intuitive experiences. A design system acts as a living, evolving resource that adapts to the changing needs of a digital product, enabling efficient scalability and future growth for the entire organisation.
There are several well-known design system from large organisations that should be studied, analysed and inspired from:
And there are more...
Besides all the selling and pitching, when it comes to actually shipping a product, this becomes clear that Design systems are not a luxury or good-to-have for organisations but rather a necessity without which it transforms into a herculean task for everyone to build and deliver a viable product. Yes! It is that important.
Good question! By providing a centralised repository of design elements and guidelines, it becomes a necessity to ensure consistency and brand cohesion, efficiency and scalability, and improved collaboration and communication within your organisation. From a designer's perspective, it significantly reduces the time and effort involved in building a scalable product, while developers can seamlessly implement cohesive interfaces. Consistency breeds loyalty, and a design system is the key to unlocking that loyalty.
Let's talk money for a second. Certainly, it is a designer and developer's job to be able to build a product fast. What returns of investment that brings to the high table? Excellent question!
First and foremost, a design system guarantees consistency. This consistency builds trust and brand recognition, in an ocean full of mediocre products.
Next, a design system unlocks a realm of efficiency and collaboration. Gone are the days of reinventing the wheel with each project. By establishing a centralised repository of reusable components, guidelines, and best practices, organisations can streamline their workflows and supercharge productivity. Designers and developers can focus on innovation, armed with a comprehensive toolkit that amplifies their creativity.
Lastly, a design system is a strategic investment that pays dividends in the long run. By reducing duplication of efforts and eliminating rework, we optimise our resources and cut unnecessary costs. This efficiency directly impacts our bottom line, leading to increased profitability. Additionally, a design system fosters collaboration and communication across teams, breaking down silos and nurturing a culture of innovation. Our collective efforts will be amplified, resulting in better products, improved customer satisfaction, and a stronger market position.
Too many jargons? Not convinced? Well, here is a simpler explanation:
Imagine your designers spend minimum half an hour every day contemplating on what was the colour of the secondary button outline? Was the assistive error text darker red? Was this design pattern used in the other product? (And no, we are not talking about graphical patterns. Different things.) If you pay minimum €40/hour, then for 5 designers, it costs you (2.5 hours/week x 52 weeks x €40 x 5 designers) €26.000 for contemplating.
Now imagine your developers spend minimum half an hour every day contemplating on where is the icon? Which documentation defines the error colour? Does it match the design? How many variants this button has?
If you pay minimum €50/hour, then for 10 developers, it costs you (2.5 hours/week x 52 weeks x €50 x 10 developers) €65.000 for contemplating.
A design system could save all that money. It also could save time, store design decisions and transfer design patterns seamlessly. 🔥
Numerous organisations and groups have run studies to understand how much really a design system is worth of. These following articles and studies explains it beautifully.
Having such vast scope and effect on the main products definitely calls for it to be an internal product for the designers, developers, project managers and the stakeholders. By treating the design system as an integral part of your organisation, you unleash its full potential as a transformative tool for consistent, efficient, and user-centric product development. However, this approach may require a cultural shift and adequate resource allocation to overcome challenges and fully unleash the design system's potential within the organisation. The system can grow exponentially in size and capacity by establishing clear ownership and accountability, embracing a collaborative approach, and encouraging designers and developers to contribute and shape the system's growth.
At the heart of a successful design system lies the authoritative role of designers, driving its creation and evolution. As the visionaries and custodians of user experience, designers play an important role in shaping the design system's effectiveness.
Designers take the lead in championing the design system initiative within the organisation. They advocate for its adoption, emphasising its potential benefits in enhancing consistency, efficiency, and collaboration across teams. By showcasing its value to stakeholders, designers secure the necessary support and resources for the system's development and maintenance. Designers also lay the groundwork by establishing clear and comprehensive design guidelines and principles within the system. These guidelines define the visual language, interaction patterns, and accessibility standards, ensuring a coherent and delightful user experience across all products. By setting these standards, designers provide a solid framework for developers to implement and ensure consistency throughout the development process.
Collaboration between designers and product managers is crucial throughout the process. Product managers provide insights and ensure alignment between the design system and the product's goals, while designers leverage their skills and experience to create a system that meets user needs. Design systems' project managers can help the designers by creating component roadmap, by gathering requirements of new and unique components from different teams, and by collecting insights from developers and other employees.
The design system is a living entity that evolves alongside the organisations growth. Designers play a crucial role in continuously iterating and improving the system based on user feedback and changing needs. By staying aware of the user preferences and technological advancements, designers ensure that the design system remains relevant and effective, accommodating new design challenges and staying aligned with the latest industry trends.
The design system designers add new and unique components, expand documentations, audit design implementation for both developers and other designers, conduct design system workshops and refine the system to create a dynamic, advanced and an all-encompassing system.
Now we understand why a design system is important and what values it brings to the table. To comprehend the work goes behind creating one, we need to understand how it functions and how we can adopt or create one.
There are several factors such as brand, design language and platform which influence how different teams and designers categorise design systems. Overall, there can be four types of design systems.
There are generally three approaches to pursue a design system. Usually, it tends to get more time consuming and costly to implement a design system if the organisation has custom requirements that can not be met with open source design systems.
Amidst all of these approaches, the most difficult task is to implement or transform an already existing design system to a new one or updated one that has been integrated into several products. It gets even more difficult if the organisation has a followed a decentralised design language from the beginning and requires to update or implement a design system.
Once the organisations are sure which type of design system they want to use, it is time for deciding who will be managing the behemoth of that design system and how. Generally there are six types of governing models for a design system.
Below is an interesting article discussing how to manage and govern design systems.
So now we know what is a design system, what are its purposes and who manages it. So we are ready to figure out how to create a design a system. The process of creating a design system typically involves several key steps, each contributing to its development and effectiveness. While the exact steps may vary based on the organisations needs and resources, it is safe to say that the majority of them follow the below steps.
WDS or Wholesome Design System was born with a vision of a genuine desire to create a simple, portable, and semantic repository that unleashes the potential to craft remarkable products effortlessly! At its core, WDS comprises a thoughtfully curated collection of components, tokens, rules, and guides, meticulously designed to elevate and streamline the process of creating exceptional digital products.
The idea of WDS originated from my own struggles as a designer. I often found myself reinventing the wheel, recreating similar components and grappling with inconsistencies in my designs. Realising that this process was not only time-consuming but also hindered creativity, I was compelled to take action. I yearned for a design system that not only streamlines the design process but also fosters collaboration and inclusivity among teams.
Thus, WDS was born, guided by the principles of simplicity, versatility, and user-centricity. I believed that by creating a design system with clear guidelines and reusable components, designers and developers could focus on what truly matters—the user experience. With WDS, I sought to empower the design community and bridge the gap between designers and developers, fostering a culture of seamless collaboration.
Let's be upfront and honest — WDS does not make unrealistic promises of solving all imaginable design problems or magically creating digital products without effort. Building a design system requires expertise, time, and reasonable investment. What WDS offers is a great starting point with a set of robust components and guidelines that one can start building upon.
WDS is an atomic design system. As we learnt before, it means that the components of WDS were stripped down in to smallest possible elements which are independent of each other. Based on those elements, we built larger components which are dependant on the basic elements or each other. Just like atoms make molecules and molecules make organisms.
Further more, WDS is divided in two fragments — Foundations and Components. The independent atomic visual elements such as colours, typography, icons, layout etc have been separated from their more complex heirs, so that these elements can be applied to any variations and are not limited to WDS components. I call the group the foundations. On the other hand, WDS components being higher level organisms, depend highly on the foundational elements and it will take rather drastic (not impossible) approach to separate them from the foundations. It will be like a sort of alchemy: disintegrating a matter to use its atoms to create another matter. But we are not performing alchemy today. ✨🚫
In simple words, WDS is consisted of two fragments: The foundations, which is a library of basic foundational elements such as colours, typography, icons, elevations, layouts etc. We will refer to them as Tier-0 from now on.
And the second fragment is the components, which is a library of more complex elements such as buttons and cards etc. We will refer these components as Tier-1, Tier-2 and Tier-3 based on the context.
WDS adopted a semi-round, soft edged, soft shadowed visuality instead of sharp unwelcoming shapes or fully round over-friendly approach.
Semi rounded components offer more active area for clicking, alignment and consistency in design by settling in the grid, and offers balance between sharpness of sharp buttons and the softness of rounded buttons.
Fully rounded components might create the perception of a larger active area, potentially leading to slight confusion about the clickable region. Semi-rounded corners can provide clearer visual boundaries, indicating precisely where the button's clickable area ends.
Find some great articles on this topic below.
Tier-0 elements are true foundational elements which are not dependant on any other elements at all and can exist alone. They are colours, Typography, Icons, Spacings, Layouts, and Elevations.
Tier-1 elements are consisted of purely Tier-0 elements. For example, a button is a Tier-1 element which is built upon Colour, typography, Spacings, Icon and Elevation. Similarly, selection toggles, chips, badges, tooltips etc are Tier-1 elements.
Tier-2 elements are consisted of a mixture of Tier-0 and Tier-1 elements. For example, a text field or a split button is made of colour, typography, elevation, icons, and buttons.
Tier-3 elements are consisted of a mixture of mainly Tier-1 and Tier-2 elements. For example, a popup modal or side-sheet modal is consisted of buttons, input text fields and various other elements, which are Tier-1 and Tier-2. Tier-3 usually consists of majority of the complex components.
Tier-4 elements are basically unique use case where the entire design system is applied to create specific design solutions. For example a a sign-in modal which varies from organisation to organisation and is created using the all other tiers. Once designed, the modal becomes a unique component for the organisation that can be used and reused.
Tokens are named after the Tier-0 elements and are used to build and maintain design system components such as colours, typography and elevations. They can represent anything that has a definition such as a colour can be a RGB or HSL value, while a spacing can be a numerical value, and shadows can be combination of both RGB and numbers.
Tokens are categorised in Raw value, Global value and Alias value. For example, a specific shade of colour blue can be represented by an Hex value such as #2352D7 which is its Raw value. This hex code can be named as color/blue-1, which is simply saying this hex code represents the strength 1 of the blue colour in the design system. This is Global value. Now this Global value can be used as background of a button or as the outline of a focused input field. Although the background and outline contexts are different, they are still referring to the same global value. These contexts are called Alias value. Now, at any point, if we feel like changing the blue colour to something else, we can make change to the raw value and the global value along with the alias value will automatically be updated.
Adobe describes the tokens in more comprehensive details in their design system.
Any design token can be created with aliases that are understandable to the design system maintainers. However, the naming convention can be obscure and very abstract for other designers. For example, instead of naming radius tokens according to t-shirt sizes such as radius-sm, radius-md etc, it is more accessible to name them as radius-4, radius-8. This was the user of the design system can clearly and intuitively understand what number this token represents. It is also advisable to update the alias names once a design token value gets changed.
WDS is a system that is constantly improving. Here we will talk about the ideas that went behind the foundational elements while building this design system. The detailed documentations for all the available component is available and being update regularly.
WDS design system has swatches of two brand colours, 4 semantic colours and neutral colour. These colours were chosen based on the HSL manipulation algorithm to generate lighter and darker shades of certain base colours.
HSL (Hue, Saturation, Lightness) manipulation holds several advantages over linear interpolation (LERP) when generating colour shades. By adjusting the lightness while preserving the hue and saturation, HSL manipulation retains colour vibrancy and consistency throughout the darkening or lightening process. This results in visually pleasing and more natural colour variations, making it ideal for design systems, user interfaces, and products where colour aesthetics and accessibility are crucial considerations. HSL manipulation provides intuitive control, ensures constant colour relationships, and helps maintain sufficient contrast for accessibility.
However, in procedural content generation, where colours are algorithmically generated, LERP can be a simple and effective method to create variations in colour shades without the need for complex colour space conversions.
Every colour swatch in WDS, except for the neutral swatch, has 10 values. The base value is 0, and based on it, we have 7 lighter shades and 2 darker shades. The lighter shades are represented with negative numbers and darker shades are represented with positive numbers. For example, Blue 0 is a the base colour which has 7 lighter shades — Blue -10, Blue -20... to Blue -70. And on the positive side, it has two darker shades — Blue +10 and Blue +20. The relationship between these 10 values is defined throughout the whole design system.
The relationship between these 10 values are defined throughout the design system. -70 is always used a background colour of the surface i.e. the product's main background. -60 is the colour of any container (background of an element) such as chips, tags, badges, card etc. -50 is the hover colour of -60 and -40 is the selected or focused colour of -60. Similarly, -30 is the colour of border, -20 is hover colour of the border. -10 is the hover colour of the base colour 0. And +10 is always the text colour on the containers. +20 is a high contrast text colour option for the containers.
The neutral swatch is used in various more instances and even for dark themes, hence it requires more lighter and darker shades. But the relationship between the shades are generally maintained in neutral swatch as well.
Closed source digital products are built and developed usually behind paywalls, if not always. These products or applications seldomly need the semantic HTML header tags which the web-crawlers use to rank websites. On the other hand, the applications have so much more than hierarchical texts to make use of these semantic tags. Digital applications have lot more smaller body texts than six heading types. In design, it is getting more appropriate to use more contextual nomenclature for texts rather than the traditional semantics while preserving the hierarchy. For example, Apple uses unique naming for their text hierarchy in Human Interface Guidelines such as Large Title, Title, Heading, Body etc.
Similarly, WDS, uses a more contextual approach towards typography. In WDS, the texts are categorised based on their usage on different breakpoints such as large screen, desktops and mobiles.
To achieve this, WDS used a modular responsive type scale where the relation between two typesets always stay the same. So when root font value is changed based on breakpoints, the other rem values continue the same ratio between them.
Below are some in-depth informative articles to understand Modular type scales.
Typographic hierarchy is a collection of font sizes that are in visual harmony among each other. This harmony is achieved by maintaining a scale, just like musical scales. There are several scales that offer different benefits such higher or lower contrasts between the font sizes. WDS uses Major-Second scale (1.125) which as a lower ratio scale is ideal for the digital products, dashboards etc where font sizes nearing the body font is required and large display sizes are not necessary.
The typographic scale uses a base of 18px for desktops, 16px for mobiles and 20.25px for larger screens. The root-font size may change in different breakpoints, but the ratio and the rem value between the sizes remain consistent.
Additionally, the root value can be set in clamp function so that it automatically changes based on different breakpoints.
For text heavy products such as websites or apps dedicated to reading, it is advisable to set high-contrast type scales for different breakpoints as the users will benefit from having larger font-size and line height on mobile screen, which increases legibility.
WDS categorises the type scale as Display text for data visualisation, Product title, Page heading, Module heading, Body main, Body alt or description, Caption and Footer.
The typographic scale has been set using “Inter” which a typeface carefully crafted and designed for computer screens by Rasmus Andersson. Inter features a tall x-height to aid in readability of mixed-case and lower-case text. Inter is a free and open source font family.
WDS is an open source, friendly and human focused design system. To achieve that personal feelings with the users, WDS needed an iconography that mirrors its core values.
WDS adopted Tabler Icon library which consists of more than 4600+ icons and is licensed under MIT. Tabler has easily available React and VueJS packages available making it easier for the developers to accurately find and implement the right icons.
WDS only used a basic set of icons that were essential for creating the design system. However, it is advisable to adopt the entire Tabler icon library to expand the repository as required. Alternatively, any other open source icon library can also be used if the organisations have different needs.
WDS also tokenises various sizes, spacings, radii, and paddings so that these values can be recalled easily and accurately.
Radii help to soften sharp edges, create a pleasing aesthetic, enhance the overall user experience by conveying a sense of friendliness and visual comfort, and contribute to a cohesive and inviting user interface.
Padding around elements improves readability, usability, and touch targets, ensuring comfortable interaction.
Use of gaps between elements helps organise content, create breathing room, and guide users' focus, resulting in a clean and well-structured design that enhances the user experience.
WDS also ensures that every element maintain their appropriate hierarchy and visual elevations so that the product feels more physical to the user and less digital.
The elevations are categorised as standard elevations, direction specific elevations and button elevations.
Standard elevations help majority of the components to establish vertical hierarchy, where direction specific elevations are more suited for specific modals such as side sheet or navigation drawers. Button elevations are unique and exclusive to buttons because as the most clicked component in an application, they require different elevation and effect treatment.
The Component counterpart of WDS :: Foundations comprises of over 30+ components and 2000+ variants which uses these foundational elements at its core and are able to create human-centric, aesthetically pleasing and friendly user interface boosting elevated experience for any digital products.
Design systems, while immensely beneficial, can also present various challenges during their development and implementation. Some common challenges of design systems include:
In conclusion, the Wholesome Design System stands as a testament to my commitment to creating a simple, portable, and user-centric design repository. By embracing the vision of simplicity, portability, and ease of use, WDS provides a solid starting ground for crafting remarkable digital products. While not claiming to solve every design problem or offer effortless solutions, WDS offers a valuable foundation with robust components and guidelines, empowering designers and developers to build upon and create unique, user-centric solutions.
WDS is now entering an exciting phase of documentation. This documentation will serve as a valuable resource for other designers and developers offering clear guidelines, best practices, and insights into the system's components and principles.
As I embark on this design journey, let us embrace WDS as a trusted companion, empowering us to create amazing things and forge lasting connections with the users.