Update CLAUDE.md for the static-asset split and version footer
All checks were successful
Deploy / deploy (push) Successful in 40s

The architecture notes still described one :root token block shared
inside the three templates, which stopped being true when CSS and JS
moved to static/. Document base.css as the single source of truth, the
four-hue + color-mix rule that replaced hardcoded literals, and the
<body data-*> convention for passing server config to JS.

Also documents the footer version line under the container-restart
section it exists to serve — it is the quickest honest check that a
deploy landed, given the Unraid Docker tab's cached container IDs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Barely Removable 2026-08-26 14:36:14 -07:00
parent fd973dd3f7
commit 2cc62979a2

View file

@ -37,9 +37,21 @@ the user's Unraid home server. Server-side project directory is still named
`settings.html`). Stale duplicates of these once sat at the repo root; `settings.html`). Stale duplicates of these once sat at the repo root;
they were never rendered (Flask loads from `templates/`) and were deleted they were never rendered (Flask loads from `templates/`) and were deleted
during the redesign. during the redesign.
- All three share one token set defined on `:root` — surfaces, a 6-step - Templates carry markup only. CSS and JS live in `static/` and are
`--fs-*` type scale, semantic colours, and `--tap: 44px` for minimum linked via `url_for('static', ...)` so they stay correct behind a
touch targets. Add new UI with those tokens rather than literal values. `SCRIPT_NAME` subpath. Server-rendered config (timezone, script root)
reaches JS through `<body data-*>`, never string-interpolated into a
script block.
- **`static/css/base.css`** — the single source of truth for the design
tokens, shared by all three templates: surfaces, a 6-step `--fs-*` type
scale, semantic colours, and `--tap: 44px` for minimum touch targets.
Only four hues are declared (`--accent`, `--ok`, `--warn`, `--danger`);
every dim/border tint derives from them via `color-mix`. Reshading the
app should be a four-line edit here — never hardcode a colour literal in
a page stylesheet, which is exactly how the palette drifted before
(a favicon with its own baked-in hex, and stale `rgba()` danger borders
that survived two palette changes). Page-specific rules live alongside
in `dashboard.css` / `login.css` / `settings.css`.
- `dashboard.html` is ordered by urgency, deliberately mirroring the cache - `dashboard.html` is ordered by urgency, deliberately mirroring the cache
tiers in `app.py`: a "Right now" strip (live streams, download queue, tiers in `app.py`: a "Right now" strip (live streams, download queue,
array usage) sits above the fold, with library, discovery, requests and array usage) sits above the fold, with library, discovery, requests and
@ -97,6 +109,13 @@ cd /mnt/user/appdata/greendale && docker compose restart
`docker ps --filter name=arr-summary` to check real state regardless of `docker ps --filter name=arr-summary` to check real state regardless of
what the Unraid UI shows. what the Unraid UI shows.
**Confirming a deploy actually landed:** the dashboard footer renders
`v<APP_VERSION> · <APP_VERSION_DATE>` from constants near the top of
`app.py` (both env-overridable, injected into every template by the
`inject_version` context processor). Bump them when cutting a deploy —
loading the page is then the quickest honest check that the new build is
live, without trusting the Unraid Docker tab's cached container IDs.
## Reverse proxy (Nginx Proxy Manager) ## Reverse proxy (Nginx Proxy Manager)
Two NPM proxy hosts front this app and `git.hippofam.com`, both using Two NPM proxy hosts front this app and `git.hippofam.com`, both using