Work

Demo case study. The story, team and numbers are placeholders that show how a real case study will read.

(Case study 04) Design system

A design system for a company with six product teams and six slightly different versions of everything. I designed it, built the components in React, and wrote the docs that teams actually read.

Role
Design engineer
Team
2 designers, 2 engineers
Timeline
Feb to Dec 2024
Platform
Web, React and Figma
Scope
Design system · Components · Docs
Status
Live

3 min read · 2024

Placeholder artwork

The 30-second version

For busy readers
A Problem

Six teams had built 14 different buttons, and every handoff ended in a debate about spacing.

B What I did

Built one token-based system in Figma and React, with docs written around real tasks.

C Outcome

Handoff got 40% faster, and 120+ components now ship from one source.

Sample numbers

01The problem

Six teams, six versions of the same button

Each team had moved fast on its own, which worked until the products had to look like one company. An audit found 14 buttons, 9 greys and 31 font sizes.

Designers and engineers spent the end of every sprint arguing over pixels instead of shipping.

14
different buttons in production
02My role

I designed it, built it and shipped it.

  1. 01 · design

    Ran the audit, defined the tokens and designed the component library in Figma.

  2. 02 · build

    Built and tested the React components, with visual regression tests on every change.

  3. 03 · ship

    Migrated the first two products myself, then supported the other four teams.

Team: 2 designers, 2 engineers

03What I learned

Teams did not want rules. They wanted fewer decisions

Interviews with each team showed nobody enjoyed choosing a grey. They just had no shared answer.

  • Insight 01

    Docs nobody opened

    The old style guide had been opened 11 times in a year.

  • Insight 02

    Copying was the system

    Teams copied components from whichever product they had worked on last.

  • Insight 03

    Engineers wanted names

    A token called space-4 settled arguments that a hex code never could.

04Key decisions

The calls that shaped the product

Why tokens came before components

Teams wanted a button library on day one.

Shipped

Colour, type and spacing as named values, shared by Figma and code. Every component after that was faster.

Why the docs are recipes

Reference docs had already failed once.

Shipped

“Build a settings page” beats “Button props”. Each recipe links to the parts it uses.

05Design to code

Figma and React from the same tokens

Tokens live in one JSON file that generates both the Figma variables and the CSS. Change a colour once and it updates everywhere.

Drag the slider to compare a Figma component with its React version.

FigmaProduction
  • One source for tokens
  • Visual tests on every pull request
  • Accessible by default (WCAG AA)
06Shipping

From first beta to live

~/project-four/releases

→ git log --releases

  1. v0.1Apr 2024Tokens in Figma and CSS
  2. v1.0Jul 202460 components, two products migrated
  3. v2.0Dec 2024120+ components, all six teams

✓ Used by all six product teams.

07Results

Fewer debates, faster handoff

  • 120+components
  • 6product teams
  • 40%faster handoff

Sample numbers

The end-of-sprint pixel debates stopped, and a new product team shipped its first screen in three days.

08Reflection

What I would do next

A design system is a product with designers and engineers as its users. Treating it that way, with research and releases, is what made teams adopt it.
  1. 01Migrate the last two products
  2. 02Add motion tokens
  3. 03Publish usage analytics per component

Where it's at: Used by all six product teams.

Next case study

Fintech app · 2026Project OneGetting freelancers paid in minutes, not days.Read it