Redesign dashboard: single neutral theme, urgency-ordered layout
Replaces the five novelty themes with one professional dark theme built on a shared token set (surfaces, 6-step type scale, semantic colours, 44px tap target) used across dashboard, login and settings. Layout now matches the cache tiers in app.py: a "Right now" strip with live streams, the download queue and array usage sits above the fold, with library, discovery, requests and watch insights below. Previously the page opened on rarely-actionable disk stats and buried active streams under twenty recommendation rows. Also from the design review: - Discover lists show 5 with a Show more toggle instead of 10 each - RT descriptions render inline and clamped, not hover-only tooltips that touch devices could never reach - Adding a title is now two-step (tap to arm, tap to confirm) since it queues a real download - role=alert on errors, aria-live on polled regions, semantic dl/dt/dd stats, labelled search inputs - every text/surface pair verified at >= 5:1 contrast Drops the dead delete-modal JS, which threw a TypeError on every load, and the stale root-level template copies that Flask never rendered. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
951914dd69
commit
339b9f3310
8 changed files with 1484 additions and 4828 deletions
25
CLAUDE.md
25
CLAUDE.md
|
|
@ -3,8 +3,9 @@
|
|||
Flask dashboard aggregating status from the user's self-hosted media stack
|
||||
— Sonarr, Radarr, SABnzbd, Tautulli, Prowlarr, Ombi — plus Unraid array
|
||||
stats and a Rotten Tomatoes "what's popular that I don't have yet" feed.
|
||||
Branded "Greendale Media Centre." Runs as one Docker container on the
|
||||
user's Unraid home server. Server-side project directory is named
|
||||
Branded "Media Centre" — a single neutral, professional dark theme (the
|
||||
earlier five novelty themes were removed). Runs as one Docker container on
|
||||
the user's Unraid home server. Server-side project directory is still named
|
||||
`greendale`; the container/repo are named `arr-summary`.
|
||||
|
||||
## Architecture
|
||||
|
|
@ -33,10 +34,20 @@ user's Unraid home server. Server-side project directory is named
|
|||
`BeautifulSoup`, JSON-LD parsing), not via an official API — brittle
|
||||
to upstream HTML changes by nature.
|
||||
- **`templates/`** — Jinja2 templates (`dashboard.html`, `login.html`,
|
||||
`settings.html`); duplicated at the top level too (`dashboard.html` etc.
|
||||
outside `templates/`) — appears to be a leftover from an earlier project
|
||||
layout or the `export-to-unraid.sh` tooling. Left as-is rather than
|
||||
restructured without confirming with the user first.
|
||||
`settings.html`). Stale duplicates of these once sat at the repo root;
|
||||
they were never rendered (Flask loads from `templates/`) and were deleted
|
||||
during the redesign.
|
||||
- All three share one token set defined on `:root` — surfaces, a 6-step
|
||||
`--fs-*` type scale, semantic colours, and `--tap: 44px` for minimum
|
||||
touch targets. Add new UI with those tokens rather than literal values.
|
||||
- `dashboard.html` is ordered by urgency, deliberately mirroring the cache
|
||||
tiers in `app.py`: a "Right now" strip (live streams, download queue,
|
||||
array usage) sits above the fold, with library, discovery, requests and
|
||||
watch insights below it.
|
||||
- Degraded services render through the `service_error()` macro, which
|
||||
pairs `friendly_error` (human cause) with the raw exception behind a
|
||||
disclosure, passed through `redact_secrets` — SABnzbd and Tautulli put
|
||||
their API key in the request URL, so it appears in raw tracebacks.
|
||||
- **`export-to-unraid.sh`** — a pre-existing standalone deploy script
|
||||
(build image locally → tarball → rsync + `docker load` over SSH) that
|
||||
predates the Forgejo pipeline below. Still present, not removed, but the
|
||||
|
|
@ -78,5 +89,5 @@ pipeline mechanics. Push to `main` on the `forgejo` remote
|
|||
and `LOGIN_PASSWORD` — this project was already doing this correctly
|
||||
before the Forgejo migration (compose file uses `${VAR}` substitution from
|
||||
`.env`, no hardcoded secrets), unlike `n64-tracker` which needed fixing.
|
||||
`settings.json` (timezone, theme, changed login password) also persists
|
||||
`settings.json` (timezone, changed login password) also persists
|
||||
server-side outside git.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue