Case Study · Design System

One System.
Zero Chaos.

How I unified design across three product teams, reduced developer rework, and built a component library that became the foundation of our entire platform.

150+
Components
50%
Faster Handoff
3
Product Teams
"

Two designers, three product teams, and one question: 'What shade of magenta should this button be?'

The company was growing fast, but design inconsistencies were slowing down development and eroding user trust. Each team built components from scratch — duplicated effort, fragmented experiences.

The Challenge

How might we unify design across three product teams while reducing developer rework and accelerating delivery?

My Role
Design System Lead
Timeline
10 months
Team
3 Designers, 4 Frontend Engineers, 1 PM
Tools
Figma, Storybook, React, TypeScript
150+Components built
50%Faster handoff
3Product teams unified
6Component categories
The Transformation

Before the System

Without a shared language, every team made its own design decisions. The result? Inconsistent UX, wasted engineering hours, and a product that felt like three different apps stitched together.

Before — Fragmented

SubmitSubmitSubmitSubmitCancelCancelCancelCancel
8 different button styles across the product
Developers rebuilding components from scratch each sprint
No shared color tokens — hex values hardcoded everywhere
Design reviews spent on pixel corrections, not UX decisions
New designers onboarded with no single source of truth

After — Unified System

PrimarySecondaryGhostDangerDisabledCTASuccessPremium
One button component, 8 variants, zero ambiguity
Engineers consume components directly from Figma tokens
Global color, spacing, and type tokens synced to code
Design reviews focus on flow and experience
New team members productive within their first week
My Approach

How I Built It

I didn't start with components. I started with the conversations that were slowing us down — then worked backwards to the system that would eliminate them.

01

Audit & Inventory

Catalogued every existing component across three products — identified 87 unique elements, 40% of which were duplicates with inconsistent styling.

02

Token Architecture

Defined color, spacing, typography, and radius tokens as the foundational layer — ensuring every value had a single source of truth.

03

Component Build

Built components with variants, states, and accessibility baked in — from buttons with 8 hierarchy levels to complex data tables.

04

Adoption & Docs

Wrote usage guidelines, created Storybook stories, and ran workshops to drive adoption across all three product teams.

Token System

Design Tokens

A three-layer token architecture — primitives define raw values, semantic tokens map meaning, and core tokens govern spacing and shape. Exported directly from Figma Variables.

Primitive Palette

Premitives.Mode.tokens.json

Raw hex values — the foundation every semantic token references.

Primary (Magenta)

900#291b36
800#661d47
700#ad3278
600#cd5197
300#d598bb
200#f1e1e9
100#f8e6ef
50#f9eff5

Purple

900#453261
800#845ec2
700#b576f3
300#dcd6ff
200#e6deed
100#ebe8ff
50#f3f1ff

Red

900#221a2b
800#812c30
700#e31b0c
600#f44336
300#f88078
200#f9a09a
100#feeceb
50#fff0ef

Green

900#2f423e
800#025d4b
700#00906b
400#4caf50
300#66d188
200#25d366
100#d8f2cf
50#e0fbd6

Blue

900#3b5998
800#0b79d0
700#76a7f2
600#9bc4ff
100#cee2ff
50#ddebff

Water

500#2196f3
400#64b6f7
300#8fcaf8
200#bee3ff
100#dbf0ff
50#ecf7ff

Orange

900#c77700
800#ff844c
700#ff9b24
600#ffb547
500#f5b580
50#fdf0e5

Grey

900#212121
800#424242
700#616161
600#7f7f7f
500#9e9e9e
400#bdbdbd
300#e0e0e0
200#eeeeee
100#f5f5f5
50#fafafa

Blurey (Dark)

900#2c3344
800#374457
700#263448
600#0f172a
500#1e2a3b
400#2c3344
300#22293b
200#575c69
100#878b95
50#b7b9bf

Semantic Tokens

Design Tokens.Light / Dark

Purpose-driven aliases that swap between light and dark mode — no hardcoded hex in components.

RoleUsageLightDark
PrimaryBrand magenta — buttons, links, active states
ErrorDestructive actions, validation errors
WarningCaution states, pending actions
InfoInformational alerts, help tooltips
SuccessConfirmations, completed states
LimeSecondary positive actions

Background

Paper primary
Paper secondary
Tertiary
Quaternary

Text

Primary
Secondary
Disabled

Domain Tokens

Status

Available
On Break
Meeting
On Call
Outgoing
Roaming
After Call Work
Logged Off
Eavesdrop
Conference
Abandoned
Timeout

Channels

WhatsApp
Inbound
Outbound
Notes
SMS

Tags

IndigoChiliFireCoolNatureSkyRoyalGoldCoralRoseWaterGrassJungleAmberYaleUntagged

Core Tokens

Core.Mode 1.tokens.json

Numeric values governing spacing, margins, shape, and radius across every component.

Spacer

xxs
4px
xs
8px
s
12px
r
16px
m
20px
l
24px
xl
28px
2xl
32px
3xl
40px
4xl
48px

Margins

2x
4px
xs
8px
sm
12px
md
16px
lg
20px
xxl
24px
2xl
32px
3xl
40px
4xl
48px
5xl
56px

Shape

xxs
16px
xs
20px
sm
24px
md
32px
lg
40px
xl
48px
2xl
56px
3xl
64px
4xl
76px

Radius

2x
0px
xs
2px
sm
4px
md
6px
lg
10px
xl
12px
2xl
14px
3xl
16px

Typography

Heading 1The quick brown fox
36px / 2.25rem
Heading 2The quick brown fox
30px / 1.875rem
Heading 3The quick brown fox
24px / 1.5rem
BodyThe quick brown fox jumps over the lazy dog
16px / 1rem
SmallThe quick brown fox jumps over the lazy dog
14px / 0.875rem
The Results

Measurable Impact

The system didn't just look better — it made the whole organisation faster, more consistent, and more confident in what they shipped.

150+

Components

Components built across 6 categories — buttons, forms, tables, cards, avatars, and data visualisation.

50%

Reduction in developer handoff time

Reduction in developer handoff time. Engineers went from interpreting screenshots to consuming structured specs with tokens.

Product teams now using a single source

Product teams now using a single source of truth — eliminating duplicated effort and design drift.

Core Design System