Every block on this page renders with the shipped CSS —
@relay/ui (copied verbatim into ui/)
plus the app-level extract in app.css.
If it looks wrong here, it looks wrong in the app. Spec of record: relay-app DESIGN.md; when this page and tokens.css disagree, tokens win.
The accent split. One Context Teal identity, dual-value (#0d9488 light / #2dd4bf dark), consumed by role:
--accent-ui for icons/rings/marks · --accent-text for links and Codes (AA) · --accent-fill+--on-accent for buttons —
dark mode flips to #0d1514 ink, never white-on-teal. Surfaces are achromatic; teal ≤10% of any surface and only on interactive/active.
#00D9C8 is motion-only (animated strokes + the logomark).
Single Display Rule — exactly one Cormorant display per view. Mono-for-Data Rule — mono is structured data only, never prose.
Ink-Flip Rule. Dark-mode teal fills carry --on-accent: #0d1514 ink. White-on-teal (1.9:1) is forbidden in dark; black-on-teal (the v3.4 signature) is retired everywhere.
Status-dot colors have one source of truth: concepts/src/ui/status-dot.ts (RCTX-440). Direction vocabulary is Outgoing / Incoming; the received status is "Received", never "Sent/Received".
Codes are text — they take --accent-text (AA), always mono, always with a copy affordance.
Hover the hero: characters scramble then cascade home — the shipped scramble egg (reduced-motion honors a plain copy).
--border-hi) — the Flat-By-Default Rule keeps shadows for modals and dropdowns only.Eyebrow (mono, hairline) → display (Cormorant italic) → subtitle (Outfit light). Emitted by ui/primitives.ts screenHead().
Streams are named focus areas that gather related relays and sessions in one place — like a project thread your agents keep adding to.
The training pattern (#604). One per primitive page outside Overview: Transfers · Series · Stream · Sessions · Search · Catalog · Requests · Trash (Send/Connect when their tracks land).
Fires once, first visit; seen-state persists server-side; an account already holding objects of the primitive absorbs it silently (the has-content guard, #455). Sanctioned teal-tint surface; step numbers carry --on-accent ink.
Relative time ticks honestly and shows the exact stamp on hover. Timestamps are mono. Counts describe what's drawn, never imply the corpus.
Fail-closed visibility: absence renders as an honest empty state — never a ghosted list. Locked objects render dashed; a bad deep link gets an anchor-404.
prefers-reduced-motion guards, and toggleable in-app (the eggs toggle).
Canon eggs on this page and in the app:
#signal-fx, shipped in relay-app.css).corebeat) — the one sanctioned --accent-motion surface.packages/ui/*.css (verbatim copy in ui/) + app.css extract of concepts/public/relay-app.css · synced 2026-07-18