All case studies
Design Systems · Enterprise Energy Platform

One system.
Six products.
Three client brands.

A token-based design system that lets 6 enterprise products maintain visual coherence while expressing 3 distinct client identities - built, documented, and adopted by 4 designers and 12 engineers across 12 months.

My Role
UX Manager · AI Product Lead
Timeline
12 months · 2021–2022
Industry
Enterprise Energy Platform
Deliverables·Design tokens, component library, theme engine, AI components, documentation, governance
Case Study · Design System

One system.
Six products. Three clients.

How I designed and shipped a shared UI architecture for an enterprise energy platform suite - delivering a token-based design system that lets 6 products maintain visual coherence while expressing 3 distinct client brands.

The Problem

Before the system existed

Before the system
  • 4 different button styles in production across products
  • No shared spacing scale - teams guessed independently
  • New engineers spent 3+ weeks building UI from scratch before writing product logic
  • AI features (confidence scores, agent state) solved differently in every product
  • Design reviews consumed 40% of sprint time on pixel-level debates
The risk
“We were shipping 6 products at once. Without a shared system, we'd be shipping 6 separate design languages - each one technically correct, none of them coherent.”
Strategic framing · 2021
My Responsibilities
System Strategy

Defined the 4-layer architecture, token taxonomy, and AI component conventions. Secured CTO and Design Director sign-off.

Team Leadership

Managed 4 senior designers. Set contribution model, review cadence, and versioning governance. Ran weekly system critique sessions.

AI Product Thinking

Led AI component design from scratch: confidence visualization, agent state indicators, uncertainty communication. No reference system existed.

87
components shipped
across 6 products
3
client themes
Energy · Downstream · Field Services
40%
handoff reduction
design-to-dev cycle time
94%
token adoption
cross-product coverage
12mo
to v1 delivery
design system complete
Process

12 months. 6 phases.

Each phase had a defined scope, a measurable output, and a handoff to the next. No phase started until the previous was stable.

01
Audit
Weeks 1–4

Inventoried all existing components across 6 product codebases. Found 247 unique UI elements, 89 of which were duplicates with visual variation.

Component Inventory Report · 89 divergence flags
02
Token Foundation
Weeks 5–12

Defined 7 token categories (Color, Typography, Spacing, Radius, Elevation, Motion, State). Every decision documented with rationale and WCAG compliance notes.

Token Spec v1.0 · 214 named tokens
03
Component Library
Weeks 13–28

Built 87 components in order of product demand. Each component had accessibility spec, usage guidelines, and 3 usage examples.

87 components · A11y-tested · Storybook documented
04
AI Component Layer
Weeks 29–36

Designed 12 AI-specific patterns from scratch: confidence bands, model state indicators, uncertainty visualization, agent workflow blocks, and human-AI handoff states.

12 AI patterns · Trust framework published
05
Client Theming
Weeks 37–40

Built the theming engine. 3 client themes delivered as token overrides - zero component forks.

3 themes · 0 component forks · Same codebase
06
Governance
Week 41+

Published contribution guidelines, deprecation protocol, and weekly system office hours. Established design system as a product, not a project.

94% adoption · 0 rogue components in Q1 2023
Architecture

4-Layer System

From raw design tokens to client-branded product experiences - every layer is independent, versioned, and composable.

01Token Layer
Design decisions as reusable values
Color
Typography
xssmmdlgxl
Spacing
Radius
Elevation
Motion
State
02Component Layer
Composable UI building blocks
Button
PrimaryGhost
Input
Search wells...⌘K
Card
Table
WellFieldProd
W-1024Field A8,420
W-0891Field B7,180
Sidebar
Home
Projects
AI Hub
Reports
Charts
AI Panel
AI Insight
Header
Platform
Breadcrumb
Projects/FDP/Overview
Workflow
Ingest
Analyze
Route
Act
03Product Layer
6 enterprise products on one system
Capital Projects
FDP lifecycle management247 wells
Digital Field
Field operations platform94% uptime
AI Intelligence
Seismic & reservoir AI82% prediction accuracy
AI Automation
Multi-agent workflows4 deployed agents
Eng. Tools
Engineering calculators32 tools
Analytics
Cross-asset BI platformTrade BI
04Client Theme Layer
Brand expression without divergence
EA
Energy Client A
Integrated Energy Platform
Energy Client A Platform
EB
Energy Client B
Downstream Operations
Energy Client B Platform
EC
Energy Client C
Field Services Platform
Energy Client C Platform
Decision Log

Three decisions that defined the architecture

Every system has forks in the road. These are the ones that mattered - and why we chose differently than the default.

01
Start with tokens, not components

The instinct was to copy-paste existing components and standardize them. I pushed back.

Alternative considered
Build a component kit first, retrofit tokens later
Why we chose differently

Starting with tokens forces alignment on values - color philosophy, spacing intent, motion meaning - before anyone has opinions about button border radius. Components built on shaky tokens are just a different kind of technical debt.

Result
Token-first gave us a stable foundation. When the first client requested brand customization 3 months in, we had 0 rework.
ArchitectureStrategic Decision
02
CSS variables for client theming, not component variants

