Frontend theme redo: player portal → Admin sidebar shell + stat-tile My Characters #50

Merged
whitlocktech merged 1 commits from feature/frontend-theme-redo into main 2026-07-11 16:00:18 +00:00
Member

Implements the Frontend Theme Redo Claude Design doc (decision 1a): bring the logged-in Player Portal chrome in line with Admin, and bump Admin → My Characters to the same bar.

Login screens and the public site nav were already consistent and are untouched.

Changes

  • PlayerPortalLayout.jsx — replaced the light top-tab header (820px cap) with the full Admin sidebar shell: reuses .admin-grid, an icon sidebar nav (Characters / Account), a sticky content header with the active page title + "← Site", and a footer with a green "Signed in as …" live dot and Sign out. The two logged-in experiences now read as one app.
  • PlayerCharacters.jsx / PlayerAccount.jsx — dropped the now-redundant inner <h1>; the page title lives in the sticky header.
  • components/CharacterStats.jsx (new) — stat-tile row (Characters / Online now / Linked account) reusing the site's .panel/.grid-3 vocabulary. Fetches accounts + rosters with Promise.allSettled so a restarting shard (503) degrades to instead of blanking the row; stays hidden until an account is linked.
  • AdminCharacters.jsx — renders CharacterStats above the shared roster instead of the bare intro paragraph, matching the Player Portal Characters page.

Verification

  • npm run build (client) compiles clean (230 modules, no errors).
  • All theme tokens the design uses (--panel-grad, --mode-live, --blue, .grid-3, .panel) already exist; no new CSS needed.
  • No tests or other references depended on the removed headings.

Not yet given an auth'd live visual smoke (portal/admin routes are auth-gated; needs the local stack + a logged-in session).

🤖 Generated with Claude Code

Implements the **Frontend Theme Redo** Claude Design doc (decision **1a**): bring the logged-in **Player Portal** chrome in line with **Admin**, and bump **Admin → My Characters** to the same bar. Login screens and the public site nav were already consistent and are untouched. ## Changes - **`PlayerPortalLayout.jsx`** — replaced the light top-tab header (820px cap) with the full Admin sidebar shell: reuses `.admin-grid`, an icon sidebar nav (Characters / Account), a sticky content header with the active page title + "← Site", and a footer with a green "Signed in as …" live dot and Sign out. The two logged-in experiences now read as one app. - **`PlayerCharacters.jsx` / `PlayerAccount.jsx`** — dropped the now-redundant inner `<h1>`; the page title lives in the sticky header. - **`components/CharacterStats.jsx`** (new) — stat-tile row (Characters / Online now / Linked account) reusing the site's `.panel`/`.grid-3` vocabulary. Fetches accounts + rosters with `Promise.allSettled` so a restarting shard (503) degrades to `—` instead of blanking the row; stays hidden until an account is linked. - **`AdminCharacters.jsx`** — renders `CharacterStats` above the shared roster instead of the bare intro paragraph, matching the Player Portal Characters page. ## Verification - `npm run build` (client) compiles clean (230 modules, no errors). - All theme tokens the design uses (`--panel-grad`, `--mode-live`, `--blue`, `.grid-3`, `.panel`) already exist; no new CSS needed. - No tests or other references depended on the removed headings. Not yet given an auth'd live visual smoke (portal/admin routes are auth-gated; needs the local stack + a logged-in session). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
wtclaude added 1 commit 2026-07-11 15:58:30 +00:00
Implements the "Frontend Theme Redo" design (decision 1a): the logged-in
player portal now uses the same sidebar shell as Admin, and Admin's own
My Characters view gets the same stat-tile treatment.

- PlayerPortalLayout: replace the light 820px top-tab header with the
  Admin sidebar shell (icon nav, sticky content header with page title,
  signed-in footer with sign out). Reuses .admin-grid so the two
  logged-in experiences read as one app.
- Drop the now-redundant inner <h1> from PlayerCharacters/PlayerAccount;
  the title lives in the sticky header.
- CharacterStats: new stat-tile row (Characters / Online now / Linked
  account) that tolerates a restarting shard and hides until an account
  is linked.
- AdminCharacters: render CharacterStats above the roster instead of the
  bare intro paragraph, matching the Player Portal Characters page.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011qPmpmVH1xGCiZoz9m9vW3
whitlocktech approved these changes 2026-07-11 16:00:11 +00:00
whitlocktech merged commit 5ccb18e794 into main 2026-07-11 16:00:18 +00:00
whitlocktech deleted branch feature/frontend-theme-redo 2026-07-11 16:00:19 +00:00
Sign in to join this conversation.
No description provided.