1. 15Design tools, tokens, and implementation
  2. 16CSS architecture and ownership
  3. 17Evolving a design system without blocking products

Making design operational

15

Design tools, tokens, and implementation

Design decisions remain reliable when tools, tokens, and implementation preserve one shared vocabulary.

By Eyal Ellenbogen September 1, 2026 3 min read

The previous chapters built a clear path from UI primitives to vertical feature modules composed by an application host. In code, the boundaries are drawn: features depend on design tokens, views render from prepared models, and the host wires the live adapters.

That architecture is only half the system. The interface our users touch in production originates in design tools long before it takes shape in TypeScript and CSS. When the bridge between those disciplines relies on manual handoffs and copied hex values, our visual system quietly diverges from the code that represents it.

Making design operational turns visual decisions into reliable software artifacts. The goal is a unified pipeline where an approved design choice flows from design tools into versioned packages that our applications can consume.

Tokens are a shared contract

Design tokens give canonical names to cross-cutting visual decisions: color, typography, spacing, border radius, elevation, and motion. A token such as color.text.critical represents more than a raw value; it expresses a shared intent for how a critical state communicates.

Keeping that intent coherent means treating tokens as shared contracts rather than values to copy by hand. When a design variable maps directly to a CSS custom property or TypeScript constant in our repositories, both disciplines work from the same source of truth. We can focus reviews on whether a visual hierarchy works, rather than verifying hand-transcribed values.

Design tool

Figma variable

Token

color.text.critical

Implementation

CSS variable

Primitive

Consuming component

A design variable keeps one name as it crosses from the design tool into a versioned token, an implementation artifact, and the primitive that renders it.

Turn design changes into code proposals

A reliable delivery pipeline extracts approved tokens and icons from the design environment and publishes them as a versioned package containing CSS variables, TypeScript constants, and optimized SVG primitives. Our applications depend on that package rather than maintaining loose exports or ad-hoc styling variables.

A versioned pipeline

Design source
Approved token or icon changes in the design tool
Transformation
Automation opens a pull request with generated code artifacts
Versioned release
Review produces a semantic version for consumer applications

Semantic versioning protects consumers: new tokens arrive in minor releases, while renames and removals trigger breaking major versions with documented migrations.

Keep routine sync out of the feature backlog

In a healthy system, our designers don’t need to ask engineering for a sprint ticket just to update an established color or add a new icon.

Broad visual shifts like dark mode still call for planning and shared review. But day-to-day token updates—nudging a spacing value, refining a hover state, or adding an icon—should flow directly into automated pull requests. Routine visual maintenance happens continuously without competing against product roadmaps.

Tools provide the mechanism, not the architecture

Tools like Tokens Studio and Style Dictionary can automate the transformation from Figma variables to CSS properties, but they are not the architecture itself.

The architecture rests on the agreements behind them: which values belong in the shared contract, where the source of truth lives, and how releases communicate change. When those agreements are clear, the design vocabulary has a dependable, versioned route into every application we build.