Skip to main content

max / audiofiles

theme: replace black-and-white default with muted sage audiofiles skin New titular default: Deep Mocha text on an Ash Grey sage canvas with a desaturated earthy accent set. Updates the bundled themes/audiofiles.toml and the Rust default() fallback in theme.rs; picks up theme-common 0.4.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-06-13 00:26 UTC
Commit: a6204020a33f353aacacc19eb5966ef775721add
Parent: e9ff189
3 files changed, +36 insertions, -34 deletions
M Cargo.lock +1 -1
@@ -5045,7 +5045,7 @@ dependencies = [
5045 5045
5046 5046 [[package]]
5047 5047 name = "theme-common"
5048 - version = "0.3.1"
5048 + version = "0.4.0"
5049 5049 dependencies = [
5050 5050 "serde",
5051 5051 "toml",
@@ -124,22 +124,23 @@ pub struct ThemeColors {
124 124
125 125 impl Default for ThemeColors {
126 126 fn default() -> Self {
127 - // audiofiles default: bold black and white
127 + // audiofiles default: muted sage & mocha (keep in sync with
128 + // themes/audiofiles.toml — this is the pre-load Rust fallback).
128 129 Self {
129 - bg_primary: Color32::from_rgb(0x00, 0x00, 0x00),
130 - bg_secondary: Color32::from_rgb(0x0a, 0x0a, 0x0a),
131 - bg_tertiary: Color32::from_rgb(0x1a, 0x1a, 0x1a),
132 - bg_surface: Color32::from_rgb(0x05, 0x05, 0x05),
133 - fg_primary: Color32::from_rgb(0xff, 0xff, 0xff),
134 - fg_secondary: Color32::from_rgb(0xd0, 0xd0, 0xd0),
135 - fg_muted: Color32::from_rgb(0x85, 0x85, 0x85),
136 - accent_red: Color32::from_rgb(0xff, 0x3b, 0x30),
137 - accent_green: Color32::from_rgb(0x30, 0xd1, 0x58),
138 - accent_blue: Color32::from_rgb(0x0a, 0x84, 0xff),
139 - accent_yellow: Color32::from_rgb(0xff, 0xd6, 0x0a),
140 - accent_purple: Color32::from_rgb(0xbf, 0x5a, 0xf2),
141 - accent_cyan: Color32::from_rgb(0x64, 0xd2, 0xff),
142 - border_default: Color32::from_rgb(0x33, 0x33, 0x33),
130 + bg_primary: Color32::from_rgb(0xCC, 0xDA, 0xD1),
131 + bg_secondary: Color32::from_rgb(0xB4, 0xC5, 0xBB),
132 + bg_tertiary: Color32::from_rgb(0x9C, 0xAE, 0xA9),
133 + bg_surface: Color32::from_rgb(0xDA, 0xE3, 0xDC),
134 + fg_primary: Color32::from_rgb(0x38, 0x30, 0x2E),
135 + fg_secondary: Color32::from_rgb(0x6F, 0x68, 0x66),
136 + fg_muted: Color32::from_rgb(0x78, 0x85, 0x85),
137 + accent_red: Color32::from_rgb(0xB0, 0x5F, 0x4E),
138 + accent_green: Color32::from_rgb(0x6F, 0x8A, 0x5C),
139 + accent_blue: Color32::from_rgb(0x5E, 0x7C, 0x8E),
140 + accent_yellow: Color32::from_rgb(0xC1, 0x9A, 0x53),
141 + accent_purple: Color32::from_rgb(0x83, 0x6A, 0x80),
142 + accent_cyan: Color32::from_rgb(0x5F, 0x8C, 0x82),
143 + border_default: Color32::from_rgb(0x9C, 0xAE, 0xA9),
143 144 rounding: 4.0,
144 145 item_spacing_x: 8.0,
145 146 item_spacing_y: 5.0,
@@ -1,29 +1,30 @@
1 - # audiofiles default theme — bold black and white
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.
2 5
3 6 [meta]
4 7 name = "audiofiles"
5 - variant = "dark"
8 + variant = "light"
6 9
7 10 [background]
8 - primary = "#000000"
9 - secondary = "#0a0a0a"
10 - tertiary = "#1a1a1a"
11 - surface = "#050505"
11 + primary = "#CCDAD1" # Ash Grey — main canvas
12 + secondary = "#B4C5BB" # mid sage — headers / secondary panels
13 + tertiary = "#9CAEA9" # Ash Grey deep — selected / inset
14 + surface = "#DAE3DC" # lighter sage — raised cards/rows
12 15
13 16 [foreground]
14 - primary = "#ffffff"
15 - secondary = "#d0d0d0"
16 - # muted lifted from #707070 (~4.2:1 on the black surface, under WCAG AA) to
17 - # #858585 (~5.7:1 on #000, >=4.7:1 on the #1a1a1a tertiary surface).
18 - muted = "#858585"
17 + primary = "#38302E" # Deep Mocha — body text
18 + secondary = "#6F6866" # Dim Grey
19 + muted = "#788585" # Grey Olive — hints / disabled
19 20
20 21 [accent]
21 - red = "#ff3b30"
22 - green = "#30d158"
23 - blue = "#0a84ff"
24 - yellow = "#ffd60a"
25 - purple = "#bf5af2"
26 - cyan = "#64d2ff"
22 + red = "#B05F4E" # muted terracotta
23 + green = "#6F8A5C" # muted olive
24 + blue = "#5E7C8E" # muted slate
25 + yellow = "#C19A53" # muted ochre
26 + purple = "#836A80" # muted mauve
27 + cyan = "#5F8C82" # muted teal
27 28
28 29 [border]
29 - default = "#333333"
30 + default = "#9CAEA9"