Skip to content

Add custom CSS theming with a theme picker - #194

Open
danmaps wants to merge 1 commit into
cassidoo:mainfrom
danmaps:feat/custom-css-override
Open

Add custom CSS theming with a theme picker#194
danmaps wants to merge 1 commit into
cassidoo:mainfrom
danmaps:feat/custom-css-override

Conversation

@danmaps

@danmaps danmaps commented Aug 17, 2026

Copy link
Copy Markdown

Summary

Adds optional theming to todometer. A Theme dropdown in Settings -> Configuration -> Appearance lists .css files found in the app's themes folders and applies the selected one live. Users can drop their own .css into the per-user themes folder to add themes without rebuilding.

What's included

  • Theme picker in the Settings drawer (dropdown + "Open themes folder...").
  • Theme discovery scans a per-user folder (userData/themes) and the bundled themes/ folder, deduped by name (user themes win).
  • Live reload - editing the active theme file re-applies it via fs.watch.
  • 5 bundled themes: hacker-terminal, synthwave, dracula, nord, paper-light.
  • Themes shipped in packaged builds via build.extraResources.

How it works

Themes re-map the existing design tokens in variables.css (--bg, --green, --font-color, etc.) plus a few global element selectors, so no component styles need to change. The renderer injects the selected CSS as a trailing <style> tag so it overrides bundled styles.

Notes

  • No change to existing behavior when no theme is selected (defaults to "Default").

Adds a Theme dropdown in Settings that lists .css files from a per-user
themes folder and a bundled themes folder, applying the selected theme
live via fs.watch. Users can drop their own .css into the per-user folder
to add themes without rebuilding.

Themes re-map the existing variables.css design tokens plus a few global
selectors, so no component styles change; the selected CSS is injected as
a trailing <style> tag to override bundled styles. Ships five bundled
themes (hacker-terminal, synthwave, dracula, nord, paper-light) via
build.extraResources.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danmaps
danmaps marked this pull request as ready for review August 17, 2026 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant