Skip to main content

max / audiofiles

Take the theme set from makeover instead of 27 local copies The browser embedded its own themes/ directory: 27 files byte-identical to makeover's, carrying the attribution errors corrected upstream and a palenight already withdrawn elsewhere. It now reads the shared embedded set, so a theme added, corrected, or withdrawn in makeover reaches this app without a second copy drifting behind. neobrute was the one theme only this app had. It is not interchangeable with the similarly-descended goingson theme, so it moved into makeover 0.10.0 rather than being dropped; nothing is lost from the picker. Add a test pinning the parts that would be a regression if the shared set changed underneath: this app's own skin, neobrute, and that palenight stays gone.
Author: Max Johnson <me@maxj.phd> · 2026-07-19 20:20 UTC
Commit: dd5152dcef0a47c2ff6bdbea2e8bf527609ad1d9
Parent: b8d40cb
33 files changed, +61 insertions, -1045 deletions
M Cargo.lock +22 -2
@@ -2426,6 +2426,25 @@ dependencies = [
2426 2426 ]
2427 2427
2428 2428 [[package]]
2429 + name = "include_dir"
2430 + version = "0.7.4"
2431 + source = "registry+https://github.com/rust-lang/crates.io-index"
2432 + checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd"
2433 + dependencies = [
2434 + "include_dir_macros",
2435 + ]
2436 +
2437 + [[package]]
2438 + name = "include_dir_macros"
2439 + version = "0.7.4"
2440 + source = "registry+https://github.com/rust-lang/crates.io-index"
2441 + checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75"
2442 + dependencies = [
2443 + "proc-macro2",
2444 + "quote",
2445 + ]
2446 +
2447 + [[package]]
2429 2448 name = "indexmap"
2430 2449 version = "2.14.0"
2431 2450 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2815,10 +2834,11 @@ dependencies = [
2815 2834
2816 2835 [[package]]
2817 2836 name = "makeover"
2818 - version = "0.8.0"
2837 + version = "0.10.0"
2819 2838 source = "registry+https://github.com/rust-lang/crates.io-index"
2820 - checksum = "c43e27ea24999c6692f6e72ee286fafc561da0cc6f81bc39fc867621718063f7"
2839 + checksum = "c62c909826835a6a4212081a4c95ef2db0d07c0cb1a550849c2e779b962f093e"
2821 2840 dependencies = [
2841 + "include_dir",
2822 2842 "serde",
2823 2843 "toml",
2824 2844 ]
M Cargo.toml +1 -1
@@ -48,4 +48,4 @@ rayon = "1.10"
48 48 libc = "0.2"
49 49 midir = "0.11"
50 50 tagtree = { path = "../../MNW/shared/tagtree" }
51 - makeover = "0.8.0"
51 + makeover = "0.10.0"
M README.md +1 -1
@@ -80,7 +80,7 @@ Theme loading comes from [makeover](https://crates.io/crates/makeover), publishe
80 80 ### Infrastructure
81 81 - **Cloud sync**: cross-device sync of metadata, tags, and VFS via SyncKit (E2E encrypted, ChaCha20-Poly1305 + Argon2)
82 82 - **OTA updates**: background update checker with consent dialog
83 - - **Bundled themes**: dark, light, and high-contrast variants in TOML format (see `crates/audiofiles-browser/themes/`)
83 + - **Bundled themes**: dark, light, and high-contrast variants in TOML format, from the shared [makeover](https://crates.io/crates/makeover) crate
84 84 - **Audio formats**: WAV, FLAC, MP3, OGG, AIFF (via Symphonia, pure Rust)
85 85 - **Platforms**: macOS, Windows, Linux (standalone, no backend required)
86 86
@@ -55,37 +55,14 @@ pub mod stroke {
55 55 pub const FOCUS: f32 = 1.5;
56 56 }
57 57
58 - // --- Bundled themes (embedded at compile time) ---
59 -
60 - static BUNDLED_THEMES: &[(&str, &str)] = &[
61 - ("audiofiles", include_str!("../../themes/audiofiles.toml")),
62 - ("tokyonight", include_str!("../../themes/tokyonight.toml")),
63 - ("catppuccin-mocha", include_str!("../../themes/catppuccin-mocha.toml")),
64 - ("catppuccin-macchiato", include_str!("../../themes/catppuccin-macchiato.toml")),
65 - ("catppuccin-frappe", include_str!("../../themes/catppuccin-frappe.toml")),
66 - ("catppuccin-latte", include_str!("../../themes/catppuccin-latte.toml")),
67 - ("one-dark", include_str!("../../themes/one-dark.toml")),
68 - ("dracula", include_str!("../../themes/dracula.toml")),
69 - ("nightfox", include_str!("../../themes/nightfox.toml")),
70 - ("carbonfox", include_str!("../../themes/carbonfox.toml")),
71 - ("oxocarbon-dark", include_str!("../../themes/oxocarbon-dark.toml")),
72 - ("poimandres", include_str!("../../themes/poimandres.toml")),
73 - ("ayu-mirage", include_str!("../../themes/ayu-mirage.toml")),
74 - ("nord", include_str!("../../themes/nord.toml")),
75 - ("ayu-light", include_str!("../../themes/ayu-light.toml")),
76 - ("flatwhite", include_str!("../../themes/flatwhite.toml")),
77 - ("dawnfox", include_str!("../../themes/dawnfox.toml")),
78 - ("oxocarbon-light", include_str!("../../themes/oxocarbon-light.toml")),
79 - ("neobrute", include_str!("../../themes/neobrute.toml")),
80 - ("high-contrast", include_str!("../../themes/high-contrast.toml")),
81 - ("gruvbox-dark", include_str!("../../themes/gruvbox-dark.toml")),
82 - ("gruvbox-light", include_str!("../../themes/gruvbox-light.toml")),
83 - ("rosepine", include_str!("../../themes/rosepine.toml")),
84 - ("rosepine-dawn", include_str!("../../themes/rosepine-dawn.toml")),
85 - ("everforest", include_str!("../../themes/everforest.toml")),
86 - ("solarized-dark", include_str!("../../themes/solarized-dark.toml")),
87 - ("kanagawa", include_str!("../../themes/kanagawa.toml")),
88 - ];
58 + // --- Bundled themes ---
59 +
60 + /// The shared theme set, from `makeover`. These were once 27 `include_str!`
61 + /// copies of files under `themes/`; they are now read from the one crate every
62 + /// make-family app shares, so a theme added, corrected, or withdrawn there
63 + /// reaches this app without a second copy drifting behind.
64 + static BUNDLED_THEMES: LazyLock<Vec<(&'static str, &'static str)>> =
65 + LazyLock::new(|| makeover::embedded_themes().collect());
89 66
90 67 /// The resolved theme colors (intent vocabulary) for egui.
91 68 #[derive(Debug, Clone)]
@@ -309,7 +286,7 @@ fn contrast_ratio(a: Color32, b: Color32) -> f64 {
309 286
310 287 /// Load a theme's full color set by id (bundled or custom on disk).
311 288 fn theme_colors_for(id: &str) -> Option<ThemeColors> {
312 - for (bundled_id, content) in BUNDLED_THEMES {
289 + for (bundled_id, content) in BUNDLED_THEMES.iter() {
313 290 if *bundled_id == id {
314 291 return parse_theme(content).ok();
315 292 }
@@ -342,7 +319,7 @@ pub fn list_themes() -> Vec<ThemeMeta> {
342 319 let mut seen = std::collections::HashSet::new();
343 320
344 321 // Bundled themes first
345 - for (id, content) in BUNDLED_THEMES {
322 + for (id, content) in BUNDLED_THEMES.iter() {
346 323 let table: toml::Table = match content.parse() {
347 324 Ok(t) => t,
348 325 Err(_) => continue,
@@ -480,7 +457,7 @@ pub fn init(id: Option<&str>) {
480 457 /// Switch the active theme. Checks bundled themes first, then custom directory.
481 458 pub fn set_theme(id: &str) {
482 459 // Try bundled themes first
483 - for (bundled_id, content) in BUNDLED_THEMES {
460 + for (bundled_id, content) in BUNDLED_THEMES.iter() {
484 461 if *bundled_id == id {
485 462 match parse_theme(content) {
486 463 Ok(colors) => {
@@ -521,7 +498,7 @@ pub fn theme_preview_colors(id: &str) -> Option<(Color32, Color32, Color32)> {
521 498 let content = {
522 499 // Check bundled first
523 500 let mut found = None;
524 - for (bundled_id, c) in BUNDLED_THEMES {
501 + for (bundled_id, c) in BUNDLED_THEMES.iter() {
525 502 if *bundled_id == id {
526 503 found = Some(c.to_string());
527 504 break;
@@ -555,7 +532,7 @@ pub fn export_theme_content(id: &str) -> Option<String> {
555 532 }
556 533
557 534 // Check bundled themes
558 - for (bundled_id, content) in BUNDLED_THEMES {
535 + for (bundled_id, content) in BUNDLED_THEMES.iter() {
559 536 if *bundled_id == id {
560 537 return Some(content.to_string());
561 538 }
@@ -1072,8 +1049,26 @@ overlay = "#16161e"
1072 1049 // ---------------------------------------------------------------
1073 1050
1074 1051 #[test]
1052 + fn bundled_set_comes_from_makeover_and_keeps_this_app_themed() {
1053 + // The theme list is user-visible surface now sourced from another
1054 + // crate, so pin the parts that would be a regression if makeover
1055 + // changed underneath: this app's own skin, and neobrute, which was
1056 + // local here before the consolidation and is not interchangeable with
1057 + // the similarly-descended `goingson` theme.
1058 + let ids: Vec<&str> = BUNDLED_THEMES.iter().map(|(id, _)| *id).collect();
1059 + for required in ["audiofiles", "neobrute", "high-contrast"] {
1060 + assert!(ids.contains(&required), "bundled set lost `{required}`: {ids:?}");
1061 + }
1062 + assert!(
1063 + !ids.contains(&"palenight"),
1064 + "palenight was withdrawn over unresolvable provenance and must not return"
1065 + );
1066 + assert!(ids.len() >= 30, "bundled set looks truncated: {} themes", ids.len());
1067 + }
1068 +
1069 + #[test]
1075 1070 fn all_bundled_themes_parse_successfully() {
1076 - for (id, content) in BUNDLED_THEMES {
1071 + for (id, content) in BUNDLED_THEMES.iter() {
1077 1072 let result = parse_theme(content);
1078 1073 assert!(result.is_ok(), "Bundled theme '{id}' failed to parse: {:?}", result.err());
1079 1074 }
@@ -1081,7 +1076,7 @@ overlay = "#16161e"
1081 1076
1082 1077 #[test]
1083 1078 fn all_bundled_themes_have_valid_meta() {
1084 - for (id, content) in BUNDLED_THEMES {
1079 + for (id, content) in BUNDLED_THEMES.iter() {
1085 1080 let table: toml::Table = content.parse()
1086 1081 .unwrap_or_else(|e| panic!("Bundled theme '{id}' is invalid TOML: {e}"));
1087 1082 let meta = makeover::parse_meta(id, &table, false);
@@ -1093,7 +1088,7 @@ overlay = "#16161e"
1093 1088 #[test]
1094 1089 fn bundled_theme_colors_are_not_all_black() {
1095 1090 // Sanity check: a properly parsed theme shouldn't have all-black fields
1096 - for (id, content) in BUNDLED_THEMES {
1091 + for (id, content) in BUNDLED_THEMES.iter() {
1097 1092 let theme = parse_theme(content).unwrap();
1098 1093 let all_black = theme.surface_page == Color32::BLACK
1099 1094 && theme.content == Color32::BLACK
@@ -1,39 +0,0 @@
1 - # audiofiles — the app's titular default skin. Cross-available as a universal
2 - # theme. Built from a 5-tone earthy palette: Ash Grey #CCDAD1 / #9CAEA9,
3 - # Grey Olive #788585, Dim Grey #6F6866, Deep Mocha #38302E. Accents are
4 - # desaturated naturals tuned to harmonize with the sage-to-mocha range.
5 -
6 - [meta]
7 - name = "audiofiles"
8 - variant = "light"
9 -
10 - [surface]
11 - page = "#CCDAD1"
12 - raised = "#DAE3DC"
13 - sunken = "#9CAEA9"
14 - overlay = "#B4C5BB"
15 -
16 - [content]
17 - primary = "#38302E"
18 - secondary = "#6F6866"
19 - muted = "#788585"
20 -
21 - [action]
22 - primary = "#5E7C8E"
23 -
24 - [status]
25 - danger = "#B05F4E"
26 - success = "#6F8A5C"
27 - warning = "#C19A53"
28 - info = "#5F8C82"
29 -
30 - [line]
31 - border = "#9CAEA9"
32 -
33 - [category]
34 - one = "#B05F4E"
35 - two = "#6F8A5C"
36 - three = "#5E7C8E"
37 - four = "#C19A53"
38 - five = "#836A80"
39 - six = "#5F8C82"
@@ -1,37 +0,0 @@
1 - # Based on Ayu by Konstantin Pschera — MIT License
2 - # https://github.com/ayu-theme
3 -
4 - [meta]
5 - name = "Ayu Light"
6 - variant = "light"
7 -
8 - [surface]
9 - page = "#e7eaed"
10 - raised = "#f2f4f6"
11 - sunken = "#d0d4d8"
12 - overlay = "#dde1e5"
13 -
14 - [content]
15 - primary = "#5c6166"
16 - secondary = "#6b7580"
17 - muted = "#8b9199"
18 -
19 - [action]
20 - primary = "#399ee6"
21 -
22 - [status]
23 - danger = "#f07171"
24 - success = "#86b300"
25 - warning = "#ffaa33"
26 - info = "#55b4d4"
27 -
28 - [line]
29 - border = "#828c9a"
30 -
31 - [category]
32 - one = "#f07171"
33 - two = "#86b300"
34 - three = "#399ee6"
35 - four = "#ffaa33"
36 - five = "#a37acc"
37 - six = "#55b4d4"
@@ -1,37 +0,0 @@
1 - # Based on Ayu by dempfi — MIT License
2 - # https://github.com/ayu-theme/ayu-colors
3 -
4 - [meta]
5 - name = "Ayu Mirage"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#1f2430"
10 - raised = "#242936"
11 - sunken = "#272d38"
12 - overlay = "#191e29"
13 -
14 - [content]
15 - primary = "#cccac2"
16 - secondary = "#b8b4aa"
17 - muted = "#707a8c"
18 -
19 - [action]
20 - primary = "#5ccfe6"
21 -
22 - [status]
23 - danger = "#f28779"
24 - success = "#bae67e"
25 - warning = "#ffd580"
26 - info = "#95e6cb"
27 -
28 - [line]
29 - border = "#33415e"
30 -
31 - [category]
32 - one = "#f28779"
33 - two = "#bae67e"
34 - three = "#5ccfe6"
35 - four = "#ffd580"
36 - five = "#d4bfff"
37 - six = "#95e6cb"
@@ -1,37 +0,0 @@
1 - # Based on Carbonfox by EdenEast — MIT License
2 - # https://github.com/EdenEast/nightfox.nvim
3 -
4 - [meta]
5 - name = "Carbonfox"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#161616"
10 - raised = "#252525"
11 - sunken = "#1e1e1e"
12 - overlay = "#101010"
13 -
14 - [content]
15 - primary = "#f2f4f8"
16 - secondary = "#dde1e6"
17 - muted = "#878d96"
18 -
19 - [action]
20 - primary = "#78a9ff"
21 -
22 - [status]
23 - danger = "#ee5396"
24 - success = "#25be6a"
25 - warning = "#08bdba"
26 - info = "#33b1ff"
27 -
28 - [line]
29 - border = "#393939"
30 -
31 - [category]
32 - one = "#ee5396"
33 - two = "#25be6a"
34 - three = "#78a9ff"
35 - four = "#08bdba"
36 - five = "#be95ff"
37 - six = "#33b1ff"
@@ -1,37 +0,0 @@
1 - # Based on Catppuccin by Catppuccin Org — MIT License
2 - # https://github.com/catppuccin/catppuccin
3 -
4 - [meta]
5 - name = "Catppuccin Frappé"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#303446"
10 - raised = "#232634"
11 - sunken = "#414559"
12 - overlay = "#292c3c"
13 -
14 - [content]
15 - primary = "#c6d0f5"
16 - secondary = "#b5bfe2"
17 - muted = "#a5adce"
18 -
19 - [action]
20 - primary = "#8caaee"
21 -
22 - [status]
23 - danger = "#e78284"
24 - success = "#a6d189"
25 - warning = "#e5c890"
26 - info = "#81c8be"
27 -
28 - [line]
29 - border = "#626880"
30 -
31 - [category]
32 - one = "#e78284"
33 - two = "#a6d189"
34 - three = "#8caaee"
35 - four = "#e5c890"
36 - five = "#ca9ee6"
37 - six = "#81c8be"
@@ -1,37 +0,0 @@
1 - # Based on Catppuccin by Catppuccin Org — MIT License
2 - # https://github.com/catppuccin/catppuccin
3 -
4 - [meta]
5 - name = "Catppuccin Latte"
6 - variant = "light"
7 -
8 - [surface]
9 - page = "#e6e9ef"
10 - raised = "#eff1f5"
11 - sunken = "#ccd0da"
12 - overlay = "#dce0e8"
13 -
14 - [content]
15 - primary = "#4c4f69"
16 - secondary = "#5c5f77"
17 - muted = "#6c6f82"
18 -
19 - [action]
20 - primary = "#1e66f5"
21 -
22 - [status]
23 - danger = "#d20f39"
24 - success = "#40a02b"
25 - warning = "#df8e1d"
26 - info = "#04a5e5"
27 -
28 - [line]
29 - border = "#bcc0cc"
30 -
31 - [category]
32 - one = "#d20f39"
33 - two = "#40a02b"
34 - three = "#1e66f5"
35 - four = "#df8e1d"
36 - five = "#8839ef"
37 - six = "#04a5e5"
@@ -1,37 +0,0 @@
1 - # Based on Catppuccin by Catppuccin Org — MIT License
2 - # https://github.com/catppuccin/catppuccin
3 -
4 - [meta]
5 - name = "Catppuccin Macchiato"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#24273a"
10 - raised = "#181926"
11 - sunken = "#363a4f"
12 - overlay = "#1e2030"
13 -
14 - [content]
15 - primary = "#cad3f5"
16 - secondary = "#b8c0e0"
17 - muted = "#a5adcb"
18 -
19 - [action]
20 - primary = "#8aadf4"
21 -
22 - [status]
23 - danger = "#ed8796"
24 - success = "#a6da95"
25 - warning = "#eed49f"
26 - info = "#8bd5ca"
27 -
28 - [line]
29 - border = "#5b6078"
30 -
31 - [category]
32 - one = "#ed8796"
33 - two = "#a6da95"
34 - three = "#8aadf4"
35 - four = "#eed49f"
36 - five = "#c6a0f6"
37 - six = "#8bd5ca"
@@ -1,37 +0,0 @@
1 - # Based on Catppuccin by Catppuccin Org — MIT License
2 - # https://github.com/catppuccin/catppuccin
3 -
4 - [meta]
5 - name = "Catppuccin Mocha"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#181825"
10 - raised = "#1e1e2e"
11 - sunken = "#313244"
12 - overlay = "#11111b"
13 -
14 - [content]
15 - primary = "#cdd6f4"
16 - secondary = "#bac2de"
17 - muted = "#9399b2"
18 -
19 - [action]
20 - primary = "#89b4fa"
21 -
22 - [status]
23 - danger = "#f38ba8"
24 - success = "#a6e3a1"
25 - warning = "#f9e2af"
26 - info = "#89dceb"
27 -
28 - [line]
29 - border = "#45475a"
30 -
31 - [category]
32 - one = "#f38ba8"
33 - two = "#a6e3a1"
34 - three = "#89b4fa"
35 - four = "#f9e2af"
36 - five = "#cba6f7"
37 - six = "#89dceb"
@@ -1,37 +0,0 @@
1 - # Based on Dawnfox by EdenEast — MIT License
2 - # https://github.com/EdenEast/nightfox.nvim
3 -
4 - [meta]
5 - name = "Dawnfox"
6 - variant = "light"
7 -
8 - [surface]
9 - page = "#faf4ed"
10 - raised = "#f5efe8"
11 - sunken = "#ebe0df"
12 - overlay = "#ebe5df"
13 -
14 - [content]
15 - primary = "#575279"
16 - secondary = "#625c87"
17 - muted = "#a8a3b3"
18 -
19 - [action]
20 - primary = "#286983"
21 -
22 - [status]
23 - danger = "#b4637a"
24 - success = "#618774"
25 - warning = "#ea9d34"
26 - info = "#56949f"
27 -
28 - [line]
29 - border = "#bdbfc9"
30 -
31 - [category]
32 - one = "#b4637a"
33 - two = "#618774"
34 - three = "#286983"
35 - four = "#ea9d34"
36 - five = "#907aa9"
37 - six = "#56949f"
@@ -1,37 +0,0 @@
1 - # Based on Dracula by Dracula Theme — MIT License
2 - # https://github.com/dracula/dracula-theme
3 -
4 - [meta]
5 - name = "Dracula"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#222430"
10 - raised = "#282A36"
11 - sunken = "#44475a"
12 - overlay = "#191A21"
13 -
14 - [content]
15 - primary = "#f8f8f2"
16 - secondary = "#f8f8f2"
17 - muted = "#6272A4"
18 -
19 - [action]
20 - primary = "#8be9fd"
21 -
22 - [status]
23 - danger = "#ff5555"
24 - success = "#50fa7b"
25 - warning = "#f1fa8c"
26 - info = "#8be9fd"
27 -
28 - [line]
29 - border = "#44475a"
30 -
31 - [category]
32 - one = "#ff5555"
33 - two = "#50fa7b"
34 - three = "#8be9fd"
35 - four = "#f1fa8c"
36 - five = "#BD93F9"
37 - six = "#8be9fd"
@@ -1,37 +0,0 @@
1 - # Based on Everforest by sainnhe — MIT License
2 - # https://github.com/sainnhe/everforest
3 -
4 - [meta]
5 - name = "Everforest"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#2d353b"
10 - raised = "#343f44"
11 - sunken = "#3d484d"
12 - overlay = "#272e33"
13 -
14 - [content]
15 - primary = "#d3c6aa"
16 - secondary = "#9da9a0"
17 - muted = "#7a8478"
18 -
19 - [action]
20 - primary = "#7fbbb3"
21 -
22 - [status]
23 - danger = "#e67e80"
24 - success = "#a7c080"
25 - warning = "#dbbc7f"
26 - info = "#83c092"
27 -
28 - [line]
29 - border = "#3d484d"
30 -
31 - [category]
32 - one = "#e67e80"
33 - two = "#a7c080"
34 - three = "#7fbbb3"
35 - four = "#dbbc7f"
36 - five = "#d699b6"
37 - six = "#83c092"
@@ -1,37 +0,0 @@
1 - # Based on Flatwhite by biletskyy — MIT License
2 - # https://github.com/biletskyy/flatwhite-syntax
3 -
4 - [meta]
5 - name = "Flatwhite"
6 - variant = "light"
7 -
8 - [surface]
9 - page = "#f1ece4"
10 - raised = "#f7f3ee"
11 - sunken = "#dcd3c6"
12 - overlay = "#e4ddd2"
13 -
14 - [content]
15 - primary = "#605a52"
16 - secondary = "#786d5e"
17 - muted = "#9a8b78"
18 -
19 - [action]
20 - primary = "#4c5361"
21 -
22 - [status]
23 - danger = "#ff1414"
24 - success = "#2db448"
25 - warning = "#f2a60d"
26 - info = "#465953"
27 -
28 - [line]
29 - border = "#93836c"
30 -
31 - [category]
32 - one = "#ff1414"
33 - two = "#2db448"
34 - three = "#4c5361"
35 - four = "#f2a60d"
36 - five = "#614c61"
37 - six = "#465953"
@@ -1,37 +0,0 @@
1 - # Based on Gruvbox by Pavel Pertsev (morhetz) — MIT License
2 - # https://github.com/morhetz/gruvbox
3 -
4 - [meta]
5 - name = "Gruvbox Dark"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#282828"
10 - raised = "#3c3836"
11 - sunken = "#504945"
12 - overlay = "#1d2021"
13 -
14 - [content]
15 - primary = "#ebdbb2"
16 - secondary = "#d5c4a1"
17 - muted = "#a89984"
18 -
19 - [action]
20 - primary = "#83a598"
21 -
22 - [status]
23 - danger = "#fb4934"
24 - success = "#b8bb26"
25 - warning = "#fabd2f"
26 - info = "#8ec07c"
27 -
28 - [line]
29 - border = "#504945"
30 -
31 - [category]
32 - one = "#fb4934"
33 - two = "#b8bb26"
34 - three = "#83a598"
35 - four = "#fabd2f"
36 - five = "#d3869b"
37 - six = "#8ec07c"
@@ -1,37 +0,0 @@
1 - # Based on Gruvbox by Pavel Pertsev (morhetz) — MIT License
2 - # https://github.com/morhetz/gruvbox
3 -
4 - [meta]
5 - name = "Gruvbox Light"
6 - variant = "light"
7 -
8 - [surface]
9 - page = "#fbf1c7"
10 - raised = "#f9f5d7"
11 - sunken = "#d5c4a1"
12 - overlay = "#f2e5bc"
13 -
14 - [content]
15 - primary = "#3c3836"
16 - secondary = "#504945"
17 - muted = "#7c6f64"
18 -
19 - [action]
20 - primary = "#076678"
21 -
22 - [status]
23 - danger = "#9d0006"
24 - success = "#79740e"
25 - warning = "#b57614"
26 - info = "#427b58"
27 -
28 - [line]
29 - border = "#d5c4a1"
30 -
31 - [category]
32 - one = "#9d0006"
33 - two = "#79740e"
34 - three = "#076678"
35 - four = "#b57614"
36 - five = "#8f3f71"
37 - six = "#427b58"
@@ -1,36 +0,0 @@
1 - # Original GoingsOn theme
2 -
3 - [meta]
4 - name = "High Contrast"
5 - variant = "high-contrast"
6 -
7 - [surface]
8 - page = "#000000"
9 - raised = "#0a0a0a"
10 - sunken = "#262626"
11 - overlay = "#141414"
12 -
13 - [content]
14 - primary = "#ffffff"
15 - secondary = "#f0f0f0"
16 - muted = "#b0b0b0"
17 -
18 - [action]
19 - primary = "#74c0fc"
20 -
21 - [status]
22 - danger = "#ff6b6b"
23 - success = "#51cf66"
24 - warning = "#ffd43b"
25 - info = "#66d9e8"
26 -
27 - [line]
28 - border = "#666666"
29 -
30 - [category]
31 - one = "#ff6b6b"
32 - two = "#51cf66"
33 - three = "#74c0fc"
34 - four = "#ffd43b"
35 - five = "#da77f2"
36 - six = "#66d9e8"
@@ -1,37 +0,0 @@
1 - # Based on Kanagawa by Tommaso Laurenzi (rebelot) — MIT License
2 - # https://github.com/rebelot/kanagawa.nvim
3 -
4 - [meta]
5 - name = "Kanagawa"
6 - variant = "dark"
7 -
8 - [surface]
9 - page = "#1F1F28"
10 - raised = "#363646"
11 - sunken = "#2A2A37"
12 - overlay = "#16161D"
13 -
14 - [content]
15 - primary = "#DCD7BA"
16 - secondary = "#C8C093"
17 - muted = "#727169"
18 -
19 - [action]
20 - primary = "#7E9CD8"
21 -
22 - [status]
23 - danger = "#E46876"
24 - success = "#98BB6C"
25 - warning = "#E6C384"
26 - info = "#7FB4CA"
27 -
28 - [line]
29 - border = "#54546D"
30 -
31 - [category]
32 - one = "#E46876"
33 - two = "#98BB6C"
34 - three = "#7E9CD8"
35 - four = "#E6C384"
36 - five = "#957FB8"
37 - six = "#7FB4CA"