The engineering default was to create separate theme components (ButtonThemeA, ButtonThemeB).

Alternative considered
Component variant system per client
Why we chose differently

3 clients × 87 components × 2 modes = 522 component variants to maintain. A single CSS variable override reduces that to 1 component, infinite clients. The theming layer becomes a data problem, not a component problem.

Result
Client B onboarded in 4 days. Client C in 3.
Engineering ArchitectureScale Decision
03
AI components as first-class citizens, not extensions

The plan was to add AI-specific states (loading, confidence, error) as modifiers on existing components.

Alternative considered
Extend existing components with AI modifier props
Why we chose differently

AI interactions have fundamentally different trust semantics. A button in error state means "try again." An AI panel in low-confidence state means "don't act on this yet." Treating them as the same pattern obscures a critical difference. AI components needed their own vocabulary.

Result
Published a Trust Design Framework alongside the component library. Used in 3 client presentations as a differentiator. Now referenced in the AI Intelligence product spec.
AI Product ThinkingUser Trust
Theming Engine

Live Demo

The same component layer responds to any client theme and light/dark mode. No layout changes. No component forks. Just token overrides.

Live Theme Demo
Switch client or mode - the same component layer, zero re-architecture
Live
Theme Controls
Mode
Client Theme
Active Tokens
Primary
#0047BA
Accent
#1F6BFF
Secondary
#D9E6FF
Aa
Font
Helvetica Neue
Enterprise App Preview - Energy Client A · Dark
EA
Capital Projects/FDP Overview/Well Performance
PS
Active Wells
247
+12
FDP Completion
78%
On Track
AI Confidence
94.2%
+2.1%
Cycle Time
18d
−22%
Production Volume
bbl/d · 8-month trend
View all →
Jul
Aug
Sep
Oct
Nov
Dec
Jan
Feb
AI Insight82% conf.

Seismic anomaly in Block 7. Pattern match suggests producible reservoir. Recommend interpretation session within 14 days.

Well Performance4 of 247 wells
Well IDFieldStatusProductionChange
W-1024MurbanActive8,420+3.2%
W-0891Field BActive7,180−1.1%
W-1156Field BDrilling
W-0734NDCActive6,890+5.4%
AI Design Patterns

12 patterns. One trust framework.

When we started adding AI features, no design system reference existed for the patterns we needed. I led the design of 12 AI-specific components grounded in a Trust Framework I wrote alongside the system.

Trust Framework - 3 core principles
Confidence is not binary

Don't show AI output as true/false. Show it as a spectrum with thresholds that map to human decisions.

<85% = show, flag for review · <60% = do not surface
State must be legible

Users need to know if AI is loading, processing, confident, uncertain, or degraded. Each state has a distinct visual treatment.

idle → processing → confident / uncertain / degraded
Handoff must be explicit

When AI recommends and a human decides, that transition must be designed. Not implicit.

"AI recommends" → "I approve" - two distinct states
6 of 12 patterns - visual reference
Confidence Band

Horizontal bar showing AI confidence %, with threshold zones (green/amber/red).

AI Confidence78%
0%60%85%100%
Risk AnalysisDocument Review
Agent State Indicator

Dot + label showing: idle / processing / confident / uncertain / degraded.

idle
processing
confident
uncertain
degraded
AI OpsPipeline Monitor
Uncertainty Visualization

Range display (not point estimate) for predicted values.

Predicted output range
142
218
~178 ± 38
ForecastingBudget AI
Human-AI Handoff

Two-state button: "AI recommends X" → "I approve".

AI recommends: Approve PO #4421
I approve ✓
Approval FlowsContract AI
Model Attribution

Small chip showing which model/data source produced a result.

Risk score: 7.4 / 10
GPT-4o · Live data2s ago
All AI surfaces
Explanation Trigger

"Why did AI suggest this?" expandable panel.

Based on historical patterns from 1,240 similar approvals. Confidence: 83%.
Risk AnalysisDocument AI
Outcomes

What actually happened

Measured outcomes 90 days after v1 launch, across 3 product teams and 3 client onboardings.

40%
faster feature delivery

After adoption, product teams shipped UI features 40% faster. Measured by sprint velocity before/after system adoption across 3 teams.

Zero
visual regressions in Q1 2023

First quarter post-launch with no design review failures due to component inconsistency. First time in 2 years.

< 1 week
per new client onboarded

Client B (4 days), Client C (3 days), a third in 5 days. Previous baseline: 6–8 weeks of UI customization per client.

Reflections

What I learned

Systems work is product work.

The hardest part wasn't the components. It was convincing product managers that investing 12 months in infrastructure would return 10x in product velocity. I learned to speak in product language - time-to-market, onboarding cost, regression risk - not design language.

AI components need a trust framework first.

You can't design AI confidence indicators without first deciding: what does confidence mean to the user? I needed to answer a product question before I could answer a design question. That shift - from "how does it look" to "what decision does it support" - is what makes AI product design different.

Governance is the real product.

A design system without adoption is a side project. The governance model - office hours, contribution protocol, deprecation policy - was what turned this from a library into infrastructure. Infrastructure is invisible when it works. That's the goal.