Skip to main content
A Singapore Government Agency Website

Tokens

Every token this site uses, in one place: colour, type, spacing, radius, and motion. A worked example of the token set a DESIGN.md points to.

In the catalogue

One page, every token. Use the token name, never the value (TOK-1).

Your product's tokens come from its DESIGN.md. Where DESIGN.md defines none, the codebase's theme tokens decide. Where neither does, the shadcn and Tailwind defaults apply. The tables below are this site's tokens, from its DESIGN.md and app/globals.css.

Colour

TokenRole
--backgroundThe page canvas.
--surfacePanels and cards sitting on the page.
--foregroundPrimary text ink.
--muted-foregroundSecondary text — darkened from zinc-500 to clear AA on the muted fill.
--borderHairline dividers and default component borders.
--mutedActive fill and code background.
--accentHover fill.
--border-strongHover border.
--prose-bodyBody text ink inside long-form content.
--ringFocus ring colour.
TokenRole
--successSuccess text — Radix grass-11.
--success-9Success solid fill — Radix grass-9.
--success-subtleSuccess badge background.
--success-mutedSuccess badge border.
--warningWarning text — darkened past Radix amber-11 to clear AA on a tinted background.
--warning-9Warning solid fill — Radix amber-9.
--warning-subtleWarning badge background.
--warning-mutedWarning badge border.
--dangerDanger text — Radix red-11.
--danger-9Danger solid fill — Radix red-9.
--danger-subtleDanger badge background.
--danger-mutedDanger badge border.

See Colour for the Radix ramps and where each product's primary comes from.

Type scale

StepSizeFont
Display48px (also 60 / 72 / 96)Plus Jakarta Sans 600
Heading 130pxPlus Jakarta Sans 600
Heading 224pxPlus Jakarta Sans 600
Heading 320pxPlus Jakarta Sans 600
Body Large18pxInter 400
Body16pxInter 400
Body Small14pxInter 400
Caption12pxInter 500
Label12pxInter 600

See Typography for font roles and usage rules.

Spacing

StepSize
14px
28px
312px
416px
520px
624px
832px
1040px
1248px
1664px
2080px
2496px

The scale continues to 112 and 128px.

See Spacing and radius for the full spacing and radius specimens.

Radius

TokenValue
rounded-none0px
rounded-xs2px
rounded-sm4px
rounded-md6px
rounded-lg8px
rounded-xl12px
rounded-2xl16px
rounded-3xl24px
rounded-fullcalc(infinity * 1px)

Motion

TokenValue
--motion-fast120ms
--motion-base200ms
--motion-slow300ms
--motion-story600ms
--ease-outcubic-bezier(0.215, 0.61, 0.355, 1)
--ease-in-outcubic-bezier(0.645, 0.045, 0.355, 1)

Durations and easings are never hardcoded — always reference the token (MOT-2 ⚑). See Motion for the raced specimen.