From 40f8425d94c81226f851eeaed65f3be41300c945 Mon Sep 17 00:00:00 2001 From: DanS Date: Sun, 19 Jul 2026 19:32:02 -0500 Subject: [PATCH] feat(theme): add the Jade skin (dark jade-green + gold veins) A new bundled skin driven by the existing jade_bg.png background: deep green surfaces, jade-green primary accents, and a soft gold secondary echoing the stone's veins, plus a jade specular-glare + jade-to-gold sidebar-border effect. SkinManager auto-discovers it (no C++/CMake changes) and it appears in Settings -> Appearance as "Jade". The background asset (res/img/backgrounds/texture/jade_bg.png) is a binary handled separately; until it lands in the repo the skin falls back to the programmatic gradient on other machines. Co-Authored-By: Claude Opus 4.8 (1M context) --- res/themes/jade.toml | 167 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 res/themes/jade.toml diff --git a/res/themes/jade.toml b/res/themes/jade.toml new file mode 100644 index 0000000..ecabeb4 --- /dev/null +++ b/res/themes/jade.toml @@ -0,0 +1,167 @@ +[theme] +name = "Jade" +author = "The Hush Developers" +dark = true +elevation = { --elevation-0 = "#071210", --elevation-1 = "#0C1A16", --elevation-2 = "#16261F", --elevation-3 = "#1D3128", --elevation-4 = "#243B30" } +images = { background_image = "backgrounds/texture/jade_bg.png", logo = "logos/logo_ObsidianDragon_dark.png" } + +[theme.palette] +--primary = "#2FA07A" +--primary-variant = "#1E7357" +--primary-light = "#7FD1B5" +--secondary = "#C9A24E" +--secondary-variant = "#A8842F" +--secondary-light = "#E0C583" +--background = "#071210" +--surface = "#0C1A16" +--surface-variant = "#16261F" +--on-primary = "#FFFFFF" +--on-secondary = "#000000" +--on-background = "#DCEDE4" +--on-surface = "#DCEDE4" +--on-surface-medium = "rgba(220,237,228,0.85)" +--on-surface-disabled = "rgba(220,237,228,0.58)" +--error = "#CF6679" +--on-error = "#000000" +--success = "#81C784" +--on-success = "#000000" +--warning = "#FFB74D" +--on-warning = "#000000" +--divider = "rgba(130,205,170,0.14)" +--outline = "rgba(130,205,170,0.16)" +--scrim = "rgba(0,0,0,0.6)" +--surface-hover = "rgba(130,205,170,0.07)" +--surface-alt = "rgba(130,205,170,0.05)" +--surface-active = "rgba(130,205,170,0.10)" +--glass-button = "rgba(130,205,170,0.06)" +--glass-button-hover = "rgba(130,205,170,0.12)" +--card-border = "rgba(130,205,170,0.26)" +--text-shadow = "rgba(0,0,0,0.50)" +--input-overlay-text = "rgba(220,237,228,0.30)" +--slider-text = "rgba(220,237,228,0.85)" +--thumb-fill = "rgba(130,205,170,0.15)" +--thumb-border = "rgba(130,205,170,0.50)" +--disabled-label = "rgba(130,205,170,0.18)" +--chart-grid = "rgba(130,205,170,0.05)" +--chart-crosshair = "rgba(130,205,170,0.15)" +--chart-hover-ring = "rgba(130,205,170,0.30)" +--tooltip-bg = "rgba(9,20,16,0.92)" +--tooltip-border = "rgba(130,205,170,0.12)" +--glass-fill = "rgba(130,205,170,0.08)" +--glass-border = "rgba(47,160,122,0.30)" +--glass-noise-tint = "rgba(130,205,170,0.03)" +--tactile-top = "rgba(130,205,170,0.06)" +--tactile-bottom = "rgba(130,205,170,0.0)" +--hover-overlay = "rgba(130,205,170,0.05)" +--active-overlay = "rgba(130,205,170,0.10)" +--rim-light = "rgba(130,205,170,0.14)" +--status-divider = "rgba(130,205,170,0.08)" +--sidebar-hover = "rgba(130,205,170,0.10)" +--sidebar-icon = "rgba(130,205,170,0.42)" +--sidebar-badge = "rgba(220,237,228,1.0)" +--sidebar-divider = "rgba(130,205,170,0.06)" +--chart-line = "rgba(130,205,170,0.10)" +--window-control = "rgba(220,237,228,0.78)" +--window-control-hover = "rgba(130,205,170,0.12)" +--window-close-hover = "rgba(232,17,35,0.78)" +--spinner-track = "rgba(130,205,170,0.10)" +--spinner-active = "rgba(79,184,154,0.85)" +--shutdown-panel-bg = "rgba(7,18,14,0.90)" +--shutdown-panel-border = "rgba(130,205,170,0.07)" +--ram-bar-app = "#2FA07A" +--ram-bar-system = "rgba(255,255,255,0.18)" +--accent-total = "#7FD1B5" +--accent-shielded = "#4FB89A" +--accent-transparent = "#C9A24E" +--accent-action = "#2FA07A" +--accent-market = "#4FB89A" +--accent-portfolio = "#7FD1B5" +--toast-info-accent = "#2FA07A" +--toast-info-text = "#7FD1B5" +--toast-success-accent = "rgba(50,180,80,1.0)" +--toast-success-text = "rgba(180,255,180,1.0)" +--toast-warning-accent = "rgba(204,166,50,1.0)" +--toast-warning-text = "rgba(255,230,130,1.0)" +--toast-error-accent = "rgba(204,64,64,1.0)" +--toast-error-text = "rgba(255,153,153,1.0)" +--snackbar-bg = "rgba(24,40,34,0.95)" +--snackbar-text = "rgba(220,237,228,0.87)" +--snackbar-action = "rgba(79,184,154,1.0)" +--snackbar-action-hover = "rgba(127,209,181,1.0)" +--switch-track-off = "rgba(130,205,170,0.12)" +--switch-track-on = "rgba(47,160,122,0.50)" +--switch-thumb-off = "#A0C0B4" +--switch-thumb-on = "#DCEDE4" +--control-shadow = "rgba(0,0,0,0.24)" +--checkbox-check = "#000000" +--app-bar-shadow = "rgba(0,0,0,0.25)" + +[backdrop] +base-color-top = "rgba(14,32,26,210)" +base-color-bottom = "rgba(6,18,14,210)" +texture-tint-alpha = 120 +gradient-top-r = 10 +gradient-top-g = 30 +gradient-top-b = 22 +gradient-top-a = 90 +gradient-bottom-r = 5 +gradient-bottom-g = 16 +gradient-bottom-b = 12 +gradient-bottom-a = 70 +background-alpha = 0.42 +surface-alpha = 0.56 +frame-alpha = 0.78 +surface-inline-alpha = 0.58 +background-inline-alpha = 0.40 + +# --------------------------------------------------------------------------- +# Theme Visual Effects — Jade (polished stone sheen + gold veining) +# A soft jade specular highlight drifts across panels like light on +# polished nephrite; the active sidebar button traces a jade-to-gold +# border echoing the stone's veins — restrained, like Obsidian. +# --------------------------------------------------------------------------- +[effects] +hue-cycle-enabled = { size = 0.0 } +rainbow-border-enabled = { size = 0.0 } + +# No shimmer sweep — replaced by specular glare +shimmer-enabled = { size = 0.0 } + +positional-hue-enabled = { size = 0.0 } + +glow-pulse-enabled = { size = 0.0 } +edge-trace-enabled = { size = 0.0 } + +# Specular glare — soft blurred jade highlights +specular-glare-enabled = { size = 1.0 } +specular-glare-speed = { size = 0.018 } +specular-glare-intensity = { size = 0.008 } +specular-glare-radius = { size = 0.65 } +specular-glare-count = { size = 1.0 } +specular-glare-color = { color = "rgba(150,220,180,1.0)" } + +# Jade-to-gold color-shifting border on the active sidebar button +gradient-border-enabled = { size = 1.0 } +gradient-border-speed = { size = 0.12 } +gradient-border-thickness = { size = 1.5 } +gradient-border-alpha = { size = 0.55 } +gradient-border-color-a = { color = "#7FD1B5" } +gradient-border-color-b = { color = "#C9A24E" } + +ember-rise-enabled = { size = 0.0 } + +# Shader-like viewport overlay — deep green stone atmosphere +viewport-wash-enabled = { size = 1.0 } +viewport-wash-alpha = { size = 0.05 } +viewport-wash-tl = { color = "#12402E" } +viewport-wash-tr = { color = "#0E3828" } +viewport-wash-bl = { color = "#16442E" } +viewport-wash-br = { color = "#1A4A34" } +viewport-wash-rotate = { size = 0.015 } +viewport-wash-pulse = { size = 0.0 } +viewport-wash-pulse-depth = { size = 0.0 } + +viewport-vignette-enabled = { size = 1.0 } +viewport-vignette-color = { color = "#04140D" } +viewport-vignette-radius = { size = 0.22 } +viewport-vignette-alpha = { size = 0.15 }