Luna Mok, Product Designer  /  Design Systems

MuleSoft Design System

MuleSoft, a high-growth startup specializing in API integration, was acquired by Salesforce in 2018. In 2020, a rebranding initiative provided an opportunity to align all design work with the new visual direction, making it the perfect time to implement a comprehensive design system.

I joined the team in early 2021 as a Design System designer. With the guidance of my UX manager and Art Director, we embarked on shaping MuleSoft's new design system.

The Challenge

For a complex product with a legacy design system, change is never easy. The biggest challenge we encountered during the process was getting teams to adopt the new system, a difficulty we didn't foresee at the outset. In this case study, I will show why our initial approach didn't work and how we pivoted to ultimately achieve success.

Final impact

1000+

Interconnected components

200+

Internal users served

80%

Design handoff time saved

Overview

My Role

Design System Project Lead

Collaborators

Chris–UX Manager
Paul–Art Director
Engineering Team
Adam–Product Manager
Derek–Accessibility Consultant

Tools

Figma
Slack
zeroheight
Storybook
Notion
Google sheets

Deliverables

Project roadmap
Platform-agnostic design system
Figma component libraries
Design Tokens
Documentation
AA minimum accessibility compliance

step 01

Auditing existing components

Before redesigning any components, it is crucial to conduct a comprehensive audit of existing elements and leverage insights from past research. I examined the company's Figma files and the current usage of components, as well as identified any in-progress components that might be built in the near future. 

step 02

Planning the rollout

The audit allowed me to visually assess the inconsistencies of components and document their relationships and placements within the product, which set the ground for component criteria when I got to the creation stage later.

I decided to phase out the rollout based on the Atomic methodology, which starts with the simplest components, such as buttons, badges, and selection controls.

step 03

Starting with the foundations

I began by establishing the typography scale, which is at the core of the sizing system. Next, I meticulously adjusted the functional color palette to ensure that each color meets the AA minimum accessibility standard. I then honed the spacing, elevation, and icons based on the 8-point system, establishing a robust and reliable foundation to build on.

Once I solidified the foundations, I worked with developers to develop a token system that works best for them.

step 04

Pivoting the approach

Once the foundations were established, I began creating components, starting with the simplest and most atomic elements—buttons, badges, and selection controls.

However, throughout the process, we encountered adoption challenges after the initial release of these atomic elements.

To overcome the challenges, I conducted further research. I discovered that other organizations with similar experiences prioritize creating the most widely used components first.

This insight led us to pivot our approach and remap the release plan for components based on usage.

step 05

Designing the component

As a result, instead of focusing on the buttons, the first component we ended up creating was Tabs.

We will let Tabs be the main character for the rest of this case study.

During this design phase, I worked closely with product managers and designers to capture their use cases and requirements, such as optional icons and optional dismissible tabs. I collaborated with developers to understand technical feasibility and consulted with an accessibility consultant to ensure accessibility and inclusivity were considered at the component level.

I dedicated time to meticulously setting up all variants and properties in Figma with the utmost precision, ensuring a flexible and user-friendly component system.

On the Tab group level, user has the flexibility to choose whether they want icons, count, or dismissible tabs.

On each individual Tab, user has the flexibility to choose different states of the tab, swap icons, and more.

step 06

Stress-testing the new component

Partnering with the engineering and critical product teams, we piloted the new component with real user interfaces and interaction flows. This helped us stress-test the component, evaluating its performance under various conditions and edge cases. It also allowed us to elicit feedback from product teams, which was crucial for further refinement and improvement of the component.

One of the actual product UIs that has heavy usage of Tabs we stress-tested on.
We tested the new Tabs along with legacy components on the page.

step 07

Documentation and handoff

Creating detailed documentation is crucial for any design system. I strive to promote adoption and allow smooth collaboration for designers and engineers from day one.

I crafted the initial draft in Figma and utilized zeroheight for the final documentation. I ensured it mirrored the structure of Figma, enabling designers and developers to locate what they needed swiftly.

Documentation in Figma

Documentation on zeroheight

step 08

Maintaining and governing

I want everyone involved to feel comfortable and confident using the new design system. In addition to providing written design guidelines, I also set up:

Dedicated Slack channel

A dedicated Slack channel was established to serve as a centralized hub for any questions related to the design system.

Live and on-demand training

Live training sessions were given for system-wide updates. Office hours were offered to answer specific questions.

Systematic component intake

I also implemented a systematic process for handling new component requests inspired by design system guru Brad Frost.

Feedback is always welcome!

I instituted a backlog to track requests and bugs and an open feedback loop with excellent visibility.