Design system is a set of modular components which can be used in various permutations and combinations to create design at scale. Design systems ensures certain degree of consistency across the different components of a product or service. Using a design system large designe or product teams can work independently and apply the same principles and design system modules to quickly create new interfaces or designs.
Some of the other names for design system are pattern library, modular design, component design, design language, user interface library et cetera and they are more or less same things.
So why really use a design system ?
Design systems can really help design and product teams to increase their efficiency and manage complex design problems at scale.
It helps to manage products which have multiple components and hundreds of related moving parts. It doesn't make sense to design everything from scratch in such a large design project and makes the process prone to errors. So having a design system will enable teams to manage such large projects more efficiently.
Consistency is another issue when there are multiple people and teams working on a same related product. To ensure the consistent branding, look, feel and experience of the product, the design system really helps to tie things together.
A design system allows frontend developers, visual designers and user experience designer to quickly build out designs without having to reinvent the wheel every single time.
Google material design is one example of a design system which is set of principles, components, colours and styles which can be easily used across different products and projects. Design systems are not only restricted to design components but can also include include code and frontend components or even single page applications.
Design systems are more like ecosystems and they are living and breathing specimens rather than static entities. As the product and the ecosystem matures, similarly the design system also undergoes additions and subtractions, but the core design principles remain the same.
Salesforce has its own design system called lightning design system which contains components ,guidelines, design partners to use in front end development work. IBM has carbon design system which provides a dynamic sandbox to create components.
Most of design teams have found that they are able to accelerate design and product development process by leveraging design systems as it helps them to reduce the design debt which accumulates over multiple product iterations.
Having a design system helps product and design teams to transcend different platforms whether it is ios, android, web or augmented reality. They are able to deliver the same consistent user experience to the end user.
Components in a design system can be as simple as colour code for background to button sizes and even be as complex as functional components consisting of code. Having these reusable components helps to manage complexity at scale as the product and design matures.