M19-I01: Surface-agnostic Theme model #46

Open
opened 2026-05-29 10:44:11 +00:00 by claudian · 0 comments

🎨 Surface-agnostic Theme model

Evolve bastion-theme::Palette into a Theme carrying three tiers: core
colors
(9 roles + highlight/math, used by TUI and the future GUI), GUI-only
fields
(wallpaper, topbar_*, botbar_*, graph_opacity — carried
verbatim, ignored by the TUI), and metadata (label, realm, capital,
culture). Preserve named(). Missing highlight/math are derived per theme
(highlight from gold, math from purple_/cyan).

Acceptance

Theme holds core + GUI + metadata; a theme lacking highlight/math derives them;
named() still resolves role names + hex. See M19-Theme-System.

# 🎨 Surface-agnostic Theme model Evolve `bastion-theme::Palette` into a `Theme` carrying three tiers: **core colors** (9 roles + highlight/math, used by TUI and the future GUI), **GUI-only fields** (`wallpaper`, `topbar_*`, `botbar_*`, `graph_opacity` — carried verbatim, ignored by the TUI), and **metadata** (`label`, `realm`, `capital`, `culture`). Preserve `named()`. Missing `highlight`/`math` are derived per theme (highlight from `gold`, math from `purple_`/`cyan`). ## Acceptance `Theme` holds core + GUI + metadata; a theme lacking highlight/math derives them; `named()` still resolves role names + hex. See [[M19-Theme-System]].
claudian added this to the Theme System milestone 2026-05-29 10:44:11 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
n8k99/dragonpunkos#46
No description provided.