Build · Leucine Design System · 2025

The Design System
That Replaced Figma.

One unified system across 4 enterprise pharma products. Built in 5 days with Claude Code. The handoff loop disappeared, the design team consolidated, and a new product’s MVP frontend now ships in 2 days — not weeks.

Leucine Design System landing page — design with confidence, build with speed

Role

Head of Design

Timeline

5 days (Aug 2025)

Team

1 designer + 3 engineers

Scope

Design Systems, AI Methodology

Liveleucine-design-system.vercel.app

Background

One company,
two design languages.

Leucine is a digital twin of the pharma manufacturing shop floor. AI-powered compliance platform, FDA-regulated, Series A backed by Ecolab. Deployed across 300+ facilities, 50+ companies, 10 countries. Four products: MES (Manufacturing Execution), CLEEN (Cleaning Validation), Leucine OS (Quality Management), and FDA Tracker (Compliance Intelligence).

I joined in 2020 as the second designer. Over six years I grew from IC to Design Lead managing 5 designers to Head of Design & Demand Generation.

Industry

Regulated pharma manufacturing

Footprint

300+ facilities, 10 countries

Products

MES · CLEEN · OS · FDA Tracker

Tenure

6 years (2020 → 2026)

Impact

Today the system runs across 4 products and 300+ pharma facilities. Engineers compose new pages directly from a Claude Code skill file. The 4-product brand inconsistency that had persisted since 2020 is gone.

4
Products Unified
5
Days to Build
5→1
Designers
0
Figma Handoffs

The problem

Two component libraries.
Every screen built twice.

DWI/MES was built on Material UI. CLEEN was built on Ant Design. Two products from the same company that looked like they came from different companies. Every new component was built from scratch — twice. Every design update required double the work. A customer using both CLEEN and MES experienced two different-looking products from one vendor.

Five designers. Forty engineers. The bottleneck wasn’t talent — it was the gap between Figma and code. Every design decision lost fidelity in translation.

The handoff loop

PM writes specDesigner opens FigmaHandoff to engineerEngineer interprets3–5 rounds of review“Close enough” ships

The decision

Ditch Figma. Ditch both libraries.
Build one system in code with AI.

Most designers evaluate component libraries by documentation quality and community size. I evaluated five — MUI v5, Chakra, Mantine, Ant Design v5, shadcn/ui — by three different questions.

Visual control

MUI/Ant fight you when you deeply customize. shadcn has no opinions — headless primitives + Tailwind = full control.

No dep hell

npm packages mean version conflicts across 4 codebases on different release cycles. shadcn copy-paste lives in each repo. No shared dep.

AI-readable

Claude Code reads plain React + Tailwind. MUI’s sx prop, Ant’s ConfigProvider — proprietary theming APIs are barriers to AI composition.

Visual ctrlNo dep hellAI-readable
MUI v5
Chakra UI
Mantine
Ant Design v5
shadcn/ui

The third criterion — AI-readability — is what no other design leader was asking in 2025. shadcn’s plain React + Tailwind structure meant the design system could become a Claude Code skill file: a set of instructions an AI could read and build from.

The build

One unified Design System.

Build duration

5 days

Colour palettes × shades

14 × 11

Primitives + custom components

46 + 16

Documentation pages

31

Foundations

Leucine DS foundations — 14 colour palettes × 11 shades
14 colour palettes with 11 shades each. Inter + IBM Plex Mono. WCAG contrast compliance baked into the foundation — not checked after the fact.

Components

Leucine DS components — preview + code tab toggle
46 shadcn primitives + 16 custom components. Live preview + code tab on every component. Engineers grab the code directly — no copy-paste from Figma plugin output.

Blocks (pre-composed compositions)

Leucine DS application UI — data table block
Not primitives — pre-composed blocks for login, forms, dashboards, data tables. Engineers and PMs don’t think about system-level design. The blocks carry the decisions.

The skill file (methodology punchline)

Claude Code skill file

# Leucine Design System Skill

## Tokens
  primary:    #0052FE
  surface:    14 palettes × 11 shades
  type:       Inter + IBM Plex Mono
  spacing:    4 / 8 / 12 / 16 / 24 / 32

## Components
  46 shadcn primitives
  16 custom (sidebar, topbar, ...)

## Blocks
  login · signup · dashboard
  data-table · form · settings

## Patterns
  sidebar-nav · top-nav · empty-state

## Accessibility
  WCAG AA contrast · focus rings
  semantic HTML · ARIA labels
