Founding Design System

Founding Design System

Founding Design System

One system for a whole product suite. Built on Chakra UI, then extended with the components AI-native products actually need.

One system for a whole product suite. Built on Chakra UI, then extended with the components AI-native products actually need.

IC Product Designer + System Owner

Figma variables panel showing llmda's semantic color tokens mapped to light and dark values

Role

Sole designer on the system. Strategy, tokens, components, and rollout.

Timeline

About two weeks to build the system and align both products’ front ends.

Foundation

Chakra UI as the base, extended with custom and AI-native components.

Impact at a glance

4X

4X

4X

faster design-to-dev cycle

Weekly

Weekly

Weekly

releases with consistent UI

3

3

3

products on the system, one in stealth

AA

AA

AA

WCAG 2.1 compliant

Two products were growing two sets of buttons. This is the system that ended that.

Two products were growing two sets of buttons. This is the system that ended that.

Two products were growing two sets of buttons. This is the system that ended that.

A founding design system that aligned two products before either shipped, and now shapes a third being built in stealth.

What I owned

UX audit, tokens, component API, accessibility, docs, and rollout across products.

What I didn’t

Backend, engineering implementation, and product scope.

Context

Two products, and nothing lined up.

Two products, and nothing lined up.

Two products, and nothing lined up.

I joined as the first designer while engineering was building both products in parallel. Neither had shipped, and they were already heading in different directions with no shared foundation.

Parallel builds

Two products, built in parallel

Two products, built in parallel

Engineering was building both at the same time, with no shared base.

No source of truth

Each product had its own everything

Each product had its own everything

No shared tokens, patterns, or naming between them.

Comms gap

Design and dev, different languages

Design and dev, different languages

Every handoff meant translating a design into someone else’s components.

Audit

I counted the mess before I fixed it.

I counted the mess before I fixed it.

I counted the mess before I fixed it.

Before designing anything, I inventoried every component engineering had already built across both products.

8

8

8

button variants in the wild

13

13

13

type styles across products

25

25

25

one-off color values

Color-token pipeline: a raw hex value promoted to a global token, then a semantic token, then applied to a component

Foundations

Tokens, type, and an 8px grid.

Tokens, type, and an 8px grid.

Tokens, type, and an 8px grid.

Tokens did more than enforce consistency. They became the shared language between design and engineering: one source of truth both sides could build from.

Color tokens

Every color starts as a raw hex value. That hex becomes a global token, the global token becomes a semantic token named for the job it does, and the component is built from that semantic token. Change the hex once and every element using it updates.

#1D5346

Raw value

green/600

Global token

success

Semantic token

Success

Component

Color-token pipeline: a raw hex value promoted to a global token, then a semantic token, then applied to a component

Type scale

The llmda design system type scale, from small labels up to display headings

Spacing · 8px base

The design system spacing scale, built on an 8-pixel base grid

Components

Chakra where it was enough. Custom where it wasn’t.

Chakra where it was enough. Custom where it wasn’t.

Chakra where it was enough. Custom where it wasn’t.

I structured the system with atomic design: tokens compose into components, and components into full UI segments, so every product draws from one foundation.

Atomic structure

Atoms

Atoms

Semantic color tokens, the type scale, spacing values, and icons. The smallest building blocks, all mapped to Chakra’s theme.

Molecules

Molecules

Reusable form fields, button sets, and label-and-input pairs, built by restyling Chakra primitives to llmda’s brand.

Organisms

Organisms

Larger segments like cards, nav bars, and data-dense tables, composed to fit each product’s needs.

Documentation

Documentation

Usage dos and don’ts, accessibility notes, and responsive rules for every component.

Component anatomy building from atoms to molecules to an organism, button states composing into a full form

Component library

A board of llmda design system components: forms, dialogs, tables, menus, and an AI upload panel on the brand indigo background

AI-native patterns

The patterns component libraries don’t ship with.

The patterns component libraries don’t ship with.

AI-native pattern: a claims-review list where each suggested edit can be applied, skipped, or left pending

Agent states

Components for what the agent is doing right now: drafting, checking sources, waiting on a person, or done.

AI-native pattern: a source panel citing the spec, code lines, and metadata behind a generated section

Verification & sources

Every claim traces back to the source file it came from, so engineers can verify the work instead of trusting it.

AI-native pattern: predicted prompt suggestions such as rephrase, change voice, and convert to reported speech

Prompt prediction

Suggested next prompts, so people aren’t left staring at an empty input.

Adoption & handoff

Shipping the system so it actually got used.

Shipping the system so it actually got used.

Shipping the system so it actually got used.

I shipped the system into the repo using Figma-to-Cursor over MCP, so tokens and components landed in code directly instead of being reinterpreted from a spec.

Handoff

Figma to Cursor over MCP

Figma to Cursor over MCP

Tokens and components moved as code, not as a spec someone had to rebuild by hand.

Tokens

One name, both sides

One name, both sides

Design and engineering used the same token names, so one word meant one exact value.

Adoption

Both products, one library

Both products, one library

Both front ends were migrated onto the system, so new screens start from it instead of from scratch.

Figma dialog for connecting the design system to Cursor over MCP, shipping tokens and components straight into code

Reflections & trade-offs

The delay I fought for was the point.

The delay I fought for was the point.

The delay I fought for was the point.

The tradeoff

Two weeks now, weekly forever

Two weeks now, weekly forever

I pushed to delay one release by two weeks to build the system and align both front ends. That delay is why the team now ships every week with consistent UI.

The Chakra bet

Speed over a blank canvas

Speed over a blank canvas

Building on Chakra let me move fast, and custom components covered what it couldn’t.

What’s next

A third product, in stealth

A third product, in stealth

The system is already the foundation for a new product being built now.

DESIGNED BY MAITHILEE NATU

DESIGNED BY MAITHILEE NATU