feat(bar): group rhythm + semantic @muted dim states (item 28c)
All checks were successful
Check / eval (push) Successful in 2m57s
All checks were successful
Check / eval (push) Successful in 2m57s
Two polish items from the 1080p review. The right cluster gains a wider breath (margin-left 14px) before each functional group — media (pulseaudio/cpu/memory), toggles (powerprofile/nightlight/language), status (battery/updates/notification); a self-hiding group head degrades to the uniform spacing. Dim states (inactive workspaces, DND bell, muted volume) move from alpha(@text, 0.5) tints to the palette's @muted role — safe now that 28b floor-gates muted/base >= 2.0 in every theme; the CSS comment that warned against @muted documented the pre-28b palettes and now states the new invariant. Whole-swap bars untouched (authored identity). Verified: V0; V1 (rendered CSS carries the rule + 4 @muted uses); visual — tokyo-night 1080p re-capture shows the themed backdrop (iteration #35's fix, navy not black), the group gap, and legible muted workspaces. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -76,12 +76,13 @@ review:
|
|||||||
- **Icon weight mix `[human]`:** full-color Papirus icons in the
|
- **Icon weight mix `[human]`:** full-color Papirus icons in the
|
||||||
menus vs all-monochrome bar glyphs — pick: symbolic/monochrome
|
menus vs all-monochrome bar glyphs — pick: symbolic/monochrome
|
||||||
menu icons for one system, or color as the menu's identity.
|
menu icons for one system, or color as the menu's identity.
|
||||||
- **Bar right-cluster rhythm:** confirmed at 1080p — add group
|
- ✓ **Bar right-cluster rhythm** (shipped iteration #36): group
|
||||||
margins (tray/net · stats · toggles · battery/notify) on the
|
margins before pulseaudio/powerprofile/battery — heads that
|
||||||
gaps grid.
|
self-hide degrade to the uniform spacing.
|
||||||
- **Semantic dim:** bar dim states are `alpha(@text, 0.5)` tints;
|
- ✓ **Semantic dim** (shipped iteration #36): workspaces + dnd +
|
||||||
the palette's `muted` role is now floor-guaranteed (28b) — one
|
muted-volume now use `@muted` (floor-guaranteed by 28b) instead
|
||||||
semantic source, use `@muted`.
|
of `alpha(@text, 0.5)` tints; the CSS comment now documents the
|
||||||
|
new invariant.
|
||||||
- ✓ **compositor backdrop** (shipped iteration #35): Hyprland
|
- ✓ **compositor backdrop** (shipped iteration #35): Hyprland
|
||||||
`misc:background_color` now the theme's base — no more black flash
|
`misc:background_color` now the theme's base — no more black flash
|
||||||
behind a missing/slow wallpaper (glaring on light themes in the
|
behind a missing/slow wallpaper (glaring on light themes in the
|
||||||
|
|||||||
@@ -17,6 +17,26 @@ Template:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-05 — bar group rhythm + @muted adoption (iteration #36, item 28c)
|
||||||
|
- **Task:** item 28 slice (c) — the two queued bar polish items.
|
||||||
|
- **Did:** waybar.nix generated CSS: margin-left 14px on the three
|
||||||
|
right-cluster group heads (pulseaudio/powerprofile/battery — media
|
||||||
|
· toggles · status; hidden heads degrade to uniform spacing);
|
||||||
|
workspaces buttons, dnd bell, and muted volume moved from
|
||||||
|
alpha(@text,.5) tints to the semantic @muted role — safe since 28b
|
||||||
|
floor-gates muted/base ≥ 2.0 (the old comment warning against
|
||||||
|
@muted documented the pre-28b world; rewritten to state the new
|
||||||
|
invariant). Whole-swap bars untouched (authored identity).
|
||||||
|
- **Verified:** V0; V1 rendered CSS has 4 @muted uses + the margin
|
||||||
|
rule; VISUAL — tokyo-night re-capture: themed backdrop confirmed
|
||||||
|
(navy base, not black), group gap visible before the volume group,
|
||||||
|
workspace pill legible. Cross-theme minima are guaranteed by the
|
||||||
|
gated checker rather than per-theme eyeballs.
|
||||||
|
- **Pending:** slice-c remainder: rofi hint column, summer-rasi
|
||||||
|
placeholder dim, icon-weight `[human]`, latte/identity captures.
|
||||||
|
- **Next suggestion:** rofi keybind-hint column (the biggest
|
||||||
|
remaining UX win), or the two-line placeholder nit as a quickie.
|
||||||
|
|
||||||
## 2026-07-05 — summer-day capture review + themed backdrop (iteration #35, item 28c)
|
## 2026-07-05 — summer-day capture review + themed backdrop (iteration #35, item 28c)
|
||||||
- **Task:** item 28 slice (c) — whole-swap capture review + the first
|
- **Task:** item 28 slice (c) — whole-swap capture review + the first
|
||||||
cheap polish fix.
|
cheap polish fix.
|
||||||
|
|||||||
@@ -279,13 +279,14 @@ let
|
|||||||
border-radius: ${toString t.ui.rounding}px;
|
border-radius: ${toString t.ui.rounding}px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dim/secondary shades are alpha(@text) tints, NOT the palette's
|
/* Dim states use the palette's @muted role: since item 28b it is
|
||||||
subtext/muted roles — those mean "on-surface" in some palettes
|
floor-guaranteed legible on @base in every theme (muted/base >=
|
||||||
(flexoki-light: subtext==base, gruvbox: muted≈base) and vanish
|
2.0, gated by tools/check-theme-contrast.py) — the palettes that
|
||||||
against the bar (item 27; tools/check-theme-contrast.py). */
|
once made it vanish (gruvbox muted≈base, item 27) were retuned.
|
||||||
|
Secondary-but-not-dim stays alpha(@text, 0.85). */
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
color: alpha(@text, 0.5);
|
color: @muted;
|
||||||
border-radius: ${toString t.ui.rounding}px;
|
border-radius: ${toString t.ui.rounding}px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,6 +315,13 @@ let
|
|||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Group rhythm (item 28c): a wider breath before each functional
|
||||||
|
group of the right cluster — media/stats · toggles · status —
|
||||||
|
on top of the uniform module spacing. A group head can self-hide
|
||||||
|
(e.g. no battery on desktops); grouping then degrades to the
|
||||||
|
uniform spacing, never breaks. */
|
||||||
|
#pulseaudio, #custom-powerprofile, #battery { margin-left: 14px; }
|
||||||
|
|
||||||
/* Caffeine engaged → warm tone (the screen is being held awake). */
|
/* Caffeine engaged → warm tone (the screen is being held awake). */
|
||||||
#idle_inhibitor.activated { color: @warn; }
|
#idle_inhibitor.activated { color: @warn; }
|
||||||
|
|
||||||
@@ -336,9 +344,9 @@ let
|
|||||||
/* notifications waiting → accent; Do-Not-Disturb → muted bell-off */
|
/* notifications waiting → accent; Do-Not-Disturb → muted bell-off */
|
||||||
#custom-notification.notification { color: @accent; }
|
#custom-notification.notification { color: @accent; }
|
||||||
#custom-notification.dnd-none,
|
#custom-notification.dnd-none,
|
||||||
#custom-notification.dnd-notification { color: alpha(@text, 0.5); }
|
#custom-notification.dnd-notification { color: @muted; }
|
||||||
|
|
||||||
#pulseaudio.muted { color: alpha(@text, 0.5); }
|
#pulseaudio.muted { color: @muted; }
|
||||||
#battery.warning { color: @warn; }
|
#battery.warning { color: @warn; }
|
||||||
#battery.critical { color: @bad; }
|
#battery.critical { color: @bad; }
|
||||||
#battery.charging { color: @good; }
|
#battery.charging { color: @good; }
|
||||||
|
|||||||
Reference in New Issue
Block a user