01
Case study

Meridian.

A design system that treats comfort as a dimension, and its own governance as part of the product.

Meridian is the design-system infrastructure of an enterprise AI-workflow platform: a node-based canvas where teams compose automations, a marketplace of agents, dense power-user surfaces, multi-account governance. The kind of product where a design system either scales with you or quietly becomes your biggest debt.

Role
End to end: strategy, architecture, tokens, components, tooling, hyper hi-fi prototyping, documentation
Window
Dec 2025 to present · core system window May to Jun 2026
Status
Two frameworks live, third planned; developer handoff v1.2 shipping

The hypothesis: design knowledge should live as a system that humans and AI build from equally. Not documentation trailing the work. The source the work comes from.

A
The invention rationale

AI made output cheap. It made coherence expensive.

I had been carrying this hypothesis for months before Meridian, adapting it to every context I touched. The observation behind it: AI-assisted production generates plausible screens endlessly, but every generated screen is a small fork of the truth. Screens got cheap; accountability didn't.

The invention is not a component library. It is a knowledge architecture where identity, structure, styles and context are written once, in formats a person and a machine read with the same fidelity, and everything visible is generated from that source. Meridian was the first place the idea met enterprise reality.

B
What the product demanded

Four demands, one architecture.

iA dense node canvas

Infinite pannable space, nodes, edges, ports, in-canvas grouping. Power users living in it eight hours a day, needing compact density and instant scanability.

iiMarketplace surfaces

Agents and toolkits to discover, compare and import. Marketing-grade presentation living inside a working tool, one brand across both registers.

iiiMulti-account governance

Roles, permissions, organization switching. Interfaces that must feel calm while carrying real administrative weight.

ivTwo domains, one brand

A web surface and a workflow canvas with different physics but the same identity. The reason the architecture is layered instead of monolithic.

C
The systemic answer

One source, three tiers, every layer accountable.

A single brand source owns the raw truth and hands it down in three tiers: HARD (non-negotiable brand values), SOFT (recommended starting points each domain may adjust with documented reasons) and FLOOR (accessibility constraints nothing may sink below). 178 primitives in the first handoff, delivered as W3C-DTCG JSON plus written rationale.

Each domain framework builds its own semantic layer on top: 215 tokens in the workflow framework alone, every one classified Core (universal) or Contextual (local), so any consumer knows instantly what travels and what doesn't. An orchestration layer validates every handoff against a 30-point gate before it propagates. Nothing moves on good intentions.

Brand source · 178 primitivesone owner, three tiers of authority
Hard

Non-negotiable brand truth. Domains consume it; they never adjust it.

brand.plum.700
Soft

Recommended starting points. A domain may adjust them, with a documented reason.

radius.base
Floor

Accessibility constraints nothing may sink below, in any environment.

contrast.text ≥ 4.5:1

The pen stroke tells the rule, not the color: solid never moves, dashed moves with a written reason, dotted is the floor beneath everything.

The orchestration gatenothing moves on good intentions
30points, checked on every handoff

Everything the source hands down passes through here before it may propagate. What fails a check does not move.

Domain semantic layer · 215 tokenseach one classified before it exists
Core

Universal meaning. Travels to every framework that joins the ecosystem.

color.action.cta.background
Contextual

Local to this domain's physics. Declared local, so it can never leak.

canvas.node.port.size

Every consumer knows instantly what travels and what doesn't: the classification is written into the token before the token is real.

2 themes × 3 temperatures × 2 densitiesthe compact row is literally denser
light·cold
comfortable
light·pure
comfortable
light·warm
comfortable
dark·cold
comfortable
dark·pure
comfortable
dark·warm
comfortable
light·cold
compact
light·pure
compact
light·warm
compact
dark·cold
compact
dark·pure
compact
dark·warm
compact

Twelve legitimate environments resolve from one source. Zero component forks.

Interactive · the token logic

A name that explains itself.

Token naming is the grammar of the whole system. Every part of a name answers a question. Click through the anatomy of a real one:

...
semantic color.action.cta.background → aliases → primitive · hard plum.700

Semantic names never contain values. They point at primitives, so a brand evolution is one edit upstream, propagated everywhere with an audit trail.

D
Interactive · personalization as architecture

Comfort is not light or dark. It's three axes.

The signature UX decision. Most systems stop at light/dark. Meridian treats visual comfort as three orthogonal, user-facing dimensions: theme (light or dark), temperature (cold, pure or warm neutrals, because blue-tinted grays read technical to some people and hostile to others) and density (comfortable or compact, for the power users who live in the canvas). Twelve legitimate environments, one token architecture, zero component forks.

This specimen is driven only by semantic tokens, exactly like the product, palette included. Flip the palette and the same component becomes another brand, no forks. Change the axes:

Palette
Theme
Temperature
Density
Meridian CanvasAgentsRuns
Enrich lead data

Runs on every new entry. Pulls firmographics, scores intent, writes back in under a second.

Last run · 2 min ago142 ms avg
98%match rate

Every change you just made is one attribute flip resolving hundreds of tokens. No component was edited.

The UX calls

Made for the person living in it.

Architecture is invisible to the people using the product. What they feel is whether the canvas stays legible at hour eight, whether switching accounts is calm, whether the screen is kind to their eyes. Three calls carried that weight.

iDensity is theirs to set

Power users flip the whole product to compact and reclaim the canvas; newcomers keep it comfortable. One token axis, not a second set of components, so the two never drift apart.

iiKind at hour eight

Cold, pure or warm neutrals, plus AAA contrast across the board. I'm colorblind, so legibility is never a compliance checkbox here. It is the product.

iiiGovernance that stays calm

Organization switching, scoped views and staged filters, so real administrative weight never feels heavy. The prototype above already carries all of it, driven by tokens.

E
The craft · specimens

The system, laid on the table.

Pieces of the real design vocabulary, reconstructed exactly as the tokens define them. This is where UX policy becomes visible craft: the same gray is never one gray, spacing is a scale with intent, and every part of a component knows which token dresses it.

Three neutrals, one meaning

The temperature axis, as pigment. Cold neutrals lean blue and read technical; warm ones lean amber and read calm. Same roles, same contrast floors, different skin.
cold
pure
warm
50100300500700800950

Density is a scale, not a squeeze

Compact isn't comfortable shrunk by 80%. Each step is retuned so relationships survive: insets tighten faster than gaps, and control heights hold the touch floor. Watch the same four tokens retune themselves:
space.14
space.28
space.316
space.424

Anatomy of a dressed component

Nothing on this card is a hand-picked value. Every visible property resolves from a named token, which is why twelve environments never fork it.
Enrich lead data
Runs on every new entry. Pulls firmographics, scores intent, writes back to the pipeline.
Run step
1 2 3 4
1
radius.card → radius.md

One radius token for every container. The card and its controls can never disagree on softness.

2
color.status.active → plum.500

Status colors are semantic first, primitive second. A rebrand edits one alias upstream.

3
space.inset.card → space.3

Density-aware: 16 comfortable, 12 compact. The inset flexes; the hierarchy doesn't.

4
size.control → control.md

The single token per control that the density audit protects. No parallel classes, no escape hatches.

F
The craft · hyper hi-fi

Prototyped at the fidelity of truth.

Meridian's components don't exist as pictures of interfaces. They exist as working HTML, running the real tokens, before any production code is written: 75 living visualizer pages where every token is seen instead of described, every state rendered, every context switchable. The specimen above is not an illustration of the method. It is the method.

This is what hyper hi-fi prototyping means here: when a stakeholder reviews a component, they review the thing itself. When a developer opens a handoff bundle, it runs. The distance between prototype and product is a build step, not a rebuild.

G
Decisions that defined it

The system is the sum of its NOs.

01

The orchestrator enforces contracts. It never repairs them.

When an upstream handoff came in incomplete, the tempting fix was to patch it downstream. Instead: a contract enforcer, not a recovery agent. Failures surface where they were born.

02

Density lives in tokens, with no escape hatches.

Every control atom audited, every parallel CSS class removed, size resolving from one token, with a check so it can't return. Two ways to do one thing is two failure modes.

03

Secondary text, promoted to AAA system-wide.

A contrast audit raised secondary text past 7:1 in both themes. Being colorblind, I don't treat legibility as compliance. It's the product.

04

Blue stays free.

The action palette avoids blue so links and content keep it. One sentence, ruthlessly kept, saved hundreds of ambiguous screens.

05

Specs stay honest, or they don't exist.

A closed-loop audit compared every spec to shipped reality: 40 fixed, zero silent drifts left. A spec that lies is worse than no spec.

The rigor, counted

Discipline you can audit.

0
brand primitives, in three tiers
0
components across three layers
0
developer-ready handoff bundles
0
semantic tokens, Core and Contextual
0
validation points on every handoff
0
automated pipeline checks
0
logged decisions, with their why
0
living visualizer pages
H
Interactive · the brand brain, applied

Then the system reviewed the work.

The last move: a Figma plugin, grown out of the brand brain, that reviews any design on Meridian against a curated knowledge base and writes an editorial audit back into the file. It extracts the layers, samples real contrast from the exported pixels, retrieves the relevant guidelines, and returns findings that cite the exact rule, never a claim it can't back with evidence. Run it:

The road
answers back
Campaign · Spring
selection · 1 frame
Meridianfor Figma
Brand audit On
Accessibility AA
Format Social
Atlas brand KB 50 rules
Extract visible layers
Sample contrast · per layer
Retrieve knowledge base
Audit brand vs. guidelines
Audit accessibility
Synthesize findings
Render report in-file
Design review · Atlas campaign
Design review, perception layer: Focus 71 (strong), Clarity 41 (moderate), Cognitive load 7 (low), Engagement 50 (moderate), beside an attention heatmap of the campaign frame.
Rendered back into the Figma file · Focus 71 · Clarity 41 · Cognitive load 7 · Engagement 50.

The knowledge base is the source of truth. The plugin is just the hand that reaches into the file.

What it produced

The proof arrived on the clock.

The hypothesis was tested the only way that counts: under a real deadline. When components were missing days before a launch, they were generated from the system itself, on brand and on time, with no scramble. Consistency wasn't policed at the end; it was structural from the start.

On time, by construction. Missing surfaces produced from tokens and specs, shipped for the deadline with zero visual drift.

Two frameworks live, a third waiting. The web and workflow domains run on one source; the next one is already registered.

Forty drifts to zero. A closed-loop audit reconciled every component spec with shipped reality, then locked it so it stays honest.

A method that repeats. The playbook extracted from the first build made the second faster, and proved again in the Atlas case.

I
Scalability and evolution

Built for the team it doesn't have yet.

The method was extracted from building the first framework into a reusable playbook, then used to build the second one faster. A third framework is registered and waiting. Every project carries its own operating instructions and living state, so onboarding is a read, not a ritual.

The evolution path is written down before it's needed: a developer-team contract specifies exactly what changes when engineers join (versioning, concurrency, review flows), so today's single-author speed never becomes tomorrow's lock-in. The system anticipates its own growth.