Design System
Living reference for all design tokens and UI components. Toggle the theme in the sidebar to preview both modes.
Colors
Semantic tokens
Background
Page background
Surface
Cards, panels, widgets
Inverted
Inverted background surfaces
Foreground
Primary text
Secondary
Secondary text and labels
Muted
Low-contrast fills and text
Subtle
Subtle fills and surfaces
Border Default
Default border color
Error
Error state foreground
Error Subtle
Error background tint
Success
Success state foreground
Success Subtle
Success background tint
Warning
Warning state foreground
Warning Subtle
Warning background tint
Attention
Attention state foreground
Attention Subtle
Attention background tint
Accent
Primary brand / interactive color
Accent Subtle
Soft accent tint for backgrounds / highlights
Short
Trade short side foreground
Short Subtle
Trade short side tint
Long
Trade long side foreground
Long Subtle
Trade long side tint
All palette colors
Every raw color variable defined in globals.css. Palette values are static — they don't change between themes.
Black
☀ rgba(14,14,15,1)
Grey 950
☀ rgba(17,17,18,1)
Grey 900
☀ rgba(32,32,33,1)
Grey 800
☀ rgba(46,46,46,1)
Grey 700
☀ rgba(49,49,50,1)
Grey 600
☀ rgba(65,65,66,1)
Grey 500
☀ rgba(109,109,110,1)
Grey 400
☀ rgba(153,153,153,1)
Grey 350
☀ rgba(196,196,199,1)
Grey 300
☀ rgba(213,213,214,1)
Grey 250
☀ rgba(227,227,227,1)
Grey 200
☀ rgba(233,234,235,1)
Grey 150
☀ rgba(245,246,247,1)
White
☀ rgba(255,255,255,1)
Red 500
☀ rgba(247,90,92,1)
Red 400
☀ rgba(255,114,116,1)
Red 500 / 16%
☀ rgba(247,90,92,0.16)
Orange 500
☀ rgba(255,147,52,1)
Orange 400
☀ rgba(255,163,83,1)
Orange 400 / 16%
☀ rgba(255,147,52,0.16)
Lime Yellow 500
☀ rgba(211,227,93,1)
Lime Yellow 400
☀ rgba(243,255,151,1)
Lime Yellow 500 / 16%
☀ rgba(211,227,93,0.16)
Green 500
☀ rgba(53,201,86,1)
Green 400
☀ rgba(113,221,137,1)
Green 400 / 16%
☀ rgba(53,201,86,0.16)
Blue 500
☀ rgba(0,143,226,1)
Blue 400
☀ rgba(0,161,255,1)
Blue 400 / 16%
☀ rgba(0,143,226,0.16)
Typography
Font family
var(--font-inter)activeThe quick brown fox jumps over the lazy dog
ABCDEFGHIJKLMNOPQRSTUVWXYZ · abcdefghijklmnopqrstuvwxyz · 0123456789
font-monosystem fallback0x1a2b3c4d5e6f · 3.14159265 · 1,000.00 USDC
Canonical type styles
✦ FigmaThe 5 styles defined in Figma. Every text element in the UI should resolve to one of these. Target: 5–6 distinct components total, each using exactly one style. Tailwind's default rem scale maps exactly at the browser default 16px root — text-xs=12px, text-sm=14px, text-base=16px, leading-3=12px, leading-4=16px, leading-5=20px. No custom root font-size override required.
text-xs leading-4 font-mediumLabels, token badges, captionstext-xs leading-3 font-mediumCompact tags, inline ticks, table cellstext-sm leading-5 font-mediumSecondary body, input values, list itemstext-sm leading-5 font-semiboldEmphasis labels, active tab, button texttext-base leading-4 font-normalPrimary body copy, descriptionsOther styles in codebase
Not in Figma spec — migrate or removeThese combinations currently exist in the code but were not specified in Figma. Map each usage to the closest canonical style above.
text-xs leading-3 font-mediumMicro labels, chart tickstext-xs leading-4 font-boldCompact card headingstext-sm leading-5 font-normalMuted secondary texttext-base leading-6 font-semiboldWidget sub-headingstext-lg leading-7 font-semiboldSection headingstext-2xl leading-8 font-boldPage titlestext-3xl leading-9 font-boldHero / display headingSpacing & Radius
Border radius
rounded-sm
2px
rounded-md
6px
rounded-lg
8px
rounded-xl
12px
rounded-2xl
16px
rounded-full
9999px
Borders
border (1px)
Default border everywhere
border-2 (2px)
Focus / active outlines
Components
TextInput
Shared <TextInput> from components/shared/TextInput.tsx. Height 42px, border 1px gunpowder, hover santas-gray, focus accent. Compose via leftSlot / rightSlot for labels, chips, icons, etc.
Plain
Label left + chip right
Percent slot right
Search — icon left, clear right
Disabled
Button
Shared <Button> component from components/shared/Button.tsx. Supports variant (primary | outline | ghost), size (sm | md), isLoading, disabled, and fullWidth.
Variants — size=md (default)
Sizes
States
Tabs
Generic tab bar. Typography: text-xs leading-3 font-medium (12/12/500). Height: h-7 (28px). Active tab gets accent text + 1px accent bottom border. Pass className / tabClassName for layout customisation.
StatCell
Single market-data cell used in the ticker / pair-stats bar. Label on top in text-secondary (12/12/400), value on bottom in text-foreground (12/12/500).
PercentSlider
Draggable range with snap points at 0 / 25 / 50 / 75 / 100 and a custom % input. Snap kicks in within ±5 units of a tick.
Value: 30%