arrow: upwards
TOP

Design system

Contribution:
Token creation
Design guideline writing
Component consolidation
Component deprecation
Presentation and workshops
Metrics tracking
Cross-team contributors:
Product designers:
Avatar of the contribution 1Avatar of the contribution 2
Project manager:
Avatar of the contribution 3
Frontend developers:
Avatar of the contribution 4Avatar of the contribution 5
A collection of of the UI components from Eventbase design system

Overview

Working in the design team, I noticed designers were using loosely defined styles and ad-hoc components, leading to inconsistency and maintenance issues as the product scope expanded. We recognized the need for a comprehensive design system. I led the creation of 8 token types, drafted guidelines for 10+ components, held 5 workshops on design system principles, and integrated feedback from cross-functional teams. The Success tracking section outlines the positive outcomes.

Design steps

Step 1: understand
Step 2: build
Step 3: review and adopt
Step 4: success tracking

Step one - Understand

Why a design system?

Problems
  • Inconsistency: Despite styles and components being widely used, the lack of clear usage guidelines and a centralized source for components results in each designer applying different styles or components to the same elements
  • High maintenance: Since many parameters are manually set by designers, the amount of manual update work is unimaginable
An example of the inconsistency problems in design
divider line
In the design system principle workshop, cross-functional team members write down what problems they would like the design system to solve and then we categorize them into different principles

Goals and principles

Stakeholders:

  • Management
  • Front-end developers
  • Product designers and visual designers

Goal:

  • Eliminate obvious inconsistencies in the product that non-designers can easily spot
  • For each designer, the time spent on maintenance of their projects should be reduced to less than one hour per week

Principles:

  • Accessibility — add accessibility section to every component guideline
  • Relevancy — only include content that is currently being used in the product
  • Scalability — adopt atomic design strategy by applying variables/styles to UI elements and nesting components

Step two - Building

Design tokens

We started with design tokens because they are the foundation of components. In this way, it saves us the update work when we create components.

My contribution:

  • Introduced Figma variables to the team and helped adopt them. Variables provide support for token structure, and they offer benefits in scalability and ease of updating
  • Established the 2-layer token structure —  Global and Alias
  • Researched and proposed the naming convention of tokens, which was eventually adopted
  • Created comprehensive usage guidelines for 4 types of design tokens to set examples for other designers
Tokens before: Colors and fonts are styles. Variables aren't categorized. All of them don't have guidelines on how to use
Before
Colors and fonts are styles. Variables aren't categorized. All of them don't have guidelines on how to use
After: Colors, fonts and spacing are all variables and each variable comes with usage guidelines on where and when to use
After
Colors, fonts and spacing are all variables and each variable comes with usage guidelines on where and when to use
divider line

Components

We recognize that components are crucial for scalability. Building on the components designed by our team, we have begun developing guidelines to help select the right components during the design process.

My contribution:

  • Checked accessibility of existing components and helped to make improvements
  • Wrote guidelines for 7 components, emphasizing on correct use cases and best UX practices to set examples for other designers
  • Marked specifications of components using variables to ensure that developers who don't have dev seats can also implement specifications accurately
Components before: The chip component only had individual variants and the those variants were color variants, which could be consolidated into one with color variables.
Before
The chip component only had individual variants and the those variants were color variants, which could be consolidated into one with color variables.
After: The chip component has usage guidelines. Its variants are based on both UI and usage distinctions. Each variant has specifications with applied variables.
After
The chip component has usage guidelines. Its variants are based on both UI and usage distinctions. Each variant has specifications with applied variables. Chip - completed version.PDF

Step three - Review and adopt

Cross-team review

When a design token or component guideline is created, we invite feedback from other designers and front-end developers, typically through Figma comments.

Comments on edit mode of input chip left by team members and the updated guideline. Based on team members' comments, the guideline incorporated more detail on interactions to enter the edit mode.
Based on team members' comments on the input chip component, I added more detail to the component guidelines.

Example 1: Further elaboration

The front-end team asked about how the input chip enters edit mode. This is mentioned in the guideline, but without specific instructions. I later added keyboard interaction instructions to the guideline where edit mode is mentioned.

Example 2: Conflicts with existing implementation

After reviewing the Combo box component, the front-end team brought up that this component doesn't allow custom input values in implementation, while our design guidelines state that it does. After considering the technical difficulties, we decided to introduce Autocomplete to handle custom values in order to avoid disrupting the already implemented Combo box component.

Example 3: Design system iteration

Visual designers once mentioned that they found it difficult to use the Select component because they needed a leading icon, but the component appeared to only support a trailing icon. In fact, the leading icon is a hidden property, but I acknowledged that it wasn't straightforward to discover this. As a solution, I incorporated a Variants section into the Specifications sheet to showcase all the possible options.

divider line

Design system workshop

Workshop 1: Accessibility

In this workshop, I demonstrated how to create accessible components and color tokens, using over 30 examples. Accessibility is one of the core principles of our design system, so it's crucial for designers to keep it in mind when creating and maintaining the system.

"I really liked the presentation so far on accessibility! Very helpful, I wasn't aware of some of the things 🙂"  — Danica Uy (Visual designer)

Workshop 2: Component craft — The When and How

During this workshop, I discussed with other designers the optimal use of components and variants, as well as strategies for minimizing maintenance. The workshop provided the design team with ideas into not only creating components but also leveraging Figma's component configurations to cater to specific design needs.

"#high-five to @Celine.L for sharing very informative tips on how to go about optimizing our components even further, can't wait to do some work around it"  — Yvonne Liu (Lead visual designer)

Upcoming workshop: Leverage variables for design consistency

Slides of when to use components, accessibility agenda items, Dos and don't on color usage and component creation
Slides used in workshops

Step four - Success tracking

Component detach rate
  • Before design system: 37%
  • After design system: 2%

** Example component: Action bar

Page creation time
  • Before design system: 10 mins 23 secs
  • After design system: 2 mins 53 secs

** Used the example of Schedule page

Number of components
  • Before design system: 283
  • After design system:? (To be updated)

** Limited to mobile app only for the ease of counting

What did I learn from this project?

Make the best use of the design tool

The main tool we use to create the design system is Figma. As Figma introduces new features constantly, we quickly adopt the most efficient way. For example, by creating font-family variables and utilizing modes, we increase the speed of updating the app significantly. This inspires me to always stay informed with tool updates.

Adoption matters more than creation

At the beginning of this project, we focused more on creation. After we had a few things, we realized that the adoption rate didn't change much compared to before. So we started to spread the news while creating design guidelines. By having more people using tokens and components, we get to adjust the content before too much content is produced.

Other projects