Code on a dark laptop screen
Home / Design Systems & Accessibility / Components & design tokens
Design Systems & Accessibility · Components & design tokens

Components and design tokens: the building blocks that keep products consistent

I design the reusable components your product is built from - with every state and accessibility behaviour defined - and the design tokens that carry colour, type and spacing decisions from Figma into code.

Component libraryEvery state definedDesign tokensFigma to codeAccessible defaults

What components and tokens are

Components are the reusable pieces a product interface is built from: buttons, inputs, selects, tables, cards, tabs, dialogs, alerts, navigation. Design tokens are named values for the decisions underneath them - colours, type sizes, spacing, radii, shadows, motion durations - stored in a format both design tools and code can use.

Together they are the foundation of a design system. Tokens make decisions once; components apply them consistently; and every screen built from them inherits the result. Figma's research found designers using a design system completed a task 34% faster than those without one.

Is this you?

Signs you need this work

01

Five kinds of button

The same component exists in several slightly different versions.

02

Hard-coded values everywhere

Colours and spacing are typed directly into code rather than referenced.

03

Design and code disagree

The Figma library and production have drifted apart.

04

Missing states

Components look fine by default but have no designed loading, error or disabled state.

05

Accessibility fixed per screen

Focus styles and labels are added case by case.

06

Theming is painful

Dark mode, white-labelling or a new brand means touching hundreds of files.

Designing components properly

A component is only reusable if it is fully defined. For each one I document:

AspectWhat's defined
PurposeWhat the component is for, and what to use instead in similar situations
AnatomyThe parts - label, icon, helper text, container - and which are optional
VariantsSizes, emphasis levels (primary, secondary, tertiary, destructive) and layouts
StatesDefault, hover, focus, active, disabled, loading, error, success, read-only, selected
BehaviourKeyboard interaction, focus management, responsive behaviour, motion
AccessibilityContrast values, accessible name, role, screen-reader output, target size
Content rulesLabel length, capitalisation, when to use icons, error wording

The focus and error states deserve particular care. WebAIM's 2026 analysis of the top million home pages found missing form labels on 51% and empty buttons on 30.6% - problems that a properly specified input and button component prevent everywhere at once.

Design tokens: decisions in a shareable format

Tokens turn design decisions into data. Instead of "#E2480A" scattered through the code and design files, you have a name - color.action.primary - that points to a value. Change the value once and every use updates.

Tokens have also become a standard. On 28 October 2025, the W3C Design Tokens Community Group announced the first stable version of the Design Tokens specification - a vendor-neutral format for sharing tokens between design tools and code, with support for theming and modern colour spaces.

I structure tokens in tiers so they stay manageable:

TierExampleUsed by
Primitiveorange.600, space.4, font.size.300Only by other tokens
Semanticcolor.action.primary, color.text.secondary, space.stack.mdComponents and layouts
Componentbutton.primary.background, input.border.errorSpecific components where needed

Semantic tokens are where accessibility is protected: text tokens only exist for colour pairings that meet WCAG 2.1 contrast - 4.5:1 for normal text, 3:1 for large text - so failing combinations are hard to use by accident.

Themes and multiple brands

With semantic tokens in place, themes become a matter of swapping values rather than rebuilding components:

  • Light and dark modes, each with its own tested contrast.
  • White-label or multi-brand products, sharing components but not colours.
  • Density modes for data-heavy screens, adjusting spacing tokens.
The process

How I build components and tokens

  1. 01

    Inventory

    Collect every UI element and value in use; find duplicates and near-duplicates.

  2. 02

    Define foundations

    Primitive and semantic tokens for colour, type, spacing, radius, elevation, motion.

  3. 03

    Test colour

    Measure every text and UI pairing against WCAG before approving tokens.

  4. 04

    Design core components

    The most-used components first, with every state and behaviour.

  5. 05

    Sync with code

    Tokens exported for engineering; components mapped to the codebase.

  6. 06

    Document and release

    Usage guidance, changelog and migration notes for teams.

Where to start

Most products get the most value from a small core: colour, type and spacing tokens, then buttons, inputs, selects, checkboxes and radios, tables, alerts, dialogs and tabs. These appear on almost every screen, so fixing them fixes a large share of the product. Expand from there based on usage.

What you get

01

Token set

Primitive, semantic and component tokens in a standard format.

02

Component library

Core components in Figma with all variants and states.

03

Component specs

Anatomy, behaviour, accessibility and content rules for each.

04

Contrast table

Every approved pairing with its measured ratio.

05

Code mapping

How tokens and components map to your codebase.

06

Migration plan

How to move existing screens onto the system.

Frequently asked questions

Which format should our tokens use?

The W3C community group's stable Design Tokens format is a good default because tools increasingly support it. Your build tooling can transform tokens into CSS, iOS, Android or other outputs.

Do we need to rebuild our components from scratch?

Rarely. Most teams consolidate existing components, fill in missing states and accessibility behaviour, and connect them to tokens.

Can we use an existing component library?

Yes. Tokens and documentation can sit on top of an established library; the work is defining your decisions and adapting components to them.

How many components does a system need?

Start with the few dozen used on almost every screen. Coverage grows with real product needs, not in advance.

How do tokens help accessibility?

By making accessible choices the default. If text tokens only exist for tested pairings, and component states use tokens with known contrast, failures become much harder to introduce.

Sources

Every statistic in this page links to its original publisher. Figures were checked against these sources on September 29, 2026.

  1. Measuring the value of design systems - Figma
  2. The WebAIM Million, 2026 report - WebAIM, 2026
  3. Design Tokens specification reaches first stable version - W3C Design Tokens Community Group, October 2025
  4. Understanding SC 1.4.3: Contrast (Minimum) - W3C
Let's solve something

Components multiplying faster than you can maintain them?

Let's consolidate them into a system with tokens and clear states. Book a 30-minute call.

Book a 30-min call ↗