Sovereign
The locked Step 0.5 system every ScopePilot screen inherits. Fraunces for the document voice, Inter for the chrome — warm paper, cool ink, an iris brand. Confident, fast, expensive.
Tokens
Typography
Fraunces (display serif) carries brand moments and large headings; Inter runs the UI and body; JetBrains Mono labels code and data. Money uses Inter tabular figures.
Tokens
Color
Light mode first. Warm-paper surfaces, cool-ink text, an iris/indigo brand, and a full semantic + data-viz set — all in OKLCH for perceptual evenness.
Surfaces & ink
Brand · iris
Accent · warm (secondary)
The warm accent flags what's featured or new — the iris brand still owns every primary action.
Semantic
Data-viz · categorical
Tokens
Radius, shadow & elevation
A soft-but-precise radius scale and a cool-tinted, layered shadow language. Elevation is restraint: shadows are felt, not seen.
Radius
Shadow
Components
Status & badges
The lifecycle vocabulary — every document state reads at a glance in a calm, color-coded pill.
Patterns
Card
A real proposal card — sample data on insert (R-E), so nothing ever looks unfinished. Hover to feel the lift.
Patterns
Table
Quiet hairline rows, tabular money right-aligned (DEF-1), status at a glance. Rows tint on hover.
| Client | Document | Status | Value |
|---|---|---|---|
| Acme Co | Website redesign | Accepted | $48,500.00 |
| Northwind | Brand system | Viewed | $22,000.00 |
| Globex | Q3 retainer | Sent | $9,750.00 |
| Initech | Audit + roadmap | Draft | $15,200.00 |
Patterns
Form
The form contract (ARCH-15): inline validation, input preserved on error, a calm error voice, and a quiet success. Submit empty to see the error, then a real email to send.
Motion · R-L
Signature micro-interactions
Five interactions that define how ScopePilot feels. Purposeful only — hierarchy, feedback, delight — tokenized in duration + easing, and honoring prefers-reduced-motion.
Button press
80ms · standardCard hover
200ms · ease-outAcme Co · Proposal
Hover to lift
State change
flash · 320msSuccess moment
pop + ripple · springPage transition
fade-up · 320msRespects reduced motion
R-L · WCAG 2.3.3Every animation here collapses to an instant state change under prefers-reduced-motion: reduce. Motion is decoration, never the message.
Component voice
Empty, loading, error, success
Nothing ever looks unfinished (R-E). Empty is a designed moment; loading mirrors the final layout; errors are calm and recoverable; success is quietly certain.
Empty state
No proposals yet
Your first one takes about two minutes — start from a certified template or a blank canvas.
Loading — skeleton mirrors the layout
That didn't save
Your changes are still here — we just couldn't reach the server. Reference SP-7Q2A.
Quote locked
Heads up
One thing left