Phase 24: Design System v2 — analytics-style UI (0.30.0)
- New /api/dashboard/funnel (5-stage stack health, 30s TTL cache) and /api/dashboard/summary (containers, daily uptime jsonl, ops activity) - Token system (tokens.css + Tailwind sp-* aliases); legacy bg/card/accent remapped onto the tokens; Schibsted Grotesk bundled via fontsource - TopNav pill navigation + AppShell replace the sidebar layout (off-canvas drawer below 1024px); central display-weight page titles - Dashboard redesign: FunnelChart (gradient/hatch SVG waterfall), container count card with per-host bars + Insights chip, UptimeChart, OpsGrid, AiPromptBar; 30/7-day range selector; host sections retained below - Stacks page honours ?q= / ?filter= deep links + new status-filter select Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
6464e0677c
commit
34cb215266
@@ -12,7 +12,8 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
|
||||
> resource usage) + Phase 16 (Volumes page, multi-host) + Phase 17 (Multi-host
|
||||
> dashboard) + Phase 18 (Image prune) + Phase 19 (Compose validate & diff) +
|
||||
> Phase 20 (Container management) + Phase 21 (Container terminal) + Phase 22
|
||||
> (Auto-update) + Phase 23 (Secrets & configs) complete.
|
||||
> (Auto-update) + Phase 23 (Secrets & configs) + Phase 24 (Design System v2)
|
||||
> complete.
|
||||
|
||||
## What works today (Phase 1)
|
||||
|
||||
@@ -155,6 +156,31 @@ as intuitive as Dockge, as capable as Portainer for Compose workflows.
|
||||
container or connect any container on the host (`POST /api/networks/{id}/connect`
|
||||
/ `/disconnect`).
|
||||
|
||||
### Phase 24 — Design System v2 (analytics-style UI)
|
||||
|
||||
- **New shell**: the sidebar is gone — a fixed 60px top bar carries a pill
|
||||
navigation (active route = dark pill), the logo mark, a version badge, a
|
||||
remote-host online indicator, theme toggle and an avatar menu. Narrow
|
||||
screens get an off-canvas drawer.
|
||||
- **Design tokens** (`frontend/src/styles/tokens.css`): one CSS-variable set
|
||||
for surfaces, borders, text tiers, brand colours, radii and type scales,
|
||||
with class-based dark-mode overrides. Existing Tailwind aliases
|
||||
(`bg`/`card`/`accent`) are remapped onto the tokens so all pages reskin
|
||||
consistently. Typeface: Schibsted Grotesk (bundled, offline-friendly).
|
||||
- **Stack Health funnel** — the dashboard centrepiece. Five stages
|
||||
(`discovered → running → healthy → updated → monitored`) from
|
||||
`GET /api/dashboard/funnel` (30 s server cache, `?refresh=true` to bust).
|
||||
SVG waterfall with alternating gradient / diagonal-hatch bars, value chips
|
||||
and hover conversion/drop-off tooltips.
|
||||
- **Summary widgets** from `GET /api/dashboard/summary`: containers-running
|
||||
card with per-host breakdown and an "Insights" chip (healthy-rate %), a
|
||||
30-day uptime line chart (daily samples appended to `DATA_DIR/uptime.jsonl`),
|
||||
and an ops contribution grid from audit-log activity with the peak weekday.
|
||||
A 30/7-day range selector slices both series client-side.
|
||||
- **Explore prompt bar** under the funnel: typed queries or `/running`,
|
||||
`/stopped`, `/attention` tags deep-link to the Stacks page, which now
|
||||
honours `?q=` and `?filter=` (plus a new status-filter select).
|
||||
|
||||
### Phase 23 — Secrets & configs (compose file-based)
|
||||
|
||||
- A **Secrets** tab on the stack detail page manages per-stack Docker
|
||||
@@ -482,6 +508,13 @@ POST /api/agents/{id}/stacks (create a stack on a remote h
|
||||
POST /api/templates/{id}/instantiate {agent_id} (instantiate a template onto a remote host)
|
||||
```
|
||||
|
||||
### Phase 24 endpoints
|
||||
|
||||
```
|
||||
GET /api/dashboard/funnel[?refresh=true] (stack-health funnel, 30s TTL cache)
|
||||
GET /api/dashboard/summary (containers, uptime series, ops activity)
|
||||
```
|
||||
|
||||
## Security notes
|
||||
|
||||
- The Docker socket is only ever touched by the backend process; it is never
|
||||
|
||||
Reference in New Issue
Block a user