Fixed in https://github.com/badbundle/track-slash-app/pull/193 (merged as 2e49b79).
Profile → Appearance offers Indigo (the default), Slate (the grid with no colour), Emerald, Sky and Amber.
Storage. Each person's choice is stored with their account (users.background, migration 0053), so nobody's look changes until they pick. The value is validated on save. A value that's no longer a preset renders as Indigo.
Rendering. A preset is a class on the ambient backdrop, set through CSS variables in tailwind.css with light and dark versions. Only the wash and the orbs change. Saving through htmx swaps the backdrop in place, with no reload.
Decisions on the open questions:
- The progress bar and
theme-colorstay indigo. - Legal, sign-in and OAuth pages keep the default.
- It's not exposed through the settings API or MCP, since it's a personal look rather than project work. It can be added to
PATCH /me/settingslater. - The five presets are the ones suggested here.
DESIGN_CONTEXT "Brand" and COMPONENTS.md are updated. I checked all five presets in light and dark on a seeded instance.