From 6d9912af5604ed43f519ffac288f126b3cfc1377 Mon Sep 17 00:00:00 2001 From: Breadway Date: Wed, 26 Aug 2026 20:14:42 +0800 Subject: [PATCH] =?UTF-8?q?shell=20themes:=20add=20Daylight=20=E2=80=94=20?= =?UTF-8?q?bottom-anchored,=20segmented,=20light=20builtin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fourth compiled-in shell theme (bread-theme/src/shell/builtin.rs). Stresses four axes no existing theme touched: - light surfaces (new tokens.light flag, swaps which of the fixed @bg/ @on-bg pair plays paper-surface vs ink — see Tokens::light's doc comment) - bottom anchoring (bar.window.anchors = ["bottom", ...]) - segmented bar chrome (new bar_border = "segmented" value: the bar window itself draws no fill/border, three slot-group pills draw their own) - blur disabled per-theme ([compositor.*] blur = false everywhere) Also: a new bottom_right surface anchor (manifest.rs + types.rs), since the three existing anchor shapes all assume a top-anchored bar's satellites belong in the top-right corner. tokens.accent2() gives the equaliser its own accent independent of accent_from/accent_to. --- .../assets/shell/daylight/daylight.css | 117 ++++++++ bread-theme/assets/shell/daylight/theme.toml | 281 ++++++++++++++++++ bread-theme/src/shell/builtin.rs | 18 ++ bread-theme/src/shell/manifest.rs | 6 +- bread-theme/src/shell/mod.rs | 162 +++++++++- bread-theme/src/shell/types.rs | 103 +++++-- 6 files changed, 665 insertions(+), 22 deletions(-) create mode 100644 bread-theme/assets/shell/daylight/daylight.css create mode 100644 bread-theme/assets/shell/daylight/theme.toml diff --git a/bread-theme/assets/shell/daylight/daylight.css b/bread-theme/assets/shell/daylight/daylight.css new file mode 100644 index 0000000..eb65fe7 --- /dev/null +++ b/bread-theme/assets/shell/daylight/daylight.css @@ -0,0 +1,117 @@ +/* CSS template for the daylight builtin (bread-theme/src/shell/builtin.rs). + * Same scope and substitution rules as its three siblings: only the + * window/workspace/clock chrome the manifest's own concepts model, `{name}` + * tokens substituted, `@name` palette references passed through untouched. + * Declared-but-not-yet-consumed in production, same as every sibling + * template — see `ShellTheme::css`'s doc comment for why (breadbar hand- + * rolls its own CSS in `breadbar::theme::load_css` instead of calling this + * method). Exercised by this crate's own tests. + * + * Source: bos-ui-demos/proposed/daylight.html's