relayctx · v3.5 direction Stage
Theme
Fill · st.3
v3.5 direction · neutral-first · 2 Jul 2026

Black and white first. Brand is a layer, not a foundation.

The interface has to fully work in Stage 1 — pure structure, neutral greys, system type. Brand fonts arrive in Stage 2, teal touch points in Stage 3. If removing the brand layer breaks legibility or meaning, the underlying design was leaning on it. Walk the stages above.

And it's mobile-first: the phone shell below is the primary design, desktop is the adaptation — a minimal icon rail that drawers open, not a permanent sidebar. Tone references: Claude Console's drawer nav and Cal.com mobile's bottom tabs — both neutral-first products where brand colour is nearly absent from the chrome.

What changed vs. v3.4: the teal-tinted light surfaces (#f5faf9 / #edf7f5 / #daeee9) and teal-grey text (#8caaaa, 2.5:1) are retired. Every grey is now a true neutral chosen for its contrast ratio. Dark mode was already neutral in v3.4 — light mode catches up. This also matches the original prototype lineage: concepts/app-v34.html on this branch was white-first before the token file re-tinted.

1 · The neutral foundation

Six surfaces, four text greys, all AA-verified. Teal is only permitted in the four accent slots — and only at Stage 3.

Old muted grey lives on as --text-faint, restricted to disabled and decorative elements (WCAG-exempt). Status must always read from the label — colour is Stage-3 reinforcement, never the sole carrier (1.4.1).

2 · Touch points

App — mobile first

Primary nav is a bottom tab bar (thumb-reachable); secondary nav is a drawer behind the menu button — tap ☰. Everything ≥44px touch targets. The web app and a future native app share this one shell.

app.relayctx.com / transfers · 375px
relayctx EC
Transfers
TX
Q3 launch context — handoff
KIT-9F2Q · 2h ago · via MCP
received
SR
Design-system stream · wave 2
VOX-3TR8 · yesterday · 4 in stream
expiring
TX
Billing migration notes
LUM-7KD2 · 3 days ago
expired
TX
Onboarding drip copy — R4
RAY-2WNM · 4 days ago
draft

Desktop — the same nav, as a rail that drawers open

No permanent 220px sidebar. Desktop gets a 56px icon rail; the menu button expands it in place — same items, same order as the mobile drawer. Click ☰ in the mock.

app.relayctx.com / transfers · desktop
Transfers
24Active
3Pending
142Received
TX
Q3 launch context — handoff
2 hours ago · via MCP
KIT-9F2Q received
SR
Design-system stream · wave 2
yesterday · 4 in stream
VOX-3TR8 expiring

Console — same tokens, operator density

console.relayctx.com / access LIVE · PROD
UserHandleTierStatusJoined
Mara Osei@maraEAPapproved2026-06-28
Dev Patel@devpfreepending2026-07-01
Lena Fischer@lenafEAPdenied2026-07-02

Activation — /a/<code>

relayctx.com/a/KIT-9F2Q
Relay · context transfer

You've been sent context

Erik shared a session handoff with you. Claim it with the Code below, or open it in your agent.

KIT-9F2Q

3 · Live contrast audit

Recomputed from the rendered tokens on every toggle. AA = 4.5:1 text, 3:1 large text & non-text.

PairSampleRatioVerdictUsed for
text / bgBody copy
text-2 / surfaceLabels, metadata
text-muted / panelPlaceholders, captions
accent-text / bgLinks, Codes
on-accent / accent-fillPrimary button label
accent-ui / bg (non-text)Focus rings, icons, mark
input border / bg (non-text)Form control boundary
ok-text / surface"Received" status text
warn-text / surface"Expiring" status text
err-text / surface"Failed" status text

The one deliberate trade-off: Brand-hue buttons (#0d9488 + white) sit at 3.7:1 — AA for large text only. The AA fill (#0f766e) is one shade deeper and fully compliant. Flip the toggle and judge.

4 · What this means for the token files

Changes

  • Light surfaces/borders/greys → true neutrals (values above)
  • Accent gets four slots: ui / text / fill / on — no more single overloaded --teal
  • Dark filled controls flip to dark ink on bright fills
  • App's single-teal "v3.4.2" and inverted dark bg/surface revert
  • :focus-visible + prefers-reduced-motion added to @relay/ui

Unchanged

  • Dark mode neutrals (already correct in v3.4)
  • Brand fonts: Outfit / Cormorant Garamond / JetBrains Mono
  • Radii, 0.5px borders, no shadows/gradients, motion budget
  • Teal identity hues #0d9488 / #2dd4bf; #00D9C8 stays motion-only
  • Rollout: tokens first, then console re-skin, then platform pages