Skip to content

feat(admin): fullscreen cards, responsive sizing, navbar/sidebar polish (v26.05.12)#23

Merged
ancongui merged 1 commit into
mainfrom
feat/admin-fullscreen-navbar
May 31, 2026
Merged

feat(admin): fullscreen cards, responsive sizing, navbar/sidebar polish (v26.05.12)#23
ancongui merged 1 commit into
mainfrom
feat/admin-fullscreen-navbar

Conversation

@ancongui
Copy link
Copy Markdown
Contributor

Summary

Addresses dashboard feedback: fixed-height cards, the navbar design, and the metric list not using available height.

Fullscreen + responsive

  • New components/fullscreen.js — a maximize button that expands a card to fill the viewport (Escape exits). It re-parents the card to <body> to escape the view-enter wrapper's transform containing-block, and cancels its pending resize rAF on teardown so no stale callback runs after cleanup.
  • Bean Graph — SVG height was hardcoded 600; now viewport-relative (min(72vh, 820px)), re-lays out on window resize + fullscreen toggle, with a Reset view control. resizeGraph guards on _destroyed/isConnected; cleanup cancels the resize frame.
  • Log Viewer.logfile-output grows with the viewport (was a fixed 600px) and fills in fullscreen.

Loggers / Metrics

  • Loggers — an Effective Level Distribution bar; the table scrolls within a viewport-relative height with a sticky header (non-standard levels included so segments sum to 100%).
  • Metrics — the metric-list card stretches to the detail panel's full height (was capped at 520px) and scrolls internally.

Navbar / sidebar

  • Sidebar brand is now exactly the navbar height so the two top bars line up across the split; it shows the pyfly wordmark only (the "Admin Dashboard" label was removed per feedback).
  • Navbar gains a live auto-refresh status pill, a divider, and tidier grouped controls.

Layering

Bean detail panel raised above fullscreen cards (1260); the ⌘K palette (1300) and toasts (1400) already sit above the fullscreen layer (1200).

Rigor

Reviewed via an adversarial workflow (4 dimensions): 5 findings confirmed and fixed — the highest being a pending-rAF leak that could restart the D3 simulation after navigation, and the bean detail panel hiding behind a fullscreen graph. (The workflow also rejected two z-index findings I'd already pre-fixed.)

Verified live with Playwright: fullscreen fills the viewport and the detail panel layers on top, Escape exits, no orphan overlay when navigating away mid-fullscreen, brand/navbar heights aligned (56px), metric list fills height, zero console errors across all affected views (dark + light, mobile).

Gates

ruff ✓ · ruff format --check ✓ · mypy --strict (577 files) ✓. JS/CSS-only (no Python changes).

Version

Bumps to v26.05.12 (pyproject 26.5.12, __version__, uv.lock). CHANGELOG updated.

…sh (v26.05.12)

Addresses dashboard feedback on fixed-height cards, the navbar, and the
metric list.

Fullscreen / responsive:
- New reusable components/fullscreen.js: a maximize button that expands a card
  to fill the viewport (Escape exits). It re-parents the card to <body> so it
  escapes the view-enter wrapper's transform containing-block; cancels its
  pending resize rAF on teardown so no stale onResize fires after cleanup.
- Bean Graph: SVG height was hardcoded 600 → now viewport-relative (min(72vh,
  820px)), re-lays out on window resize + fullscreen toggle, plus a Reset view
  control. resizeGraph guards on _destroyed/isConnected; cleanup cancels the
  resize rAF.
- Log Viewer: .logfile-output grows with the viewport (was a fixed 600px) and
  fills in fullscreen.

Loggers / Metrics:
- Loggers: Effective Level Distribution bar; table scrolls within a
  viewport-relative height (sticky header). Distribution includes non-standard
  levels so segments sum to 100%.
- Metrics: the metric-list card stretches to the detail panel's full height
  (was capped 520px) and scrolls internally.

Navbar / sidebar:
- Sidebar brand is exactly the navbar height so the two top bars align; shows
  the pyfly wordmark only (removed the "Admin Dashboard" label).
- Navbar: live auto-refresh status pill + a divider + tidier grouped controls.

Layering: bean detail panel raised above fullscreen cards; ⌘K palette (1300)
and toasts (1400) already sit above the fullscreen layer (1200).

Reviewed via adversarial workflow (5 findings fixed). Verified live with
Playwright: fullscreen fills the viewport + detail panel layers on top, Escape
exits, no orphan overlay on navigation, navbar/brand heights aligned, metric
list fills height, zero console errors. Gates green: ruff, format, mypy --strict.
@ancongui ancongui merged commit 917a59b into main May 31, 2026
5 checks passed
@ancongui ancongui deleted the feat/admin-fullscreen-navbar branch May 31, 2026 19:51
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