Skip to content
Skip to case study
Discount Tire · Design systems · 2022-2024

Traction.

Leading a design system
across 16+ workstreams.

I led the move from fragmented Sketch libraries to Traction: a reusable Figma library built with engineering in four weeks, then refined and expanded across 16+ workstreams.

Design meets engineering
Figma styleprimary/brand_redCode tokencolor.red.500
Project at a glanceDiscount Tire / Traction design system
My role
Design systems leadStrategy, architecture, naming & adoption
Core team
3 designers · 1 front-end engineerDesign and engineering built the shared foundation together
Scope
Consumer, enterprise & internalShared styles, components and guidance across product teams
Tools across the project
  • Figma
  • Supernova
  • Storybook
4weeks

From audit to core library

Reusable styles and components; docs followed.

16+

Workstreams supported

Consumer, enterprise and internal tools.

~40%

Lower Figma library memory

Component properties and token refinement.

~50%

Fewer ad-hoc design requests

First month after docs vs. after MVP.

Why the system needed to change

Repeated decisions.
Inconsistent foundations.

Years of independent product work had left colors, type and components inconsistent. The move from Sketch to Figma was an opportunity to establish shared standards, rather than carry that fragmentation into a new tool.

Legacy Sketch symbols
500+
Versions of brand red
37
Competing body sizes
13 / 15 / 17px
Scope and delivery

Four weeks to align the teams
and deliver the core library.

The next engineering roadmap needed a usable core. I scoped the MVP around reusable styles and components, brought engineering into the architecture decisions and deferred documentation until after release.

Delivery

Run the audit and build together.

Parallel work gave the team a usable core sooner. The tradeoff was a focused release, followed by refinements from real use.

Partnership

Agree on the structure early.

I involved engineering early and mapped naming conventions to fit how both teams worked.

Adoption

Plan beyond the first release.

After launch, we expanded essential components, refined states and developed documentation and contribution guidance.

Delivery strategy

Why work in parallel?

Compare the sequencing
Start4-week targetLater
Overlapping work, earlier feedback.
Click a phase to keep its details open. Sequencing is illustrative.
The chosen approach4weeksA usable core, ready for the team.
Delivery decision

Deliver the core in four weeks.

Audit Sketch and build Figma together. Deliver the core in four weeks; refine gaps after release.

What we built / Shared foundations

Replace individual choices
with a shared vocabulary.

A common palette, Lato type scale and icon families gave teams consistent starting points. Naming colors by their purpose made those foundations usable in an interface.

01 / Color values

From values to semantic roles.

Choose a foundation color to see how a semantic role defines its use.

Choose a primitive
Semantic role$color-text-brandAlias: Red 60
Role applied to textReady for the next step.

Shared values, applied through semantic roles.

$color-text-brand

Brand red → $color-text-brand

02 / Typography

A consistent type hierarchy.

1.125Major Second
Traction / Typography specificationLive specimen
Preview a type role
Made for real work.
View original specificationsTypography reference
Typography examples from the original case study
RoleFontSizeWeightContext
Heading XLLato36px9004K monitors and large hero
Heading LLato28px700Desktop section titles
Heading MLato22px700Tablet headers
Body defaultLato16px400Global body copy
CaptionLato12px500Associate iPad tools
03 / Iconography

Find by intent.

400+Custom icons
Traction / Iconography specificationLive examples
Actual size / 1×
Find a location
24px example in an interface
24px master · 2px strokeConstruction reference / 4×
Compare the size variants

Navigate / 24px selected

Interactive examples are reconstructed. The original CVM and WOM sheets show the project's icon drawings and optical adjustments.

Resolving the naming conflict

Two conventions.
One connected system.

Designers needed names they could browse in Figma; engineers needed names that fit the codebase. I mapped the two instead of asking either team to abandon its conventions.

Follow the red value below: a foundation supplies the color, a semantic role names its purpose, and a component uses it. The MVP implemented this structure through Figma styles.

Follow a value into the interface.
Explore a layer
Values → roles → components.Select a floating layer or use the controls above.
Apply the same primitive to
Illustrative live preview
Made for real work.

Shared styles. Consistent intent.

Same primitive, applied to the button.

