From 97dae88860f07061f32e00df27ce0abaf892c8ca Mon Sep 17 00:00:00 2001 From: ChrisBeWithYou Date: Fri, 26 Jun 2026 04:05:31 -0500 Subject: [PATCH] =?UTF-8?q?feat(highway=5F3d):=20colour=20theming=20?= =?UTF-8?q?=E2=80=94=20string=20presets=20+=20Background/Highway=20scene?= =?UTF-8?q?=20themes=20(#596)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(highway_3d): add one-click string-color presets Adds 12 named string-color presets (Warm→Cool, Vivid, Colorblind-friendly, Neon, Accessible, Warm Ember, Tape Deck, CRT Green/Amber, Pitch Ramp, Sunrise) selectable from the 3D Highway settings panel. Extends the existing core HWC (highway-color) subsystem in static/app.js with HWC_PRESETS + applyHighwayStringPreset(), exposed on the existing facade as window.feedBack.highwayColors.{presets, applyPreset}. The plugin settings page renders the preset buttons from that core list and refreshes the per-string pickers on apply. Purely additive — stock behavior is unchanged. Scope: core static/app.js (the shared HWC facade both highways consume) plus the highway_3d plugin's settings.html / screen.js / CLAUDE.md. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_011Q9BpGYqUaga9ZJyS3dDPq * fix(highway_3d): address review of colour-theming PR - Rebuild assets/plugin.css so the new `flex-wrap` (preset row) and `text-[10px]` (theme-dropdown helper) Tailwind classes are actually compiled, and bump plugin.json 3.26.0 -> 3.27.0 so the 's ?v= cache-buster fetches the fresh CSS (per the plugin's build rule). - Replace the mirror-at-every-read hwTheme migration with a one-time backfill (persist hwTheme := bgTheme on first load, no emit). The two scene-color axes are now genuinely independent: changing the Background dropdown no longer silently retints the Highway surface/lane, and the rendered highway can't disagree with the Highway dropdown value. - Collapse the duplicated theme id-set in settings.html (two identical