OPEN INNOVATION AI · OICM+ PLATFORM · 2026

From chaos to canon.

The story of the OI Design System — how a design lead, a head of frontend, and an AI brain rebuilt the design layer of an enterprise MLOps platform. Token by token. Atom by atom. Wave by wave.

3,491 tokens · 220 components · 91 iron rules · 100+ waves · 1 brain
▶  Presentation · Light (24 slides)  ◈  The Full Story — 8 chapters · 107 slides
SCROLL ↓
01 THE BEFORE TIMES

Every pixel was
an argument.

OICM+ grew fast — GPU monitoring, deployments, model registry, workspaces. The UI grew faster than anyone could govern it. Raw Ant Design defaults. Hex codes scattered like confetti. Every fix was a CSS specificity war.

!important × 70+ on a single Select wrapper // the cascade had already lost
color: #4bebd4; color: #1ab5a0; color: #0fa; // three teals, one button family
height: 28px; height: 36px; height: 44px; // control heights nobody agreed on
<OITypography> × 247 consumers of a deprecated atom // and counting
0
files needing migration when we finally measured it
0
inconsistent consumers of one table component
0
different filter-bar patterns doing the same job
02 THE IDEA

Atomic design,
taken literally.

One hierarchy. Every layer composes the one below it, and only the one below it. A molecule may not rebuild an atom. A page may not inline anything. Skipping a layer is a build failure, not a style choice.

TOKENSFoundations--oi-color-teal-600 · --oi-space-4 · --oi-motion-spring
ATOMSPrimitivesOIButton · OIText · OIStatusDot · OISpinner · OITag
MOLECULESCombinationsOICard · OIChartCardHeader · OITableHeader · OIFilterBar
ORGANISMSCompositionsOITable · OIAppBar · OISidebar · OIDrawer · OIModal
TEMPLATESPage shellsDashboardPage · ListPage · DetailPage · WizardPage
PAGESProductzero CSS · zero spacing · routing and data only

The Lego Rule: atoms own their insides, never their outsides. Molecules own the gaps between atoms. Nobody owns their own margins — the brick wrapper does. Spacing became math: 24px at every canvas edge, 24px between bricks, 12px between rows. Always. Automatically.

03 THE TOKEN CHAIN

No pixel without
a passport.

Every visual decision resolves through a three-layer chain of CSS variables. Components may never touch a raw value — not a hex, not a px, not a font name. Change one semantic token and the whole product follows. That's how dark mode costs zero component code.

component--oi-button-primary-bg semantic--oi-bg-brand primitive--oi-color-teal-600 #1daf9c
GPU UTILIZATION · data-theme="light"
73.2%
94 of 128 accelerators busy · same component, same tokens
0
design tokens, verbatim from code
0
color properties
0
fonts. Inter for UI, Plex Mono for data.

⟳ the card flips theme every few seconds — no component code involved, only token values.

04 THE DS-BRAIN

A design system
that remembers why.

Most design systems document what. Ours documents why — in a knowledge base built for both humans and AI agents. Every decision logged. Every rule numbered. Every failure mode registered so it can never silently return. An AI agent onboards in minutes and works like it's been here for months.

AI-Context/00-README.md

The dispatcher. Maps every task type to the minimum set of files an agent must load. No agent reads everything; every agent reads enough.

04-RULES.md · 91 iron rules

From "no primitives in component CSS" to drawer stack depth caps. Numbered, versioned, cited in every review.

07 — Decisions Log

Append-only institutional memory. Why the brick wrapper won. Why wrappers can't hold state. Why teal is alone.

REGISTRY-FAILURE-MODES

23 catalogued silent-regression patterns, each with the grep that catches it before it ships.

page-specs/ · verifiers

Signed-off outcome contracts. A fresh-context AI verifier grades every build cold — the builder never grades itself.

12 — Rapid Prototyping

The T0→T3 promotion ladder: prototype fast, promote what survives, document what promotes.

> "update brain"
— two words at the end of any session, and everything learned becomes permanent.
05 THE WAVES

One hundred waves
of deliberate change.

No big-bang rewrite. Every change shipped as a wave — scoped, preservation-gated, verified, logged. W11 to W112 and counting. These are the ones that changed everything:

W19 → W55 · THE SPACING SAGA

