Add a reusable theme system with a Neonflux theme
Introduce a theme layer on top of the existing CSS custom properties. All color tokens now live in themes.css, scoped by a data-theme attribute on <html>, so a theme is just a new token block plus a dropdown option - no code changes needed. The Default theme preserves the existing light/dark behavior; Neonflux adds an electric-cyan dark theme. The active theme is chosen via a Theme selector in the sidebar footer and persisted in a new main-process settings file (userData settings.json) through getTheme/setTheme IPC, so it survives restarts. Hard-coded on-accent, selection, shadow and backdrop colors across the renderer were converted to semantic tokens so every theme stays consistent.
This commit is contained in:
parent
7011d0655b
commit
ad0329bbf9
12 changed files with 346 additions and 52 deletions
|
|
@ -17,6 +17,10 @@ const copyAssets = {
|
|||
path.join("src", "renderer", "index.css"),
|
||||
path.join("dist", "index.css")
|
||||
);
|
||||
fs.copyFileSync(
|
||||
path.join("src", "renderer", "themes.css"),
|
||||
path.join("dist", "themes.css")
|
||||
);
|
||||
fs.mkdirSync(path.join("dist", "icons"), { recursive: true });
|
||||
fs.copyFileSync(
|
||||
path.join("build", "icons", "256x256.png"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue