Skip to content

Redesign the web dashboard with a shared app shell and design tokens - #13

Merged
vantanminh merged 3 commits into
mainfrom
feat/dashboard-redesign
Oct 3, 2026
Merged

vantanminh merged 3 commits into
mainfrom
feat/dashboard-redesign

Conversation

@vantanminh

Copy link
Copy Markdown
Owner

What changed

A full visual redesign of apps/web. Data flows, routes, API calls and accessible names stay the same; only the presentation and layout change.

  • Design tokens (src/index.css): a new OKLCH token set with warm neutrals, near-black for actions, pine green as the single accent, status colours used only for status, and series colours for charts. Full dark theme; the saved theme is applied by an inline script before first paint, so there is no flash. Geist Mono (new dependency @fontsource-variable/geist-mono) is used for technical values such as images, hosts, slugs and timestamps.
  • AppShell (src/components/app-shell.tsx): shared chrome for every signed-in screen. Sidebar with workspace switcher, scope navigation and Integrations; inset panel with breadcrumb header, page action, theme toggle and account menu (sign out lives here now). Below 768px the navigation docks to a bottom bar.
  • Project dashboard:
    • Resources: health strip counted from real statuses, segmented filter, search, clickable table, quick-create tiles when the project is empty.
    • Topology: canvas redesign with a legend, new node cards and a zoom dock.
    • Metrics: resource cards. Logs: toolbar plus stream panel.
  • Resource workspace: now a right-hand drawer instead of a centred modal; its CSS was rewritten on the shared tokens.
  • Auth, onboarding, workspace projects, integrations: restyled to match. Login now has a static schematic panel (aria-hidden, not live data). The projects page uses a card grid with search.
  • ThemeProvider was rewritten as a single app-wide light/dark theme. It reads the legacy project-topology-dashboard-theme key once, so existing users keep their choice.
  • docs/frontend-system-design.md is updated; story US-051 / intake IN-049 are recorded via harness.

Behaviour changes worth noting

  • The separate topology canvas theme toggle is removed; the canvas follows the global theme.
  • Sign out moved into the header account menu.
  • The Integrations page waits for auth bootstrap before choosing its layout, so it doesn't remount mid-load.
  • The workspace heading keeps Welcome to <workspace>, so the existing tests still pass.

Verification

  • vitest: 39/39 pass. tsc: clean apart from the existing unused imports in auth-page.test.tsx. vite build succeeds.
  • Checked visually against a local mock API at 1440×900 and 390×844, in light and dark: resources, topology, metrics, logs, resource drawer (deployments, database, metrics), add-resource menu, workspace, integrations, login/register.
  • The create-first-workspace screen was not checked visually (covered by tests only).

Not addressed

  • 4 lint errors that already existed (auth-page.test.tsx unused imports, two set-state-in-effect in html-page-workspace.tsx).
  • The existing >500 kB bundle warning.
  • Also includes a harness-generated status update closing IN-048.

🤖 Generated with Claude Code

vantanminh and others added 3 commits October 4, 2026 02:20
…tokens

- New OKLCH token set (warm neutrals, ink actions, pine accent, status and
  chart colours) with a full dark theme applied before first paint.
- AppShell: sidebar with workspace switcher and scope navigation, inset
  panel with breadcrumb header, theme toggle and account menu; docks to a
  bottom bar on mobile.
- Project dashboard: resource health strip, segmented filters, resource
  table, quick-create empty state, redesigned topology canvas, metric
  cards and logs panel; resource workspace becomes a right-hand drawer.
- Redesigned auth, onboarding, workspace projects and integrations pages.
- Geist Mono for technical values; design doc updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vantanminh
vantanminh merged commit 6c1aa9e into main Oct 3, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant