Design tokens

Reva's platform-agnostic design tokens — OKLCH foundation palettes, numeric scales, and a semantic colour theme with light and dark modes.

Design tokens are the single source of truth for Reva's visual language. They live in @reva/design-tokens as platform-agnostic W3C DTCG JSON, and feed every surface: web CSS variables and Tailwind v4 utilities for @reva/ui, a flat table for the React Native client, and a Figma variables manifest.

Every value on these pages is read straight from the token source at build time, so the documentation can never drift from what ships.

lightAccent
Portfolio balance
Updated moments ago
PrimarySecondary
ErrorSuccessWarningInfo
Search clients…
darkAccent
Portfolio balance
Updated moments ago
PrimarySecondary
ErrorSuccessWarningInfo
Search clients…

Two layers

Tokens are organised into two layers.

  • Foundation — raw primitives with zero design intent: OKLCH colour palettes plus numeric scales (spacing, sizing, radii, typography, shadows, and more). Mode- and role-agnostic.
  • Semantic — intent roles (bg/canvas, primary/solid, fg/muted, border/focus, …) that reference foundation tokens. Colour is the only mode-keyed concern: a light and a dark file share an identical key tree and differ only in which foundation stops they point at.

Colour format

Colours are authored in OKLCH (oklch(L% C H)), a perceptually-uniform space that keeps lightness and chroma predictable across a ramp. The web build keeps oklch(…) values; the TypeScript and Figma outputs collapse to hex / rgba.

How tokens reach your UI

SurfaceOutput
@reva/ui (web)Tailwind v4 @theme variables → utilities (bg-canvas, text-fg-muted, bg-primary-solid; intent finishes: translucent bg-primary-subtle, opaque bg-primary-subtle-solid)
Non-Tailwind webPlain :root / .dark custom properties
React Native clientFlat TypeScript token table
FigmaVariables manifest synced via the design-tokens plugin

Explore

On this page