→ reading skill file...
→ composing with shadcn primitives + Settings block
✓ Generated using Leucine DS tokens

The system encoded as Claude Code instructions. Engineer describes a requirement. Claude reads the system — tokens, components, blocks — and builds a branded, accessible page. The design system became the designer.

Results

The designer-as-bottleneck step disappeared.

0 days
MVP frontend (was weeks)
0 min
Page from blocks (was hours)
4 → 1
Products on one stack
0
Figma handoffs to engineers

The new flow

PM writes requirement →
Engineer opens Claude Code →
Claude reads skill file →
Page built with tokens & blocks →
Review and ship
The design team went from 5 to 1. Three found higher-leverage roles inside Leucine — one to product management, two to demand generation. One left for an unrelated opportunity. One was let go — the role she defined (producing static mockups for engineers to interpret) no longer existed. The system didn’t replace people. It replaced the inefficiency consuming them.

Chapter 1The dual-system problem

Two component libraries.

When I joined Leucine in July 2020, there were two products: DWI (Digital Work Instructions, which evolved into MES) and CLEEN. Each had been built by different engineering sub-teams using different frontend frameworks. DWI was on Material UI. CLEEN was on Ant Design. There was one designer before me — a pixel pusher with no system-level thinking.

What this meant in practice: two completely different visual languages across two products from the same company. Every new component built from scratch, twice. Every design update required double the work. Onboarding new designers meant teaching two separate component libraries, two sets of conventions, two design files. A customer using both CLEEN and MES experienced two different-looking products from one vendor.

I took ownership of design across both products. Brought consistency where possible within the constraints. Focused on user research, interaction patterns, and information architecture rather than fighting a losing war against mismatched component libraries.

Material UI — MES

Theme override layer
Custom MUI components
Designer Figma file A
Engineer interpretation

Ant Design — CLEEN

ConfigProvider override
Custom Ant components
Designer Figma file B
Engineer interpretation

Chapter 2Hitting the ceiling

Five designers. Same problem.

As Leucine expanded from 2 products to 4 (adding Leucine OS/QMS/LES and FDA Tracker), and as the company scaled from early customers to 300+ facilities, the design demands multiplied. I grew from solo designer to Design Lead managing a team of 5.

The team was deployed across the suite — some focused on MES, some on CLEEN, some on the newer products. All working in Figma, designing screens, handing off, reviewing, iterating. The dual-system problem didn’t go away — it got worse. More products meant more surfaces, more inconsistencies, more coordination overhead.

A significant portion of every designer’s time was spent on handoff, review, and rework — not on solving user problems. The fundamental brand inconsistency between the MUI products and the Ant Design products remained unsolvable within the existing architecture.

2020
Joined as Designer #2. Two products on different libraries.
2022
Expanded to 4 products. Dual-system worsened.
2023
Promoted to Design Lead. Team grew to 5.
2024
300+ facilities, 10 countries. Handoff overhead consuming the team.
2025
Realization: scale wasn’t the lever. Burn-it-down decision.

Chapter 3Why shadcn/ui

Three criteria. One library that passed all three.

I evaluated five options — MUI v5 (what we already had), Chakra UI, Mantine, Ant Design v5, shadcn/ui. The evaluation criteria were not the usual ones — not documentation quality or community size, but three specific questions.

First: full visual control. MUI and Ant Design both fight you when you try to deeply customise. Their theming systems have opinions. shadcn/ui has no opinions — it’s headless primitives with Tailwind styling.

Second: no dependency hell. MUI and Ant Design are npm packages — version conflicts across 4 products with different release cycles would be a nightmare. shadcn/ui is copy-paste — the components live in each product’s codebase. No shared dependency. No version conflicts.

Third: AI-readable. shadcn/ui components are plain React + Tailwind. Claude Code can read them, understand them, and compose new pages from them without any special knowledge of a proprietary theming API. MUI’s sx prop, Ant Design’s ConfigProvider — these are barriers to AI composition.

Visual ctrlNo dep hellAI-readable
MUI v5
Chakra UI
Mantine
Ant Design v5
shadcn/ui

Chapter 4The 5-day build

Day-by-day: what shipped, what got pushed.

The calendar was realistic only because I knew exactly what to build. Six years of living inside the failure modes — handoff fidelity loss, double-build overhead, brand drift — meant I’d already designed the system mentally. The 5 days were execution.

