cdnV2

git clone https://github.com/notamitgamer/cdnV2.git
· rebuilt hourlyOpen on GitHub
commit d54fe467f70d22c6ede116cbd80f4e7eb1d6ecbd
parent c3dd867870170f79124d75f0ca980d5dc5cf51eb
Author: claude-cdn-bot <claude-bot@users.noreply.github.com>
Date:   Mon, 12 Oct 2026 04:45:14 +0000

docs: add UI overhaul plan

Diffstat:
Adocs/UI_OVERHAUL.md | 34++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+), 0 deletions(-)

diff --git a/docs/UI_OVERHAUL.md b/docs/UI_OVERHAUL.md @@ -0,0 +1,34 @@ +# UI overhaul + +Tracking document for the UI redesign. Scope is templates, CSS and JS; backend changes are limited to +allow-listing the new static files in `app/main.py`. + +## Findings that motivated this + +- `app/templates/index.html` was an 84 KB monolith rendering seven page types with ~800 lines of inline CSS + and ~800 lines of inline JS, so every folder page shipped all of it. +- Two CSS layers fought each other: legacy variables aliased onto `--ui-*`, overridden with `!important`. + Breadcrumb styles were duplicated, and four other templates re-declared their own `:root`. +- The file page had no preview. +- Copy feedback was a 0.8 s border flash; upload errors used `alert()`; dialogs lacked roles, focus + handling and Esc; no `<main>` or skip link. +- `manifest.json` theme/background (`#000000`) disagreed with the page `theme-color`; `og:image` was relative. + +## Constraint: instant folders + +Folder pages are built both by Jinja and by `static/fasttree.js` from `_listing.html` macros. +`tests/test_fast_tree.py` asserts they are identical. Listing markup changes go through the macros and the +placeholder contract only. + +## Phases + +- [ ] **1. Foundation (no visual change)** - shared `base.html`, CSS to `static/app.css`, JS to `static/app.js`, + one token set, legacy aliases and `!important` removed, `index.html` split into per-page partials. +- [ ] **2. Design system** - type/spacing scale, accent, radius, light/dark/system toggle. +- [ ] **3. Components** - navbar, listing (file-type icons, sort, density), file previews, upload queue, + toasts, accessible dialogs, docs/sync code blocks, 404/empty states. +- [ ] **4. Polish** - a11y pass, mobile pass, manifest/OG fixes, SRI for Turbo, configurable site name. + +## Safety rule for previews + +Uploaded HTML/SVG is never rendered inline on the main origin. It is shown as source text only.