We started with basic design principles like color palettes, typography, and spacing. These design tokens allowed us to create patterns in our component library, such as buttons, alert boxes, sliders, and text inputs. By defining these patterns, we eliminated the need for designers and developers to make design decisions repeatedly. We followed Bradfrost's atomic design methodology, where the smallest components are atoms, larger components are molecules, and user interfaces are organisms. Our component library, which contains ready-made LEGO blocks, ensures consistent user experience. While a component library can exist without a design system, a design system encompasses more than just a component library.
We started off from having basic design principles. Color palettes, so that you can be assured with the color usage guidelines. Also, if any of these color changes in the future, you just need to make a change in one place. Typography, so that you don't need to worry about which size and font weight for each headings and the body text. Spacing, so that you can spend as little time as possible on deciding what the padding should be and margin should be.
With these design tokens ready, you can now add patterns to the library. Add UI components such as buttons here, and how the buttons look and behave. For example, as you can see, we have standard, outlined, text, or a button with an icon in it. Also, we defined hover state, click state, disable state, and so on. The alert box, the slider, and the text input. All these components can be used to form a pattern in the library, such as this form, or a call-to-action button with an input. A card component with text inputs and a button inside, and you can see how many design decisions are there in just this one little component. Padding, margins, font size and weight. Without the pattern defined, this is something that needs to be decided each and every time for both designers and developers. We'll always be able to refer to this design system when we have to build whatever the page or product we need to build. Just as we look at an instruction when we build a LEGO model.
With our component library, we decided to follow Bradfrost's atomic design methodology. Smallest components, or LEGO blocks, is called atoms. Larger components, thus made with combining atoms, is called molecules. User interface, thus made of atoms and molecules, such as a navigation bar, cards with text or inputs inside, is called organism. Something like 404Page can be added as a template because that's a complete layout and can be shared in different countries. Project Corel. We started building a component library to resolve the new challenges that I've mentioned in the beginning. But wait, design system? Component library? Are they the same thing? Component library lets you use ready-made LEGO blocks out of the box. Since all LEGOs inside are made following design systems guidelines, you can be assured that it will provide consistent user experience. Design system is the instruction for building LEGO models. And component library is the box of LEGO blocks. Know that design system is a broader concept that includes component library. Design system will still be design system even if you don't have component library. But component library can exist without design system.
Comments