The Brick Wrapper Foundation

Six waves fought over who owns outer spacing. W55 ended the war with one primitive: every brick wrapped, every row guttered, 24px everywhere by construction. Rules 82–84 locked it forever.

W38 · THE DOCUMENTATION CONTRACT

Visual sign-off triggers docs — always

Four surfaces update together or the diff is rejected. Documentation drift, the death of every design system, became structurally impossible.

W74 · THE TABLE RECKONING

37 table consumers, one canonical organism

Ten filter patterns, eight pagination types and nine footer variants — audited, unified, rebuilt bottom-up as one slot-configured OITable family.

W83 · DUAL-ENGINE VISUALIZATION

Every chart, two renderers, one API

Recharts and ECharts behind a single facade with an engine prop. Side-by-side stories for every chart so the choice is made on evidence, not vibes.

W106–W109 · THE MONITORING CANON

Chart cards, empty states, filter chips

The Resource Monitoring build crystallized six reusable patterns — ratified by audit, promoted to canon, documented in the brain.

W110–W112 · THE PIVOT

Claude Code becomes the design tool

We built a custom AI playground, then had the discipline to kill it — plain-English prototyping through Claude Code was better. Designers now author real Storybook stories by describing them.

06 TASTE, CODIFIED

Opinions strong enough
to grep for.

A design system without taste is a parts bin. Ours ships its aesthetics as law — loved and hated, in writing, enforced by AI verifiers that grade every build cold.

Loved · by default

  • Restraint over spectacle — used all day by engineers, never loud
  • Teal as the only chrome accent — everything else is data
  • Mono for data, Inter for UI — numbers earn Plex Mono, labels never
  • md (32px) as the universal default — right answer almost everywhere
  • Lit from above — inset highlights, soft teal glows, springy easing

Hated · pushback every time

  • Gradients, sparkles, marketing polish — wrong product for it
  • Mono on headings — card titles in mono = instant rejection
  • Hardcoded values — every. single. one. gets flagged
  • Partial executions — fixing 4 of 6 bugs is not a fix
  • Accent colors leaking into chrome — purple lives in charts only
builder builds compliance report fresh-context AI verifier PASS / FAIL fix bottom-up · re-verify
07 THE MIGRATION

Design and engineering,
finally speaking one language.

The design system proved the vision; the frontend team made it production law. Together we rebuilt the component layer as @oi/ui — a clean monorepo package under Feature-Sliced Design, migrated atom by atom, lowest layer first. Consumers wait. Layers never skip.

Design Lead · the canon

Mehrshad

Built the system, the brain, the rules, the taste. A hundred waves of prototypes, specs, and verifier-graded polish — and the AI workflows that let designers ship real code.

Head of Frontend · the engine

Igor

Led the engineering migration: FSD architecture, domain isolation, the oi-ui package, code quality law. The reason the design system's future is production-grade TypeScript, not a PDF.

beforesrc/shared/ui · app-locked atom by atombottom-up · additive-only · verified after@oi/ui · standalone package · 220 components
08 THE NEW ERA

Now everybody
prototypes.

One command synced the entire living library into Claude Design — not screenshots, not approximations: the real components, bundled from source, graded for fidelity, published to the whole team. Describe a page in plain English; get it back built from actual OI parts.

~/Project-Igor/mlops-fe
 /design-sync
Which component tree? → both — oi-ui canonical, legacy fills the gaps
 reference storybook built (the real one — 30GB heap and all)
 converter self-heal loop · build 10 · exit 0
 219 previews generated · fidelity graded per component
 design system "OI UI" published to organization
220 components · 3,491 tokens · usage notes for Claude · zero drift

Dev ships a component → /design-sync → every designer's next prototype already has it. The loop is closed.

09 THE AFTER

Chaos, canonized.

Same product. Same team. Three months. Different physics.

0
real components in the published system
0
tokens — every pixel has a passport
0
iron rules, AI-verified on every build
0
+ documented waves, zero big bangs
4
control heights. ever. 24 · 32 · 40 · 48
1
teal. one brain. one language.

Led together by Igor · Head of Frontend Engineering & Mehrshad · Design Lead
with the OI frontend team — three months, executed excellently:
built on the DS-Brain, a hundred waves of work, and an unreasonable refusal to hardcode anything.

← ALL WORK