Case study · Design systems & governance

Building ACV’s Design System From the Ground Up

When I started at ACV there was no design system. Designers built screens by copying other screens, or rebuilding patterns that already existed somewhere else in the product. Every new experience was a fresh act of recreation — and as the team grew from 2 to 12, the cost of having no shared foundation compounded fast.

A system isn’t really about components. It’s a shared language so a team’s work coheres — and a governed process so it stays coherent as the team and the product grow.

Product Design Manager — ACV Auctions · One of the first designers on the team · Founded & scaled over multiple years

The gap: every screen was a fresh act of recreation

That works when you’re two designers. It stops working fast. The same component existed in five slightly different forms, screens drifted apart, and consistency depended entirely on everyone remembering how everyone else had done it.

No shared foundation.Designers copied from other screens or rebuilt patterns that already lived somewhere else in the product.
~1 year of duplication.Five or six full experiences built with no shared components — duplicating screens and patterns as we went.
The cost scaled with the team.From 2 to 6 to 12 designers, the same component kept fragmenting into slightly different forms.
An agency instinct.I came from a creative agency where every project starts from a brand guide — so I felt us drifting away from “looking like one designer” before it became a crisis.
So I built the first version. It was scrappy — not the governed, multi-library system it is today — but it was the seed: a shared place to define the patterns we kept recreating, so our work could finally cohere.

The architecture: one foundation, seven brands on top

That scrappy v1 matured into a real system with a clear hierarchy — a shared foundation with brand-specific layers, so one design system can serve many brands without flattening their individual identities.

Core
Primitives
The source of truth — core atoms and base tokens every other layer inherits from.
Shared
Shared assets
Logos, icons, and imagery used across every brand.
Brand
Themes
A theme per business line — ACV, MAX, SIA, ClearCar, Capital, and more.
Code
Shared components
The coded component layer (Vue) that engineering consumes directly.
Page
Shared patterns
Assembled page-level and template patterns built from components.
Ship
UI
The surfaces designers actually ship to dealers.
7
business lines served by one system
7 + 1
libraries — one per brand, plus a shared global
6
layers from token to shipped surface
The design system structure diagram
The system’s hierarchy — primitives and tokens at the core, a theme per business line, then shared components, patterns, and the UI designers ship.

The foundation: color by role, not by hand-picked hex

Underneath the components sits a deep token and atom layer — everything built up deliberately from atoms → molecules → components → patterns.

Full tonal ramps (50–1000).Every color carries a complete ramp, so light and dark surfaces stay consistent.
MD3 semantic color roles.Primary, secondary, and tertiary — each with container and “on” variants — so color is applied by role, never a one-off hex.
Brand vs. system palettes.Brand palettes carry expression; system palettes carry functional states like success, info, and warning.
A complete scale.Type (Roboto), spacing, elevation, grids, and iconography — the whole kit, versioned to its “2.0.”
The system palette
System palette — functional roles and states.
The brand palette
Brand palette — expression per business line.

Governance: a living system, not a one-time build

A design system is only as good as the process that maintains it. I helped build an intake-to-publish pipeline so the system stays coherent as it grows.

Request

a new component need comes in

Validate

does it exist? meet requirements? scale across products?

Design all states

the team mocks the component and every state

Build & test

reviewed with dev, built in a sandbox, tested

Publish

documented, signed off, shipped to the Design Kit, and communicated out

The result is a living, governed system. On an ongoing basis, each team updates roughly 1–2 components per month as requirements evolve.
The design system governance pipeline
The intake-to-publish governance flow that keeps the system healthy as it scales.

The hardest component: the auction card

If one component proves why a real system matters, it’s the auction card — the most complex, most heavily customized component on the platform, purpose-built for ACV’s users and the business goals behind every auction.

Touches 8 experiences

One anatomy aligns information, structure, and layout across every auction card in SRP and My ACV.

Updated quarterly

Maintained by multiple designers against new requirements, on a governed update path.

Desktop & mobile guidelines

A documented anatomy: vehicle details, auction details, price/status, photo section, and location.

Six real states

SRP, Active Selling, Pending Proxy, Saved Auction, With Offer Reminder, and My Inventory.

The general auction card and its states
A component this complex, touched by this many hands across this many surfaces, is exactly the thing that fragments without a system. Giving it one anatomy and a governed update path is the clearest proof of what the system does.

The impact — real and measured

The system’s value shows up in numbers that are measured, not aspirational.

20% → 11%
component detach rate — lower is healthier
60–70%
faster to build a new screen (3–5h → 1–2h)
78+
governed components, versioned and iterated
2 → 12
designers the system let the team scale to
That last number is the one I’m proudest of: the system is what allowed the team to grow. Consistency at speed, across a dozen designers and seven business lines, doesn’t happen by luck — it happens because there’s a foundation holding it together.

A note on detaching

In Figma, an instance stays linked to its main component and inherits updates automatically. Detaching breaks that link — the instance can then be edited freely, but it no longer receives upstream changes, so it drifts from the source of truth.

A high detach rate means

  • The system doesn’t cover real needs
  • Designers break off to rebuild locally
  • Work drifts from the canonical source
  • Consistency erodes over time

A low detach rate means

  • The component covers real needs well
  • Designers trust the canonical version
  • Updates propagate everywhere automatically
  • The system earned its adoption

Every detach is a small bet against the system — watching that number fall from 20% to 11% was the strongest signal it was working.

Where it’s going: AI-assisted design

The newest chapter is exploring what a design system means in the age of AI. We’re experimenting with building components using Claude and maintaining a Claude Design library designers can pull from.

Need a component

a designer needs, say, the auction card

Pull from the library

Claude Design pulls the defined ACV component

Assemble on-brand

a full prototype from pre-defined, trustworthy patterns — idea to prototype, fast

This is an early direction, not a production practice — we’re actively proving it out. But it points at where well-governed component libraries get genuinely powerful: when the patterns are defined and trustworthy, an AI tool can assemble with them, and the leap from idea to on-brand prototype gets dramatically shorter.

In short

  • Saw the gap early — an agency instinct to make a body of work look like one designer made it — and built the scrappy first system before fragmentation became a crisis.
  • Grew it into an architecture: a 6-layer hierarchy, 7 + 1 libraries, and a token foundation built atoms → molecules → components → patterns.
  • Made it governed: an intake-to-publish pipeline and ~1–2 component updates per team per month.
  • Tamed the hardest component — the auction card, across 8 experiences and six states — with one anatomy and one update path.
  • Earned adoption: detach rate from 20% to 11%, new screens 60–70% faster, and a team that scaled from 2 to 12 without fragmenting.
Back to work All figures here are real and measured. The AI-assisted workflow is the early, experimental direction it currently is.