What's changing
Calibration pass — no component renames, no token removals. Values tightened for density and contrast.
--radius-card: 2rem → 0.75rem (unified)--background: Zinc-50 → Zinc-100--border: Zinc-200 → Zinc-300border-l-8 left rail → header status chip
py-8 → py-5text-3xl → text-2xlmb-8 → mb-6py-6 px-8 → py-4 px-5py-4 → py-2.5--muted1 — Color tokens
Biggest change: light-mode --background deepened, --border sharpened. Dark mode untouched.
background #fafafa → #f4f4f5 (Zinc-50 → Zinc-100), border #e4e4e7 → #d4d4d8 (Zinc-200 → Zinc-300). Cards now read as visually distinct surfaces without relying on shadow alone.
2 — Typography specimen
Scale unchanged except the page title (smaller for density). All utilities below are canonical — use these class names, don't reinvent.
3 — Page header (concern #2)
Chrome compression: ~96px → ~72px (25% drop). Title shrunk from 30px to 22px. Same hierarchy, tighter signal.
12 unresolved items across 4 repositories.
12 unresolved items across 4 repositories.
padding: 2rem 2.5rem → 1rem 1.25rem, margin-bottom: 2rem → 1rem, title 1.875rem → 1.375rem. Result: scannable on a 13" MacBook without scroll-to-read.
4 — Cards (concerns #1 and #3)
Left-border rail removed → replaced by a header status chip. Radius unified to 12px. Padding dropped from 24–32px → 16–20px.
Active — TEAM plan · cloud mode
TEAMTEAM plan · cloud mode
TEAMOther status variants (chip replaces border-l-8 entirely):
Advisory · 3 pending policy updates
Anthropic key invalid or expired
Early access · opt in via Settings
5 — Status chips (canonical catalog)
Five variants. Use in card headers, table cells, inline labels. No other colored-label patterns permitted.
6 — Buttons (canonical catalog)
Four variants × two sizes. Radius var(--radius-interactive) = 12px — matches new unified card radius.
7 — Forms (canonical catalog)
Input height aligned with .btn height. Focus ring uses --primary. Radius 12px.
8 — Tables (Bucket C — dense table primitive)
Row height ~56px → ~40px. No surrounding card — table is its own primitive. Hover uses --muted.
| Repo | Status | Drift | Last run |
|---|---|---|---|
| acme/backend | SYNCED | 0 | 2 min ago |
| acme/frontend | DRIFTED | 3 | 14 min ago |
| acme/api-gateway | FAILED | – | 1 h ago |
| Repo | Status | Drift | Last run |
|---|---|---|---|
| acme/backend | SYNCED | 0 | 2 min ago |
| acme/frontend | DRIFTED | 3 | 14 min ago |
| acme/api-gateway | FAILED | – | 1 h ago |
| acme/docs-portal | SYNCED | 0 | 6 h ago |
| acme/mobile | DRAFT | – | – |
9 — Tabs (concern #1 — frame vs underline)
Current style uses frame + colored left-border (visually heavy, duplicates chip semantics). Proposed: standard underline tab strip, subtle + consistent.
10 — Empty state (canonical)
One pattern across the app: dashed border card + muted icon + title + description + single primary CTA.
No documentation drift detected across your watched repos. Open a pull request to trigger your first analysis.
globals.css variable diff, (b) the Card / PageHeader component changes, (c) a mechanical sweep plan for the 15 files that use border-l-8.