Skip to content

Dashboard Visual System

Last updated: 2026-08-26

Purpose

The dashboard inherits The Citation — the same identity as the approved public site. MASTER: planning/design/MASTER.md. Component contract: docs/dev/UI_DESIGN_SYSTEM.md.

Canvas is Counsel Navy (#0B1B34), not generic #0b0b16. Signal Amber is the one match (gold CTA, active hairline, eyebrows). Counsel Blue is interactive. Branded Inter on page titles.

Shared primitives

Usage rules

Premium app-wide layer

A second tier of primitives in src/app/globals.css hoists the dashboard's lush treatment onto every page (not just dashboard surfaces). All are reduced-motion aware.

The dashboard hero metric grid (stat-cards.tsx, quick-stats-bar.tsx) is built on .surface + .lift + .glow-chip + .stat-figure; the dashboard nav flyouts and sidebar flyouts use the solid bg-[oklch(0.17_0.008_265)] popup treatment.

Typography — The Citation

Self-hosted Inter in src/app/layout.tsx (--font-inter-loaded). The same branded face is used throughout the interface:

PageHeader sets .font-display on the h1. Card titles stay Inter (font-heading). Tabular figures on every number (.tabular / .stat-figure).

Verification

The visual primitives are covered by src/__tests__/components/dashboard-primitives.test.tsx, which asserts class wiring and loading/error accessibility roles.

Launch route fallbacks are covered by src/__tests__/components/route-fallbacks.test.tsx, which asserts route status accessibility, skeleton chrome, Sentry tagging, retry recovery, and dashboard fallback navigation.

The premium layer and typography are exercised end-to-end by the production build (next build) and the live dashboard; nav components are documented in Navigation Architecture.

Source: docs/dev/dashboard-visual-system.md