One page mapping every visual primitive the site ships — tokens, type, components. Read directly from the live CSS so it can't drift from production.
Colors
Semantic, not positional. Single CTA blue idles every interactive element; tonal palette is a three-step traffic light for status / quality signalling.
Brand
Primary
--color-primary#1a365d
Headlines, strong text
Primary light
--color-primary-light#2c5282
Subheadings
CTA
--color-cta#2257e9
Interactive blue — every link / button / hover idles here
CTA hover
--color-cta-hover#1a365d
Resolves to navy primary on hover
On CTA
--color-on-cta#ffffff
Locked white — text on blue surfaces
On primary
--color-on-primary#ffffff
Ink on navy surfaces (footer links, jurisdiction card active state)
Used inside prose for comparison rows. Header cells take a subtle background; row borders use the standard border colour.
Pattern
Layer
Maturity
Privacy
Shielded ERC-20
L2
production
amounts + counterparties
Noir private contracts
L2
beta
private fns, public state
Viewing keys
L1 / L2
production
selective disclosure
Prose
Markdown bodies render inside .prose. Constrained to ~70ch, with hairline section breaks above every H2 (suppressed when the first child of prose is itself an H2, on domain pages).
Privacy on Ethereum means controlling what information is visible and to whom. The spectrum ranges from anonymity to full confidentiality.
Components
Most institutional solutions sit between those poles, using selective disclosure to reveal specific data to authorized parties.
Shielded pool contracts store commitments and a nullifier set.
Hash-based commitments hide note contents.
The question is not whether Ethereum is private, but which privacy architecture fits your requirements.
Motion
One easing curve, three durations. Anything visual that transitions uses cubic-bezier(0.4, 0, 0.2, 1) — never bouncy easings. Respects prefers-reduced-motion.