polyvise / design system
Design system

Tokens and rules

Serif type is reserved for the system's conclusions — resolutions, verdict headlines, section titles. Sans handles everything you read at length or click on. Monospace marks any value the engine measured. Colour is used only to distinguish pro, con and neutral.

Palette

Dark and light are peers. Every swatch below is drawn from a CSS variable, so this page repaints when you switch themes — nothing here is a hardcoded hex.

Void — page
#080A0F / #EDEAE3
Surface — card
#12161F / #FFFFFF
Ivory — display
#F4F1EA / #14171D
Muted — secondary
#8B94A7 / #5E6572
Pro — affirmative
#2FD8C4 / #0C8879
Con — opposition
#F5A03C / #AE6607
Judge — synthesis
#A98BD9 / #6A4CA6
Alert — failure
#F2604F / #C43A24

Carried over from the previous palette: jade became teal, saffron became amber, plum became violet. The meanings are unchanged; the accents are darkened in light mode to hold contrast on white.

Type

Instrument Serif 56Verdict
Instrument Serif 40Verdict headlines
Instrument Serif 28Section titles
Inter 14 / 1.55Body copy and agent turns. Everything you read at length.
Inter 12.5Secondary UI, card metadata, helper text.
JetBrains Mono 11MODEL IDS · LATENCY · TOKEN COUNTS · IDS

Components

Chips
ProConJudgeNeutralFailed
Buttons
Start runSecondaryGhost
Stage
Frame
2Debate
3Judge

Rules the system enforces

Pro and con columns are symmetrical

The two columns share a width, a type size and a background. When one side produces more text, its column scrolls rather than growing.

Serif type is used only for conclusions

Display type appears on resolutions, verdict headlines and section titles. Never on interface chrome, and never on an agent's turn.

Engine-measured numbers use monospace

Latency, tokens, cost and confidence are set in monospace so they read as measurements rather than as numbers written into prose.

Every section has a failed state

Each section is designed for empty, loading and failed. The failed state names both the model that was asked and why it didn't return anything usable.