Skip to content

Case study · Design system · Desktop web

The system behind the showroom floor.

A production design system, Steer v1.0, and the dealership analytics surfaces built on it. Token-first, state-complete, and handed to engineering without a spec question.

Client
ReadywireDealership operating system
Industry
Automotive SaaSDealership back-office
Role
Product DesignerDesign system & UI
Year
2025Desktop web
Call Analysis: imported prospects, call summary, call activity gauge, first-interaction chart and team performance
Metric card
Summary card
Donut
Alert card
Gauge card
Bar chart
Table / Dense

Call Analysis · 10 library parts, 0 one-offs

.01

Context

A platform this broad cannot be designed screen by screen.

What Readywire does. Readywire is the operating layer for automotive dealerships: calls, leads, service, insurance, used-car inventory and field reps all run through one platform.

Why it needed a system. Features were shipping faster than the interface language could absorb them. Every new module re-invented its own buttons, spacing and status colours.

The brief was not “make it look better.” It was to build the foundation that lets six product areas look and behave like one product, and keep doing so after I am no longer the person drawing every screen.

Before: six modules, six interface languages

Call Ops

166

Connects today

Open Call Ops
Leads

642

Imported leads

Open Leads
Service

38

Open job cards

Open Service
Insurance

12

Renewals due

Open Insurance
Used Cars

57

In inventory

Open Used Cars
Track Rep

10/12

Reps online

Open Track Rep
.02

Scope

Built from the token up, then applied in anger.

Foundations first, components second, product surfaces third, so every screen that followed was an assembly job, not a drawing job.

  • 0

    Colour tokens

  • 0

    Component variants

  • 0

    Type styles

  • 0

    Elevation levels

.03

Foundations · Colour

Nine ramps. One logic.

Every hue resolves on the same ten-step curve, so swapping a semantic role (info to warning, success to critical) never changes contrast behaviour.

  • Primary
    10
  • Green
    10
  • Red
    10
  • Yellow
    10
  • Blue
    10
  • Purple
    10
  • Teal
    10
  • Neutral
    16
  • Alpha white
    12
  • Alpha black
    12

110 tokens · hover any swatch for its name

03 — Colour logic

Orange is the only loud colour.

A dealership dashboard is wall-to-wall data. If everything can be branded, nothing reads as urgent.

  • Primary ×10

    Reserved for the single primary action and live state. Never decoration, never a large fill.

    Live
  • Green / Red ×20

    Carry meaning only: target met, target missed. Never used as a brand accent.

    Target metTarget missed
  • Blue / Purple / Teal ×30

    Categorical series in charts, where hues must stay distinguishable but none should dominate.

  • Yellow ×10

    Warning and pending states, kept distinct from the primary orange at every step of the ramp.

    Pending callback2h no callback
  • Neutral ×16

    The widest ramp in the system, because most of the interface is structure: surfaces, dividers, table rows, disabled text.

    Ayesha38
    Leila29
    Ravi33
  • Alpha ×24

    Overlays, scrims and hover washes that sit over unknown backgrounds without inventing a new opaque token.

    Dialog
.04

Foundations · Typography

A scale sized for density.

Geist, cut to eight steps across three roles: heading, paragraph, label. Every step locks size, weight, line-height and tracking, so a table row stays legible without anyone re-deciding the type.

Every style below updates as you type44/80
  1. Heading 136 / SemiBold 650 / 64 / −0.3

    Cook up an exquisite deal, before you blink.

  2. Heading 232 / SemiBold 650 / 56 / −1.4%

    Cook up an exquisite deal, before you blink.

  3. Heading 324 / SemiBold 650 / 32 / −0.2

    Cook up an exquisite deal, before you blink.

  4. Heading 420 / Medium 550 / 28 / −0.2

    Cook up an exquisite deal, before you blink.

  5. paragraph-lg16 / Regular 450 / 24 / −0.2

    Cook up an exquisite deal, before you blink.

  6. paragraph-md14 / Regular 450 / 20 / 0

    Cook up an exquisite deal, before you blink.

  7. paragraph-sm12 / Regular 450 / 16 / 0

    Cook up an exquisite deal, before you blink.

  8. captions11 / Medium 550 / 14 / 0

    Cook up an exquisite deal, before you blink.

.05

Foundations · Elevation

Depth is a token, not a judgement call.

Seven levels, Shadow-0 through Shadow-600, so a dropdown over a chart over a modal never has to argue about which one sits on top.

  1. Shadow-0
  2. Shadow-100
  3. Shadow-200
  4. Shadow-300
  5. Shadow-400
  6. Shadow-500
  7. Shadow-600
.06

Components · Buttons

119 button variants, drawn, not described.

Four variants (default, primary, tertiary, plain), three tones (default, critical, success), three sizes and seven states, every one drawn rather than inferred.

Steer buttons: four variants in seven states
resthoverfocusactivepresseddisabledloading
default
primary
tertiary
plain
n/a
Variant
Tone
Size

Hover, press and click it: the states are the library's, not a recording.

