From 53030891c6bae10abe9e8bdf4ef3ed6acc3bb925 Mon Sep 17 00:00:00 2001 From: Tam Nhu Tran Date: Sun, 26 Apr 2026 13:30:03 -0400 Subject: [PATCH] feat(ui/design-system): codify rail-anchored layout invariants and palette MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a page-level design system spec for CCS dashboard Config pages, without migrating any production page yet. Pure-spec PR: docs + primitive treatments + DEV-only /_styleguide route. Production page adoption is intentionally left for follow-up work, one page at a time. Spec — `ui/docs/design-system.md`: - §0 Layout invariants (NEVER VIOLATE): two-column shell, no second horizontal strip below the global topbar, sibling-pane top alignment, cliproxy as canonical reference, user-resizable form/json split, and content-fit unified rail (`w-fit min-w-[240px] max-w-[360px]`) - §1 identity-strip patterns: HeroBar (home), rail-anchored (cliproxy), PageHeader (Monitor-only), Bespoke (health) - §2 body archetypes: Config (rail + form + optional json) and Monitor - §4 anti-patterns with rejected code samples (PageHeader-over- ConfigLayout, tab-bar offsetting json pane, redundant description band, blank vertical band) - §5 color & accent rules using the existing Pampas/Crail palette only: 1-accent-dot rule, sibling-pane differentiation, status pill spec, three-tier intensity ladder, sensitive-field treatment per §5g Decisions log — `ui/docs/design-decisions.md`: - v1.6: content-fit rail (replaces fixed 260px) - v1.5: color & accent treatment for body panes - v1.4: resizable form/json split - v1.3: layout invariants and rail-anchored default for Config Primitives — `ui/src/components/config-layout/`: - ConfigLayout: rail rendered as content-fit `