You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move the Dimidium palette out of apps/web/src/index.css as a hand-edited :root override, and express it as an entry in upstream's runtime theming system (html[data-theme-id], the --app-theme-* token family) so it is selectable from Settings → Appearance like any other theme.
Why
The 2026-09-05 upstream sync (#20) resolved 21 conflicts, and 6 of them were in index.css alone — every one caused by this fork hard-editing the base palette in a file upstream actively develops.
During the six-week gap upstream built a proper runtime theming system and expanded the token set with roles the fork's palette never defined (--toolbar-*, --message-*, --error-surface, --update-*, --placeholder). The sync resolution took upstream's structure whole and appended Dimidium as a default-palette override — correct and working, but it leaves the same conflict surface in place for next time.
Expressing Dimidium as a theme entry instead would make index.cssconflict-free on future syncs, since the fork would no longer be editing upstream's palette declarations at all.
The value is realised at the next sync, so this is worth doing before then rather than after.
Notes
Current state after chore: sync fork with upstream main (1295 commits) #20: Dimidium is appended last in index.css as a :root block with a @variant dark nested block, deliberately outranking upstream's :root by source order while still losing to html[data-theme-id]:not([data-theme-id=""]) on specificity.
Only base role values are overridden; derived roles (--destructive from --error, --ring from --primary, etc.) follow automatically via var() resolution. A theme entry would need to supply the --app-theme-* inputs instead.
Reference values are in that block: light #f5f3f1/#1a8e46, dark #141414/#37e57b.
What
Move the Dimidium palette out of
apps/web/src/index.cssas a hand-edited:rootoverride, and express it as an entry in upstream's runtime theming system (html[data-theme-id], the--app-theme-*token family) so it is selectable from Settings → Appearance like any other theme.Why
The 2026-09-05 upstream sync (#20) resolved 21 conflicts, and 6 of them were in
index.cssalone — every one caused by this fork hard-editing the base palette in a file upstream actively develops.During the six-week gap upstream built a proper runtime theming system and expanded the token set with roles the fork's palette never defined (
--toolbar-*,--message-*,--error-surface,--update-*,--placeholder). The sync resolution took upstream's structure whole and appended Dimidium as a default-palette override — correct and working, but it leaves the same conflict surface in place for next time.Expressing Dimidium as a theme entry instead would make
index.cssconflict-free on future syncs, since the fork would no longer be editing upstream's palette declarations at all.The value is realised at the next sync, so this is worth doing before then rather than after.
Notes
index.cssas a:rootblock with a@variant darknested block, deliberately outranking upstream's:rootby source order while still losing tohtml[data-theme-id]:not([data-theme-id=""])on specificity.--destructivefrom--error,--ringfrom--primary, etc.) follow automatically viavar()resolution. A theme entry would need to supply the--app-theme-*inputs instead.#f5f3f1/#1a8e46, dark#141414/#37e57b.d3257c98a.