.07

Components · Badges

80 badges, because status is the product.

Tones across strong and subtle weights, with optional leading or trailing icon and two sizes. On a dealership floor the badge is what a manager actually reads: live, missed, converted, idle.

Today on the floorLive
Five leads and their status, updating live
LeadModelStatus
Srikanth RaviBrezzaLive
Nisha SharmaSwiftMissed
Priya KapoorBalenoConverted
Rohan DesaiAltoIdle
Aarav MehtaCelerioPending
Subtle+ iconStrong+ iconTrailingSuccessLabelLabelLabelLabelLabelInfoLabelLabelLabelLabelLabelWarningLabelLabelLabelLabelLabelCriticalLabelLabelLabelLabelLabelMagicLabelLabelLabelLabelLabelNeutralLabelLabelLabelLabelLabel

6 colour tones + enabled and disabled · subtle or strong · two sizes · optional icon = 80 badges

.08

Components · Inputs

Seven states each, including the two everyone forgets.

Text and multiline fields both carry rest, hover, active, focus, disabled, read-only and error, plus a borderless variant, prefix and suffix slots, segmented steppers and an inline error component.

Lead nameEdit
Srikanth Ravi
As on the booking form13/120

State: Rest

  • Rest
    Lead nameEdit
    Srikanth Ravi
    As on the booking form13/120
  • Hover
    Lead nameEdit
    Srikanth Ravi
    As on the booking form13/120
  • Active
    Lead nameEdit
    Srikanth Ravi
    As on the booking form13/120
  • Focus
    Lead nameEdit
    Srikanth Ravi
    As on the booking form13/120
  • Disabled
    Lead nameEdit
    Srikanth Ravi
    As on the booking form13/120
  • Read-only
    Lead nameEdit
    Srikanth Ravi
    Synced from the CRM13/120
  • Error
    Lead nameEdit
    Srikanth Ravi
    Enter the lead's full name13/120
.09

System → Product

Then the system had to survive contact with real data.

Five dealership-facing surfaces, assembled entirely from the library: dense tables, live call states, multi-series charts, map views and overlay panels, with no one-off styling introduced along the way.

  1. 01

    Home

    The dealership’s opening view: the shell every other surface inherits.

  2. 02

    Call Analysis

    Call volume, incoming and outgoing ratios, per-rep performance.

  3. 03

    Lead Performance

    Lead flow, manager interactions, booking commitments, active-lead overlays.

  4. 04

    Location

    Field-rep tracking and trip summaries, a surface type the library was never designed for.

.10

The shell every other surface inherits.

Home sets the frame: sidebar navigation across Call Ops, Leads, Service, Insurance, Used Cars, Track Rep and Contacts. Get this wrong and every module inherits the mistake.

Neutral-1600 → Neutral-700 · structure only

Live product screen
Home
Readywire Home: dealership summary cards, module tabs and the imported leads table
.11

Where the floor gets measured.

Call analysis reads volume, incoming and outgoing ratios and per-rep performance. Categorical hues separate the series; green and red stay reserved for target met and target missed.

Categorical hues · semantic green / red

Live product screen
Call Analysis
Call Analysis: imported prospects, call summary, call activity gauge, first-interaction chart and team performance
.12

The densest surface in the product.

Lead performance tracks flow and conversion: manager interactions, booking commitments and active-lead overlays. The real test of whether a sixteen-step neutral ramp was over-engineering or exactly right.

Neutral ×16 · the ramp earning its keep

Lead Performance
Lead Performance: lead drops by reason, manager interactions, task discipline and booking commitments
.13

The system stretched to a map.

Field-rep tracking and trip summaries, a surface type the library was never designed for, built without adding a single new token. That is the test of whether a system is a system.

Location · overview and route

Location Tracking
Location Tracking overview: field executives listed beside a map of their coverage areasLocation Tracking in depth: one executive's route across Karnataka with a trip summary and stops
Readywire Home on a laptop against a warm red backdrop
Home, the shell
Call Analysis on a monitor on a dark perforated shelf
Call Analysis
Lead Performance on a monitor on a stone plinth
Lead Performance
Location Tracking on a monitor in a sage green room
Location overview
Route view on a monitor beside a blossom branch
Route log
.14

Outcome

What the system actually bought them.

  1. 01

    One product, not six modules

    Call Ops, Leads, Service, Insurance, Used Cars and Track Rep stopped looking like separate tools sharing a navigation bar.

  2. 02

    Handoff without interrogation

    119 button variants and seven input states meant engineering read interaction behaviour off the file instead of out of a meeting.

  3. 03

    New surfaces, no new tokens

    The map views were assembled entirely from existing foundations: the clearest evidence the system generalises beyond what it was drawn for.

All figures shown in the product screens are placeholder data used to demonstrate layout and state, not real dealership performance data.

Next case study

A front door for rural healthcare: Anhad India's website

Read it
The Anhad India homepage on a tablet in warm afternoon light

Facing a similar problem?

Start a project