SWITCHBOARD /design · release identity, as a port contract

These are the actual values both surfaces are built from. The board will be ported by hand into a canvas-based production renderer · treat every value on this page as normative, including the animation and liveness laws at the bottom.

Palette

shape identifies a species; color reinforces it · never color alone

#0A0A0Abg0 · deep spacepage + map background, boot screen
#101010bg1 · panelcards, drawers, rail chips
#161616bg2 · raisedhover states, raised surfaces
#1F1F1Flinehairline borders, scrollbars
#EDEDEDtext-hiprimary text · neutral terminal white
#A3A3A3text-midsecondary text, body copy
#5C5C5Ctext-dimkickers, captions, metadata
#35F096signal · accentalive things: live sessions, leases, merges, build green, CTAs
#F5B83Dsem · task / warntasks, overlaps, stale + build-unknown warnings
#3DC8F5sem · contractcontracts, async intelligence, verdict text
#8FA8B8sem · fileleased files · passive, never glows
#FF5C5Csem · denydenials, conflicts, hub unreachable
#4A4A4Asem · ghostreaped sessions, dead tethers

Type

UI & DISPLAY · SCHIBSTED GROTESK
Always green,
by construction.
Body 400 · headings 700–800 · tracking −0.015em to −0.022em on display sizes. Wordmark: 800, +0.15em, all caps.
DATA · JETBRAINS MONO
sb_7f3a · maya@studio
src/payments/refunds.ts
fast path p95 8.4ms · deny · 30m
Everything that is a fact wears the mono: session ids, paths, numbers, feeds, verdict text, kickers (uppercase, +0.18em to +0.26em).
scale px · 9.5 · 10.5 · 11.5 · 13 · 15 · 19 · 26 · 40 · clamp(38→80) hero map labels · 10/9 px mono, ×1.2 in projector posture status glyphs · ⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏ spinner (120ms/step, live) · ▮░ progress cells · ·─┼─·╌ rule ornament (#2E2E2E) display · Unbounded 800 · wordmark reveal & hero statements only · letter-spacing .01em · chromatic reveal ±4px red/cyan → 0

Spacing & radii

4
8
12
16
24
32
48
64
96
radius 4 · chips, buttons, inputs
radius 6 · cards, code blocks
radius 8–10 · panels, drawers, framed views

Motion

fast120ms easehover cards, chip toggles
standard240ms cubic-bezier(.3,0,.1,1)drawers, denial overlay in/out
slow480ms easeboot fade, centerpiece cards
ring breathe~3.9s sine, ±5% scalelive session ring (one of the three)
task arc~4.0s / revolutionrunning task arc (one of the three)
denial edgedash march · TTL 25s · fade last 5soverlap/denial edge (one of the three)
denial takeover3000ms hold, then quietmap dims to rgba(10,10,10,.78), card centered
desaturate (stale)lerp .04/frame → 85% mix to #5A5A5Astale + unreachable map
camera scrublerp .075/frame (site)scroll-driven camera; 1.0 when reduced-motion

Node species

SPECIESSHAPE + COLORANIMATION RULE
sessioncircle + outer ring · #35F096 · label: id + machinering breathes (~3.9s sine) while live
session · reapeddashed circle · #4A4A4A · label: id + “reaped”never animates
taskdiamond · #F5B83D running / #5C5C5C queued / #35F096 merged (filled)60° arc orbits (~4.0s/rev) while running
contracthexagon · #3DC8F5 · settled turns ring #35F096outer arc depletes with settling window (static per frame)
leased filesmall square · #8FA8B8 · amber halo = recorded overlapnever animates
denial edgedashed line · #FF5C5C · session ↔ filedash marches; lives 25s, fades over last 5s
edges · lease rgba(53,240,150,.16) solid · assignment rgba(245,184,61,.20) solid · contract→consumer rgba(61,200,245,.20) dash 2/5 · defines rgba(61,200,245,.12) dash 1/4

Product laws the renderer must keep

THREE ANIMATIONSOnly a live session’s ring, a running task’s arc, and a denial edge may move. No badges, no ambient shimmer. A denial dims the map and takes the center for 3s, in the agent’s own words.
SILENCE IS A WARNINGA frozen board must never look calm. Liveness is always visible (“live · updated 2s ago”); after 60s without model updates the board reads stale and the map desaturates toward #5A5A5A (85% mix).
SLEEP AT RESTA settled board schedules 0 animation frames · wake on model change or input only. State changes may render single on-demand frames.
NEVER CLAIM AN UNRUN CHECKNo gate configured → build: unknown, in amber. Hub unreachable → fail-open message; the map darkens, the fleet does not stop.