Day 1Foundations
  • Evaluated component libraries → shadcn/ui
  • Next.js 14.2 docs site set up
  • Leucine Blue (#0052FE) primary; 14 palettes × 11 shades
  • Inter + IBM Plex Mono; 11 type scales
  • WCAG AA contrast baked in
Day 2Component primitives
  • 46 shadcn components installed + themed
  • ComponentPreview system with live preview + code tab
  • Started 16 custom components (sidebar, topbar, swatches)
Day 3Application blocks
  • Login + signup flows
  • Data tables, stats cards, sidebar nav
  • Empty states, pricing pages, modal patterns
Day 4Documentation
  • 31 documentation pages written
  • Getting Started, Foundations, Components, App UI, Examples
  • Live preview on every page
Day 5Integration + skill file
  • Connected with 3 frontend engineers for integration
  • Dark theme via next-themes; final token propagation review
  • Claude Code skill file written — the design system as AI instructions

Chapter 5The skill file

The design system skills.

The design system is embedded as a Claude Code skill file — a set of structured instructions Claude reads before executing any frontend task. The skill file defines: colour tokens, typography scale, spacing system, component library, block compositions, layout patterns, accessibility requirements.

When an engineer needs to build a new page, they don’t open Figma. They don’t wait for a designer. They open Claude Code, describe the requirement (“build a settings page with a sidebar, form fields for profile information, and a data table for API keys”), and Claude Code reads the design system skill file and builds the page using the correct tokens, components, and blocks.

The result is a branded, consistent, accessible page that follows every design decision I made — without me being in the room. The 2-day MVP number comes from this: a new product’s entire frontend, built by an engineer with Claude Code, using the design system as the foundation. Previously that took weeks of designer-engineer back-and-forth.

Claude Code skill file

# Leucine Design System Skill

## Tokens
  primary:    #0052FE
  surface:    14 palettes × 11 shades
  type:       Inter + IBM Plex Mono
  spacing:    4 / 8 / 12 / 16 / 24 / 32

## Components
  46 shadcn primitives
  16 custom (sidebar, topbar, ...)

## Blocks
  login · signup · dashboard
  data-table · form · settings

## Patterns
  sidebar-nav · top-nav · empty-state

## Accessibility
  WCAG AA contrast · focus rings
  semantic HTML · ARIA labels
→ reading skill file...
→ composing with shadcn primitives + Settings block
✓ Generated using Leucine DS tokens

Chapter 6Engineering workflow transformation

Engineers compose pages directly from the skill file.

Three frontend engineers worked alongside on integration. Initial pushback — they liked Figma artifacts as visual specs. The breakthrough moment: composing a settings page from the skill file in 10 minutes, having previously taken 3 days through handoff.

Current behavior: prompt Claude → review output → ship. I review at system level (token changes, new block patterns), not page level (button placement, copy adjustments). Course-corrections compound.

Page from blocks

Page from blocks

Settings page composed from 7 existing blocks. 10 minutes. Previously 3 days through handoff.

New screen from prompt

New screen from prompt

PM described a new audit-trail screen. Engineer prompted Claude. Page rendered with the design system’s table block + filter pattern. Designer wasn’t in the loop.

// tailwind.config.ts darkMode: 'class', theme: { extend: { colors: { bg: 'var(--bg)', fg: 'var(--fg)', surface: 'var(--surface)', } } } // globals.css :root { --bg: #ffffff; --fg: #0a0a0a; } .dark { --bg: #0a0a0a; --fg: #fafafa; }

Dark theme adoption

Token-based dark theme via next-themes. Adopted across 4 products in one PR — token swap propagated everywhere.

Chapter 7Team transformation

5 → 1. Where each person went.

The design team went from 5 people to 1 — me. Honest accounting of where each person went.

Designer A

→ Associate PM

User-thinking transferred directly. Always more interested in the why than the what. Moved where leverage was highest.

Designer B

→ Demand Generation

Visual + brand skills → marketing campaigns, social, sales collateral. Working with me in current Head of Growth capacity.

Designer C

→ Demand Generation

Same path — content sensibility → email, campaigns, landing pages. Same team, different lens.

Designer D

Left for unrelated opportunity

Departed the company for another role. Unrelated to the design system change.

Designer E

Let go

Pixel pusher. Believed in traditional Figma-first design. Could not or would not adapt to code-first. The role she defined no longer existed.

Closing

One design system. Four products. 300+ facilities. 40+ engineers. And one designer operating at the leverage of five, because the system carries the decisions.

What’s next: open-source patterns specific to pharma manufacturing workflows, expand the skill file with templates for new compliance domains, and prove the same one-designer + skill-file model scales beyond Leucine.