Clover Design System
Building a scalable design system for a low-tech company
Clover is a multi-national financing company. In the midst of COVID, their operations struggled to transition to remote. To adapt to this new model, their management decided to build a suite of online apps. We are tasked to create a versatile design system that can be abstracted to their suite of applications across platforms.
My Role
I led the discovery process to understand the client's present and future needs for their suite of tools. I also worked with a junior designer to craft the design system and create mockups of different use cases for the design system. I assisted my junior designer in documenting the design system.
Project Team
Me, Design Lead
Karin, Designer
Jimmy, Product Manager
UI Audit without UI
The first step of building a design system is to take inventory of all the UI elements needed. However, because our client has not developed any tools yet, we have to start by defining the products and their major functions.
Without creating the actual product, we derived the main features of each product by writing user stories and designing rudimentary flows. By then, we could list the basic UI components user needed to interact with.
Choosing Our Atoms
The suite of apps is cross-platform. Some even have components that are embedded in Microsoft Office and Google Workspace. We were also tight on schedule and engineering resources. Instead of building our own atomic system, we decided to build on existing systems.
But how do we make two systems look and feel the same to use? We only used atoms that exist in both systems, standardize the color palette and typographic hierarchy, and define common rules on how one might use the atoms on different platforms.
Mocking our Molecules
We combined atoms to form molecules and organisms, or the UI components we outlined in our fictional UI audit. While there is still no concrete user flow for any of the applications, these UI component mockups show how the applications can look and feel consistent, even though they are under different products and across multiple platforms.
During this process, we also defined behaviors for components under different screen sizes and dimensions. Experimenting with responsive design of the components also help us modify our atoms to fit even more needs.
Constant Adaptation
When it is time to design our first product in the suite, a email management system, the design system sped up the process and gave us confidence of consistency. However, there were still many adaptations to be done and custom elements to design for a small number of features.
Documenting for all
There are two types of users for this design system: developers for the suite of applications we are developing, and designers who will extend this design to other applications in the future. Because of their different needs, we created a Figma library for designers and a design guideline for developers.
🙌
Special thanks to Karin, our junior designer, who took lead on structuring the Figma library and compiling a technical guideline on all our atoms components
Designers using our system to abstract to other applications tend to duplicate our components and create their own styles. But that will violate a single source of truth for the system and create many redundancies when more designers get involved. Instead, we chose a Master-variant structure to present our components
When others designers need to build on our system for their nuanced needs, they can stack new atoms on top of an existing Master component, and create instances to fit their needs. This retains flexibility while ensuring that the system scales minimally.
Developers using our system do not need extendibility. Therefore, we provide the technical guideline for our atoms in our system, along with the Figma code inspect function for reference. Each application will have a separate component library and technical guidelines to implement the application-specific component.
Outcome and Impact
Clover tasked us to create a design system that is versatile and extendable to multiple internal products. What we have created is the solid foundation of a constantly evolving organism that helps Clover thrive in this remote-first environment.
8 → 3
Weeks to design an internal application
3
Products created across 6 platforms
What I learned
Design abstractable, scalable systems to save time
Working on a design system from scratch made me realized the importance of thinking not only in features but in systems. Principles of system thinking such as abstraction, interoperability, interdependency, scalability, when used well, can reduce our work while also cater the dynamic needs of users.
Rather than thinking about how users will go through the product step-by-step, I now think of how user's actions and needs relate to each other, and how interactive elements in the product can relate to each other.
Design to communicate, not just to deliver
Much of our work in this project focuses on co-creation with our client because we did not have a clear project brief. Clients feel intimidated to raise concerns and feedback on polished designs. Hence when we start mocking up molecules, our clients were not happy with the results.
We moved back to low-fidelity designs like user flows and sketches. These empowered clients to tweak user flows, voice out suggestions, and even sketch their own wireframes with us. Co-creation with low-fidelity designs brings us to solid common ground to launch our work on the high-fidelity design system.