From 2cc62979a22d63a5ba4c817d95f25968cb2963a0 Mon Sep 17 00:00:00 2001 From: Barely Removable Date: Wed, 26 Aug 2026 14:36:14 -0700 Subject: [PATCH] Update CLAUDE.md for the static-asset split and version footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 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 --- CLAUDE.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 43fb71a..25ce703 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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; 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. + - Templates carry markup only. CSS and JS live in `static/` and are + linked via `url_for('static', ...)` so they stay correct behind a + `SCRIPT_NAME` subpath. Server-rendered config (timezone, script root) + reaches JS through ``, 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 tiers in `app.py`: a "Right now" strip (live streams, download queue, 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 what the Unraid UI shows. +**Confirming a deploy actually landed:** the dashboard footer renders +`v · ` 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) Two NPM proxy hosts front this app and `git.hippofam.com`, both using