Guidelines

How the LUSTER design system is structured — the three-tier token architecture, the switchable theme axes, and the mode-by-mode export that turns them into ready-to-use CSS.

Three-Tier Model

Every value flows through three layers — a raw primitive is given meaning, then applied to a component. Using border-radius as an example:

border/radius/8 = 8 --borderRadiusSm Component Radius / button

Tier 1 · Foundation (Option)

Raw primitive values with no semantic meaning — the building blocks, held in the Option / Options collections.

e.g. border/radius/8 · Spacing/16 · shadows/4

Tier 2 · Semantic

Named tokens that reference a foundation value and add intent — what it is for. Held in the Semantic collections (and theme layers).

e.g. --borderRadiusSm · Spacing/5xl · shadow/lg

Tier 3 · Component

Component-specific tokens that bind a semantic value to a real component, often with switchable modes. Held in the Component collections.

e.g. Component Radius / button · Component Shadow / section

Token Collections

Six token families, each implemented as three Figma variable collections — one per tier. Counts are the live variable totals in the LUSTER file.

FamilyFoundation inputsTier 1 · FoundationTier 2 · SemanticTier 3 · Component
ColorBg · Text · Border · Shadow colorsOptions Color · 200Color Theme · 342Component Brand · 210
EffectsShadow-x · Shadow-y · BlurOption Effects · 8Semantic Effects · 8Component Shadow · 3
DensityMargin · Gap · PaddingOption Density · 17Semantic Density · 16Component Density · 65
RadiusBorder RadiusOption Radius · 8Semantic Radius · 8Component Radius · 18
GlobalBorder WidthOptions Global · 14Semantic Global · 14Component Global · 15
TypographyFont family · size · weight · lineHeightOptions Typography · 20Typography Theme · 30Language Theme · 64

Theme Axes

LUSTER themes on seven independent axes. Each is a switchable mode in a Figma collection — flip one and every bound component updates at once.

AxisModesWhat ChangesCollection
BrandAmber · Diamond · OpalBrand colour identityComponent Brand
AppearanceLight · DarkSurface & text coloursColor Theme
LanguageEN · ARDirection (LTR/RTL)Language Theme
TypographySerif · Sans SerifFont family pairingTypography Theme
RadiusSquare · Round · PillsCorner personalityComponent Radius
ElevationFlat · Subtle · Default · RaisedShadow depthComponent Shadow
DensityComfortable · CompactSpacing tightnessComponent Density

Brand & Appearance

Three brand identities (see Colors) — and each brand ships in both Light and Dark appearance modes via the Color Theme collection.

Text
Diamond
BG #916DFF · Text #F2EDFF
Text
Amber
BG #CDA376 · Text #F9F4EE
Text
Opal
BG #5E99F8 · Text #EBF3FE

Language & Typography

Two independent axes: the Language Theme switches script and direction (EN/LTR ↔ AR/RTL), and the Typography Theme switches the font pairing (Sans Serif ↔ Serif). English pairs Inter / Domine; Arabic pairs Cairo / IBM Plex Sans Arabic.

Multi-Theme Design System
Language Theme
Typography Theme
Inter · LTR

Radius Modes

Square (0), Round (per-component) and Pills (up to 40px). Full map on Border Radius & Width.

Radius Theme
--borderRadiusNone · 0px

Density Modes

The Component Density collection tightens or relaxes component padding and spacing. Comfortable suits spacious desktop layouts; Compact suits data-dense views.

Density Theme
Comfortable · 16 / 32 px

Elevation Modes

The Component Shadow collection composes offset + blur from the shadow scale into four elevation modes. See Elevation & Shadows for the full scale.

Elevation Theme
Flat · none

Export is driven by the theme structure: each axis bundles its Foundation → Semantic → Component tiers and exports one CSS file per mode. Twenty files cover every combination.