ValueRoleComponent
Project naming reference
Figma color styleprimary/brand_red
Engineering primitivecolor.red.500
From the library to implementation

Agree on behavior.
Carry it into code.

Figma components connected to Storybook so design and engineering could review the same variants and states. Change a shared control below to see both representations update together.

One component, two connected references

A shared component reference.

Connected examples
Shared variant
Shared state
FigmaComponent reference
VariantPrimaryStaterestLabelView options
StorybookComponent story
Illustrative story args
variant: "primary" state: "rest" color: "red" icon: true
Original red-primary mapping
button/primary/red/defaultbutton.primary.background.default
Shared reviewVariantsIntended statesToken usage

Reconstructed Figma and Storybook previews share controls with the component playground.

The working library
What real use revealed

Component coverage
was only the starting point.

The MVP made 95% of required components available. We released to designers first, keeping analysts, researchers and leadership involved.

Availability did not mean every behavior was defined. In the first month, we resolved bugs and missing button states, including secondary focus and inactive behavior that engineers needed to build confidently.

Delivery journey

From first release to ongoing use.

  1. 4 weeks

    Release the core

    Reusable styles and components, aligned with engineering.

  2. First month of use

    Refine the behavior

    Resolve bugs and specify missing interaction states.

  3. Beyond the MVP

    Support ongoing adoption

    Expand essentials, document usage and establish shared review.

Component variants and states

Define the behavior of every state.

States refined after launch
Variant
Preview state
Primary color
Live preview · Try the button
Choose a state or interact with the preview.
<Button variant="primary" state="rest" icon />

Reconstructed component example. Original Figma artifacts are available alongside it.

Supporting adoption after the MVP

Make the guidance
part of the library.

We developed documentation for designers, engineers and product teams, covering usage, implementation and contributions. Ad-hoc design requests fell by about 50%, comparing the first month after documentation with the first month after MVP launch.

Find guidance for
TractionShared guidance
Library structure / Foundations

Choose by intent

Use the Text, Icon, Border and Brand groups for production work. The shared naming structure connects the design styles to their code references.

Familiar categories

Navigation concept illustrating the shared structure and audience-specific guidance.

What the survey showed

Designers saw the value.
The feedback guided our next steps.

Five of six designers said reuse sped up their work. All six rated support for accessible design and token use Good or better; five rated consistency Good or better.

5/6

agreed reusing components sped up their workflow.

Reuse / agreement question
3Strongly agree2Agree1Neutral

Designer experience

Six responses · Mean /5 · Good or better /6
Designer experience: all ratings, mean score and number who rated each area Good or better. Six responses per question.
AreaPoorFairGoodVery GoodExcellentMean /5Good or
better
Consistency011134.005/6
Accessible design002134.176/6
Token use003123.836/6
Asset discovery003123.836/6
Contribution111033.504/6
Requesting changes011223.835/6
Overall experience011223.835/6
Design efficiency022113.174/6

Six designer responses per question. Self-reported ratings; not timed delivery data.

What we took forward

Keep the foundations.
Improve the path to using them.

Reuse and the shared foundations were working. Contribution and discovery feedback helped identify where guidance needed to be clearer.

We reorganized Supernova to mirror Figma and clarified contribution guidance, building on the value designers already saw in the library.

Supporting 16+ workstreams

Let teams extend.
Keep the library coherent.

Product teams proposed additions for their needs. The core team reviewed quality, token alignment and accessibility before those additions entered the shared library. A clear path let teams contribute while keeping shared standards intact.

Contribution model

From product need to shared pattern.

Try a product context

Start with a product need.

Describe the use case and check existing patterns before proposing an addition.

Proposed useVehicle selector

Help a customer find tires that fit.

Core review checks
  • Quality
  • Token alignment
  • Accessibility

Illustrative workflow and vehicle-selector example.

What I carry forward

A design system needs
ongoing ownership.

I would carry forward three priorities: agree on how teams work together, scope the first release carefully and improve the system through real use.

Discount Tire / Design system

Traction.

An illustrated sequence assembles a button, typography, icons and product patterns into a shared system. The case study opens automatically after six seconds. Press Escape or select Skip intro to continue immediately.

From fragments to a shared foundation.