Files
proof-of-work/design/brand/palette.css
T
Keysat 7fda9ceb7e
CI / proof-of-work (Next.js app) (push) Waiting to run
CI / start9/0.4 (StartOS package code) (push) Waiting to run
design: extract document-as-is UI contract (DESIGN.md + DTCG tokens)
Case-B extract of the as-built dark UI into design/: 9-section DESIGN.md,
W3C DTCG tokens.tokens.json, brand/palette.css + assets, and inspiration/
provenance (incl. the rendered red-shade decision). Two owner calls layered
in: red elevated to the single brand accent (#DC2626), two-tier radius
(4px controls / 8px containers). AGENTS.md gains the read-before-UI Design
line + design/ in the layout tree; ROADMAP gains the design-checker cleanup
backlog. No UI code changed.
2026-06-19 12:14:51 -05:00

64 lines
2.7 KiB
CSS

/*
* Proof of Work — canonical design tokens as CSS custom properties.
* Generated-by-hand mirror of design/tokens.tokens.json (the source of truth).
* Import once at the app root so surfaces reference var(--pow-*) instead of inlining hexes.
* Hexes are the literal Tailwind values the as-built UI already uses (neutral ramp = zinc).
*/
:root {
/* Backgrounds / surfaces (depth = stepping up in lightness, not shadow) */
--pow-bg-canvas: #0A0A0A; /* app background; PWA theme_color */
--pow-bg-surface: #18181B; /* zinc-900 — cards, panels */
--pow-bg-raised: #27272A; /* zinc-800 — controls, chips, hover */
--pow-bg-inset: #09090B; /* zinc-950 — rare deep wells */
/* Borders */
--pow-border-subtle: #27272A; /* zinc-800 — default hairline */
--pow-border-default: #3F3F46; /* zinc-700 */
--pow-border-strong: #52525B; /* zinc-600 — emphasis */
/* Text */
--pow-text-primary: #FFFFFF;
--pow-text-secondary: #A1A1AA; /* zinc-400 */
--pow-text-muted: #71717A; /* zinc-500 */
--pow-text-subtle: #52525B; /* zinc-600 — disabled */
--pow-text-inverted: #000000; /* on white surfaces */
/* Accent / error (one canonical red, told apart by treatment) */
--pow-accent-red: #DC2626; /* red-600 — accent fills/edges + destructive */
--pow-accent-red-strong: #B91C1C; /* red-700 — hover/pressed */
--pow-accent-red-text: #F87171; /* red-400 — red text on dark */
--pow-accent-red-border: #991B1B; /* red-800 — outlines */
--pow-accent-red-wash: rgba(127, 29, 29, 0.30); /* red-900/30 — banners/hover */
/* Other semantic state */
--pow-success: #34D399; /* emerald-400 */
--pow-success-fill: #059669; /* emerald-600 */
--pow-warning: #FBBF24; /* amber-400 */
--pow-warning-edge: #78350F; /* amber-900 */
--pow-info: #60A5FA; /* blue-400 */
--pow-info-wash: #172554; /* blue-950 */
/* Primary action = white, not a hue */
--pow-action-primary-bg: #FFFFFF;
--pow-action-primary-text: #000000;
--pow-action-primary-hover-bg: #E4E4E7; /* zinc-200 */
--pow-action-primary-disabled-bg: #3F3F46; /* zinc-700 */
--pow-action-primary-disabled-text: #71717A;/* zinc-500 */
/* Typography */
--pow-font-display: var(--font-display), 'Bebas Neue', sans-serif;
--pow-font-body: var(--font-sans), 'Space Grotesk', system-ui, sans-serif;
--pow-tracking-wider: 0.05em;
/* Radius (two-tier) */
--pow-radius-control: 4px; /* buttons, inputs, chips */
--pow-radius-container: 8px; /* cards, panels, modals */
--pow-radius-full: 9999px; /* pills, avatars */
/* Layout (mirrors globals.css; the app already defines these) */
--pow-sidebar-width: 240px;
--pow-nav-height: 64px;
--pow-bottom-nav-height: 64px;
}