Throwaway. Names the closed component vocabulary (rail, panel, plaque, band, ledger, four dividers, section header, icon, horizon, stamp) and shows it at both densities with zero images, plus the same components mapped onto the live category list and topic. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Throwaway prototype for #54 — the ornament and frame component set
Not for merge. Nothing here is theme code; it is the named component set made concrete so it can be looked at.
ornament.css— the component set itself, standalone, zero images.specimen.html— every named component, at both densities, on one page.real-surface.css— the same components mapped onto real NodeBB markup.shots.js— before/after on the live category list and a 13-post topic.shots/— the images the resolution is judged on.
The palette is candidate B from #53, injected at runtime (../_base-plumnoir.css
plus ../candidate-b.css), so no rebuild is needed to see it.
Replay:
# specimen page — needs http, not file://: mask-image on an SVG is blocked by CORS
python3 -m http.server 8931 # then open /prototype/ornament/specimen.html
# real surface
cd ../sow-nodebb && nix develop --command make dev-reset && nix develop --command make dev
cd - && node prototype/seed.js
export PLAYWRIGHT_BROWSERS_PATH=$(nix build --print-out-paths --no-link nixpkgs#playwright-driver.browsers)
P=$(nix build --print-out-paths --no-link nixpkgs#playwright-test)
NODE_PATH=$P/lib/node_modules nix shell nixpkgs#playwright-test -c node prototype/ornament/shots.js