diff --git a/ui/docs/design-system-preview.html b/ui/docs/design-system-preview.html new file mode 100644 index 00000000..2dad471f --- /dev/null +++ b/ui/docs/design-system-preview.html @@ -0,0 +1,122 @@ + + +CCS Dashboard Design System — Phase 1 Preview + +
+
+
+

CCS Dashboard Design System — Phase 1

+

Force-UI visual review of the foundations PR. Two locked archetypes (Config 3-pane and Monitor 12-col grid) wrapped by a shared PageShell. Every page going forward picks one.

+
+
+ PR #1088 + Privacy mode ON + /_styleguide · DEV ONLY +
+
+ +

1 · Shared shell

+
PageShell +├─ PageHeader (title · description · status · actions) +└─ PageBody + ├─ ConfigLayout ListPane │ FormPane │ JsonPane ← config archetype + └─ MonitorLayout KpiRow + MonitorGrid(MonitorCard…) ← monitor archetype
+ +

2 · /_styleguide overview

+

Dev-only route gated by import.meta.env.DEV. Renders every primitive plus composed Config + Monitor demos. Privacy toggle on; all data anonymized as Provider A/B/C.

+styleguide overview + +

3 · Config archetype — multi-entity (ListPane)

+

Used by cliproxy, accounts, providers. Left rail = list of entities. Save lives only in FormPane footer.

+Config — multi-entity + +

4 · Config archetype — single-entity (SectionRail)

+

Used by codex, copilot, cursor, droid, claude-extension. Same 3-pane shell — left rail swaps to anchor nav with IntersectionObserver scroll-spy. Solves the long-scroll problem on big single-entity pages.

+Config — single-entity + +

5 · Monitor archetype

+

Used by home, analytics, health, logs. KPI row + 12-col responsive grid. MonitorCard variant="terminal" preserves the ccs health --watch aesthetic as opt-in.

+Monitor archetype + +

6 · Primitive map

+
+

Page shell

components/page-shell/ +├─ page-shell.tsx +├─ page-header.tsx +├─ empty-state.tsx +└─ error-state.tsx
+

Config (3-pane)

components/config-layout/ +├─ config-layout.tsx +├─ list-pane.tsx +├─ section-rail.tsx +├─ form-pane.tsx +├─ form-section.tsx +└─ json-pane.tsx
+

Monitor (grid)

components/monitor-layout/ +├─ monitor-layout.tsx +├─ kpi.tsx (KpiRow + KpiCard) +└─ monitor-grid.tsx (MonitorGrid + MonitorCard)
+

Out of scope

login · setup wizard · dialogs + +These keep their own minimal +shells. Don't force them into +an archetype.
+
+ +

7 · Locked decisions

+ + + + + + + + + +
#QuestionDecision
1Storybook vs in-appIn-app /_styleguide — zero-config, lives in repo, dev-only
2Archetype B nameMonitor (Dashboard is the whole product)
3JsonPane editabilityRead-only by default, opt-in editable prop
4Health terminal aestheticKeep as variant="terminal"
5i18n namespacePer-page (pages.<name>.*) + shared (common.*)
6SectionRail activationScroll-spy via IntersectionObserver
+ +

8 · How to verify locally

+
+cd ui && bun run dev then visit http://localhost:5173/_styleguide
+The route only exists when import.meta.env.DEV === true; production builds exclude it entirely. +
+ +

9 · What lands next

+ + + + + + +
PhaseScopePRs
2Reference migrations: cliproxy, home, health1 PR
3Opportunistic conversion: codex, copilot, accounts, api, shared, analytics, logs, updates~8 PRs (smallest first)
4Outlier rewrites: droid (749) → claude-extension (1118) → cursor (1413) → cliproxy-ai-providers (~1700)4 PRs
+ +

+Source: plans/260425-1132-ccs-dashboard-design-system/ · Brainstorm: brainstorm-260425-1115-ccs-dashboard-design-system.md +

+
\ No newline at end of file diff --git a/ui/docs/screenshots/01-styleguide-overview.png b/ui/docs/screenshots/01-styleguide-overview.png new file mode 100644 index 00000000..d9613b7d Binary files /dev/null and b/ui/docs/screenshots/01-styleguide-overview.png differ diff --git a/ui/docs/screenshots/02-config-multi-entity.png b/ui/docs/screenshots/02-config-multi-entity.png new file mode 100644 index 00000000..789e9f20 Binary files /dev/null and b/ui/docs/screenshots/02-config-multi-entity.png differ diff --git a/ui/docs/screenshots/03-config-single-entity.png b/ui/docs/screenshots/03-config-single-entity.png new file mode 100644 index 00000000..848ffab9 Binary files /dev/null and b/ui/docs/screenshots/03-config-single-entity.png differ diff --git a/ui/docs/screenshots/04-monitor-archetype.png b/ui/docs/screenshots/04-monitor-archetype.png new file mode 100644 index 00000000..98d8734a Binary files /dev/null and b/ui/docs/screenshots/04-monitor-archetype.png differ