Skip to main content

max / makenotwork

4.3 KB · 95 lines History Blame Raw
1 # Themes
2
3 16 TOML color themes shared across GoingsOn, Balanced Breakfast, and audiofiles.
4
5 ## Bundled Themes
6
7 | File | Name | Variant | Source |
8 |------|------|---------|--------|
9 | `ayu-light.toml` | Ayu Light | light | [ayu-theme]https://github.com/ayu-theme |
10 | `catppuccin-latte.toml` | Catppuccin Latte | light | [Catppuccin]https://github.com/catppuccin/catppuccin |
11 | `catppuccin-mocha.toml` | Catppuccin Mocha | dark | [Catppuccin]https://github.com/catppuccin/catppuccin |
12 | `dracula.toml` | Dracula | dark | [Dracula]https://github.com/dracula/dracula-theme |
13 | `everforest.toml` | Everforest | dark | [Everforest]https://github.com/sainnhe/everforest |
14 | `flatwhite.toml` | Flatwhite | light | [Flatwhite]https://github.com/biletskyy/flatwhite-syntax |
15 | `gruvbox-dark.toml` | Gruvbox Dark | dark | [Gruvbox]https://github.com/morhetz/gruvbox |
16 | `gruvbox-light.toml` | Gruvbox Light | light | [Gruvbox]https://github.com/morhetz/gruvbox |
17 | `high-contrast.toml` | High Contrast | high-contrast | Original |
18 | `kanagawa.toml` | Kanagawa | dark | [Kanagawa]https://github.com/rebelot/kanagawa.nvim |
19 | `neobrute.toml` | Neobrute | dark | Original |
20 | `nord.toml` | Nord | dark | [Nord]https://github.com/nordtheme/nord |
21 | `rosepine-dawn.toml` | Rose Pine Dawn | light | [Rose Pine]https://github.com/rose-pine/rose-pine-theme |
22 | `rosepine.toml` | Rose Pine | dark | [Rose Pine]https://github.com/rose-pine/rose-pine-theme |
23 | `solarized-dark.toml` | Solarized Dark | dark | [Solarized]https://github.com/altercation/solarized |
24 | `tokyonight.toml` | Tokyo Night | dark | [Tokyo Night]https://github.com/folke/tokyonight.nvim |
25
26 ## File Format
27
28 Each theme is a TOML file with four color sections:
29
30 ```toml
31 # Attribution (optional)
32 # Based on Catppuccin by Catppuccin Org -- MIT License
33
34 [meta]
35 name = "Theme Name" # Display name (required)
36 variant = "dark" # "dark", "light", or "high-contrast"
37
38 [background]
39 primary = "#181825" # Main background
40 secondary = "#11111b" # Sidebar / panel background
41 tertiary = "#313244" # Hover / selection background
42 surface = "#1e1e2e" # Card / elevated surface
43
44 [foreground]
45 primary = "#cdd6f4" # Main text
46 secondary = "#bac2de" # Secondary text
47 muted = "#9399b2" # Placeholder / disabled text
48
49 [accent]
50 red = "#f38ba8" # Error, destructive actions
51 green = "#a6e3a1" # Success, positive actions
52 blue = "#89b4fa" # Links, primary accent
53 yellow = "#f9e2af" # Warnings
54 purple = "#cba6f7" # Tags, special elements
55 cyan = "#89dceb" # Info, secondary accent
56
57 [border]
58 default = "#45475a" # Default border color
59 ```
60
61 ### Required Fields
62
63 - `[meta].name` -- falls back to the filename if missing
64 - `[meta].variant` -- falls back to `"dark"` if missing
65 - At least `[background].primary` and `[foreground].primary` for a usable theme
66
67 All other fields are optional. Apps should fall back gracefully when a color key is missing.
68
69 ### Theme ID
70
71 The filename without `.toml` is the theme ID. IDs must contain only alphanumeric characters, hyphens, and underscores. Examples: `catppuccin-mocha`, `gruvbox-light`, `high-contrast`.
72
73 ## How Apps Load Themes
74
75 | App | Method | Crate |
76 |-----|--------|-------|
77 | GoingsOn | Runtime from disk via Tauri resource glob | `theme-common` |
78 | Balanced Breakfast | Runtime from disk via Tauri resource glob | `theme-common` |
79 | audiofiles | Compile-time embed via `include_str!` | Direct TOML parsing |
80
81 GoingsOn and Balanced Breakfast include this directory as a Tauri resource (`../../../MNW/shared/themes/*.toml` in `tauri.conf.json`). The `theme-common` crate handles parsing and color extraction at runtime.
82
83 audiofiles embeds theme files at compile time and parses TOML directly without the `theme-common` crate.
84
85 ## Adding a New Theme
86
87 1. Create `your-theme-name.toml` in this directory
88 2. Add an attribution comment at the top if based on an existing theme
89 3. Fill in all sections (`meta`, `background`, `foreground`, `accent`, `border`)
90 4. The theme will be available automatically on next build (GO/BB pick it up via the resource glob, AF picks it up via compile-time include)
91
92 ## License
93
94 Individual theme color palettes are attributed to their original creators. The TOML files themselves are part of this project under PolyForm Noncommercial 1.0.0.
95