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 #53 — palette candidates on a dense page
Not for merge. The theme SCSS on this branch is mechanically tokenised (literal
hexes and rgba() triples turned into var(--wg-*)) so a candidate palette can
be swapped at runtime instead of rebuilt per candidate.
contrast.py— WCAG check for every candidate surface/ink pair. Run first._base-plumnoir.css+candidate-{a,b,c}.css— the candidates, as:rootoverrides.seed.js— categories + one 13-post topic with a quote, over the REST API.shots.js/probe.js— screenshots and a computed-style probe, both against the live stack.shots/— the images the resolution is judged on.
Replay:
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/shots.js