Introduction to Design System
What is a Design System?
A design system is a collection of reusable components and standards that can be used to design and develop one or more products. The user experience is highly dependent on the design system companies are using to develop their products since it is the foundation of building a consistent experience for their users.
An important point to understand is that a good Design system should contain the reusable components, as well as the reasoning behind their usage. If a developer or designer knows that why he is using this component in the product, it will enhance his learning experience as well as he can better decide on selecting the best component based on his requirements and not only just pattern librairy.
Importance of Prototyping in Design Process
The purpose of prototypes is to get early user feedback in your design process. Prototypes help you to test your ideas with real users and make your design decisions based on their input. This is an important step in the design process as it saves effort, time and money when you finalize your design with real users before initiating the development of the product.
At times, you use the prototypes to attract your potential customers by showing them the features that you can provide them to resolve their problems. This way, prototypes help you to earn new projects and find new clients. At D-Sprint we use it in different kind of UX projects, and in the third day o fourth (depend of sprint format) for design sprint.
Why Design Systems?
The design systems make it easier to build consistent user experience for all products of an organization. Every organization has a branding style that helps it to maintain its identity and the experience among its clients. And to follow a consistent branding style, it is important to have a single source of components and standards that can be followed by designers and developers while building the products.
Consistency is the key principle of UX design. If the user must find a new way each time to resolve a similar kind of problem while working in design, he will get confused and frustrated at the same time. Today, more than ever, UI language must be scalable if you want to be able to follow device evolution quickly.
In his approach of modular design, Brad Frost speak about Atomic design where every element is compared to alive atoms and molecules that can evolve. It is organized in 5 distincts stages as :
Atoms / Molecules / organisms / templates / pages
Having a design system helps better communication with development teams. This is also the reason that design systems allow quick iterations of the product and fast prototype. It is easier to maintain the code of the product when it uses the components from a single source.
Different Types of Design Systems
Large organizations prefer to build their own design systems so that it becomes easier for them to create and maintain their collection of products. A few examples that can help you to take inspiration are given below.
Material Design by Google
Material Design is a design language developed by Google. It is an adaptable system of guidelines, components, and tools that support the best practices of user interface design. Material Design is based on open-source code that facilitates collaboration between designers and developers, and helps teams quickly build products.
Atlassian Corporation is an Australia based software company that provides a design system that covers guidelines and standards about branding, marketing, logos, product design as well as coding components to create straightforward and beautiful experiences. These guidelines reflect their design philosophy that they want to show in all their customer-facing communications and content.
Fluent by Microsoft
Fluent is an open-source, cross-platform design system developed by Microsoft. It gives designers and developers the frameworks they need to create engaging product experiences. It includes guidelines for the designs and interactions to be used for all Windows-based products. The design language includes more prominent use of motion, depth, and translucency effects.
Apple provides an extensive collection of documentation and resources for designing great apps for Apple platforms. These include reusable components for iOS, macOS, tvOS and watchOS. Anyone who wants to build an app for Apple devices can find useful guidelines and instructions for designing and making apps more accessible.
Lightning by Salesforce
Salesforce provides a well-documented design system called Salesforce Lightning Design System (SLDS) including reusable components, tokens, guidelines and tools to build business apps. Using SLDS you can start building immediately, without worrying about detailed specs. SLDS lets you focus on the big picture to deliver the best possible user experience.
How to Build a Design system
A design system is a product itself and like any other product it requires proper planning, a team and a backlog to follow. The below steps will help you to build your own design system.
- Identify a team to work on the product including Product Manager, Developers, and Designers.
- Conduct research on existing design systems to get inspiration.
- Go through your products and identify components that can be converted to reusable resources, priorize and categorize all components and create a components library.
- Define hierarchy and design language including color theme, typography, icons, design principles and rules.
- Define design patterns.
- Document design language, patterns and components along with their usage.
- Maintain your design system by reviewing and improving it on regular basis.
The Future of Design Systems
An organization’s success is directly related to a good design system that it needs to be there to maintain its identity and to build uniform experience across all its products. Building a good design system is useful not only for designers but developers as well. However, there are still many challenges to sync the work of designers and developers that modern design systems need to resolve by ensuring a complete documentation of all required components shared with everyone in the organization.
The future design systems should be able to automate the process of development using the defined standard and components. Automated scripts will select suitable components and integrate them into a product that fulfil the users’ needs.