git.lucas.co / cce-ui
GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git

commit666e2d3f392b544dca38702873b93d3aba4e8a8f
parentf2dbdba640
authorLucas Galante <[email protected]>
date2026-07-17 10:41
feat: statusbar styling moves to style.surface.statusbar

The statusbar chrome keys (color, text_color, blur, font) leave the
backplate domain; menubar stays under style.surface.backplate.
No legacy fallback — configs migrate the node up one level.

Co-Authored-By: Claude Fable 5 <[email protected]>

 src/color.rs  | 8 ++++----
 src/config.rs | 2 +-
 src/layout.rs | 8 ++++----
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/color.rs b/src/color.rs
index e14e248..95d5ca3 100644
--- a/src/color.rs
+++ b/src/color.rs
@@ -300,15 +300,15 @@ fn parse_and_set_colors(content: &str) {
         if let Ok(mut lock) = BACKPLATE_MENUBAR_BLUR.write() { *lock = blur_val > 0.001; }
     }
 
-    if let Some(c) = get_color("/style/surface/backplate/statusbar/color") {
+    if let Some(c) = get_color("/style/surface/statusbar/color") {
         if let Ok(mut lock) = BACKPLATE_STATUSBAR_COLOR.write() { *lock = c; }
     }
-    if let Some(c) = get_color("/style/surface/backplate/statusbar/text_color") {
+    if let Some(c) = get_color("/style/surface/statusbar/text_color") {
         if let Ok(mut lock) = BACKPLATE_STATUSBAR_TEXT_COLOR.write() { *lock = c; }
     }
-    if let Some(blur) = val.pointer("/style/surface/backplate/statusbar/blur").and_then(|v| v.as_bool()) {
+    if let Some(blur) = val.pointer("/style/surface/statusbar/blur").and_then(|v| v.as_bool()) {
         if let Ok(mut lock) = BACKPLATE_STATUSBAR_BLUR.write() { *lock = blur; }
-    } else if let Some(blur_val) = val.pointer("/style/surface/backplate/statusbar/blur").and_then(|v| v.as_f64()) {
+    } else if let Some(blur_val) = val.pointer("/style/surface/statusbar/blur").and_then(|v| v.as_f64()) {
         if let Ok(mut lock) = BACKPLATE_STATUSBAR_BLUR.write() { *lock = blur_val > 0.001; }
     }
     if let Some(c) = get_color("/layout/color_borders_color") {
diff --git a/src/config.rs b/src/config.rs
index 2c9b7d3..814ee97 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -791,8 +791,8 @@ mod tests {
                 surface {
                     backplate blur=(f64)0.1 color=(rgba)"#5e657acf" corner_radius=(i64)12 {
                         menubar blur=(bool)true color=(rgba)"#1a1d26d0" text_color=(rgba)"#e2e4f0ff"
-                        statusbar blur=(bool)false color=(rgba)"#12141cd0" text_color=(rgba)"#b5b9c8ff"
                     }
+                    statusbar blur=(bool)false color=(rgba)"#12141cd0" text_color=(rgba)"#b5b9c8ff"
                 }
                 control {
                     dropdown color=(rgba)"#08080cff"
diff --git a/src/layout.rs b/src/layout.rs
index c60d2b4..403459c 100644
--- a/src/layout.rs
+++ b/src/layout.rs
@@ -145,10 +145,10 @@ fn flatten_json_to_flat_props(val: &serde_json::Value, prefix: &str, flat_props:
                 "style.surface.backplate.menubar.text_color" => "backplate_menubar_text_color",
                 "style.surface.backplate.menubar.blur" => "backplate_menubar_blur",
                 "style.surface.backplate.menubar.font" => "menubar_font",
-                "style.surface.backplate.statusbar.color" => "backplate_statusbar_color",
-                "style.surface.backplate.statusbar.text_color" => "backplate_statusbar_text_color",
-                "style.surface.backplate.statusbar.blur" => "backplate_statusbar_blur",
-                "style.surface.backplate.statusbar.font" => "statusbar_font",
+                "style.surface.statusbar.color" => "backplate_statusbar_color",
+                "style.surface.statusbar.text_color" => "backplate_statusbar_text_color",
+                "style.surface.statusbar.blur" => "backplate_statusbar_blur",
+                "style.surface.statusbar.font" => "statusbar_font",
                 "style.surface.page.opacity" => "page_opacity",
                 "style.surface.page.margin" => "page_margin",
                 "style.surface.graph.cell_color" => "graph_cell_color",