# 047 — Treat presets as full style makeovers (not just color schemes) in UI and impl ## Summary Tickets 012 and 020 already unified the *data model* for colour schemes and custom CSS: `src/settings.rs` stores both built-in `ColorScheme` variants and `CssEntry` (`Imported`/`Linked`) as equally-selectable themes via `custom_theme_id`, and the doc comment at `src/settings.rs:44` notes ticket 020 removed the old "use as theme" vs. "always-on overlay" distinction. However, built-in presets themselves (`webapp/src/lib/themes.ts` `BUILTIN_THEMES`) are still defined purely as `ThemeVars` records of `--c-*` color variables — they can only ever restyle colors, not layout — so the underlying premise of the wishlist ("presets are literally entire style makeovers that just happen to look like color changes") isn't actually true of the built-ins yet, and the settings UI may still read as "pick a colour scheme, optionally add CSS on top" rather than "pick one style, which can be as small as a palette or as large as a full redesign." ## Scope - Audit the settings UI (`webapp/src/lib/useSettingsPanel.ts`, `webapp/src/App.tsx:126` and wherever the panel is rendered) for language/layout that still implies "colour scheme" and "CSS" are two separate features, and rework it to present a single list of interchangeable style presets (built-in or user-provided), any of which may be pure-palette or a full layout override. - Confirm/ensure a user-provided style is not constrained to variable overrides — i.e. an imported/linked CSS entry can target arbitrary selectors and restructure layout, not just override `--c-*` variables (verify against `generateThemeCss`/`parseThemeCss` in `webapp/src/lib/themes.ts` and how `CssEntry` is applied to the document). - No new built-in presets need to be layout-altering; this ticket is about removing the artificial ceiling and the UI framing, not about shipping a redesigned built-in theme. ## Acceptance criteria - Settings UI presents colour schemes and custom/imported CSS as one unified list of selectable "styles," with no leftover UI copy or layout implying they're separate concepts. - A user-supplied CSS entry can override layout-affecting rules (not just color variables) and have it take effect, verified manually with a sample stylesheet that changes more than colors. ## Depends on None (builds on tickets 012, 020 — already merged).