Compare commits
2 Commits
e0fba56ee6
...
8e8a142465
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e8a142465 | |||
| d79ad3517e |
@@ -33,24 +33,6 @@ flake pin are different root causes even when they show up on the same machine.
|
||||
|
||||
## NEXT
|
||||
|
||||
### 152. Generated waybar polish: bar height vs workspace highlighter, right-edge icon spacing
|
||||
|
||||
Bernardo, 2026-07-17. Two visual fixes to the **generated** bar (the one
|
||||
every theme without a `waybar.jsonc`/`waybar.css` whole-swap gets — the
|
||||
4 whole-swap themes are out of scope unless the parity rule drags them in):
|
||||
- **Bar height:** make the bar a bit taller so the selected-workspace
|
||||
highlighter no longer renders taller than the bar itself (today it
|
||||
visually overflows/clips the bar edge).
|
||||
- **Right-module spacing:** the icon distances on the right cluster look
|
||||
uneven — e.g. the power button sits too close to the screen edge; give
|
||||
the cluster consistent inter-icon spacing and sane end padding.
|
||||
|
||||
This is §3 visual-protocol work (agent/THEME-DESIGN.md + VERIFICATION §3):
|
||||
before/after screenshots, two themes (one generated palette + one
|
||||
whole-swap for the no-regression side), scripted checks first, actually
|
||||
view the captures. Waybar CSS ↔ tray-menu gotchas in agent/MEMORY.md
|
||||
apply (never scope `*`).
|
||||
|
||||
### 151. `[human]` v1 launch plan — devise with Bernardo (includes the GitHub move)
|
||||
|
||||
Bernardo, 2026-07-17: before tagging v1, sit down and devise the launch plan.
|
||||
|
||||
@@ -42,6 +42,14 @@ Everything else below stays open; order is convenience, not a gate.
|
||||
four (the `*`-reset counter-rules). If a VM-rendered preview looks
|
||||
off in the theme-picker grid next to the hardware-captured ones,
|
||||
recapture that preview on hardware into themes/<slug>/preview.png.
|
||||
- [ ] **Light-theme contrast refits (2026-07-18 report)** — under any
|
||||
light theme: (1) with two workspaces open, the inactive number is
|
||||
readable on the bar (subtext, not the washed-out grey); (2) hover a
|
||||
notification popup — background stays the theme's light card with a
|
||||
faint tint, text readable (the swaync default's dark
|
||||
.notification-default-action hover is now overridden); close
|
||||
button matches the palette. VM-verified with a hover probe under
|
||||
summer-day; this is the on-hardware confirmation of the report.
|
||||
- [ ] **Auto-theme pair flip on hardware** — set
|
||||
`settings.autoTheme.{day,night}` to one of the new pairs (e.g.
|
||||
kiln-clay / kiln), force sunrise/sunset around the current time,
|
||||
|
||||
@@ -71,12 +71,47 @@ in
|
||||
font-size: ${toString t.fonts.size}pt;
|
||||
}
|
||||
|
||||
.control-center .notification-row:focus,
|
||||
.control-center .notification-row:hover {
|
||||
/* Unscoped on purpose: the floating popup wraps .notification in
|
||||
a .notification-row too, and swaync's DEFAULT stylesheet (still
|
||||
loaded underneath this one) paints that row dark on hover — on
|
||||
light themes the theme's dark @text then sat on the default's
|
||||
dark hover, unreadable. The same alpha(@text) tint as
|
||||
everywhere else overrides it in both surfaces. */
|
||||
.notification-row:focus,
|
||||
.notification-row:hover {
|
||||
background: alpha(@text, 0.1);
|
||||
border-radius: ${r}px;
|
||||
}
|
||||
|
||||
/* The REAL popup-hover culprit: the notification body is one big
|
||||
GTK button (.notification-default-action), and the default
|
||||
sheet hovers IT to rgb(56,56,56) — on light themes that put
|
||||
dark @text on a dark chip (unreadable, hardware report
|
||||
2026-07-18). Re-pin body + action buttons to the palette's
|
||||
tint construction; hover stays a tint of @text, so it works
|
||||
in both modes by construction. */
|
||||
.notification-default-action,
|
||||
.notification-action {
|
||||
background: transparent;
|
||||
color: @text;
|
||||
}
|
||||
.notification-default-action:hover,
|
||||
.notification-action:hover {
|
||||
background: alpha(@text, 0.08);
|
||||
}
|
||||
|
||||
/* Same default-stylesheet leak: swaync ships a dark close-button
|
||||
chip; re-pin both ends to the palette's tint construction. */
|
||||
.close-button {
|
||||
background: alpha(@text, 0.1);
|
||||
color: @text;
|
||||
border-radius: ${r}px;
|
||||
}
|
||||
.close-button:hover {
|
||||
background: alpha(@text, 0.2);
|
||||
color: @text;
|
||||
}
|
||||
|
||||
.widget-title {
|
||||
color: @text;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -162,7 +162,10 @@ let
|
||||
# normal tiling. Keep in sync with the whole-swap jsoncs (parity rule).
|
||||
layer = "bottom";
|
||||
position = "top";
|
||||
height = 34;
|
||||
# 36, not 34: the active-workspace pill is inset 3px top+bottom (CSS
|
||||
# below) so it can never overhang the bar's border — the extra height
|
||||
# keeps the pill's text from cramping inside the inset (#152).
|
||||
height = 36;
|
||||
margin-top = t.ui.gapsOut;
|
||||
margin-left = t.ui.gapsOut;
|
||||
margin-right = t.ui.gapsOut;
|
||||
@@ -423,14 +426,20 @@ let
|
||||
border-radius: ${toString t.ui.rounding}px;
|
||||
}
|
||||
|
||||
/* Dim states use the palette's @muted role: since item 28b it is
|
||||
floor-guaranteed legible on @base in every theme (muted/base >=
|
||||
2.0, gated by tools/check-theme-contrast.py) — the palettes that
|
||||
once made it vanish (gruvbox muted≈base, item 27) were retuned.
|
||||
/* Dim states use the palette's @muted role on DARK themes: since
|
||||
item 28b it is floor-guaranteed legible on @base (muted/base >=
|
||||
2.0, gated by tools/check-theme-contrast.py). On LIGHT themes that
|
||||
2.0-floor grey washes out at number size — inactive workspace
|
||||
numbers were unreadable on every light palette — so light mode
|
||||
promotes them to @subtext (>= 3.0 floor, typically 4-7:1).
|
||||
Secondary-but-not-dim stays alpha(@text, 0.85). */
|
||||
/* 3px vertical margin insets the active pill INSIDE the bar — without
|
||||
it the filled button spans the bar's full inner height and visually
|
||||
overhangs the rounded border (#152). */
|
||||
#workspaces button {
|
||||
padding: 0 8px;
|
||||
color: @muted;
|
||||
margin: 3px 0;
|
||||
color: ${if t.mode == "light" then "@subtext" else "@muted"};
|
||||
border-radius: ${toString t.ui.rounding}px;
|
||||
}
|
||||
|
||||
@@ -458,7 +467,10 @@ let
|
||||
color: @accent;
|
||||
font-family: Nomarchy;
|
||||
font-size: ${toString (t.fonts.size + 4)}pt;
|
||||
padding: 0 10px;
|
||||
/* Wider outer padding: the bar's rounded corner curves into the
|
||||
end module's box, so the edge glyphs need more room than the
|
||||
uniform 10px or they look cramped (#152; power button mirrors). */
|
||||
padding: 0 10px 0 14px;
|
||||
}
|
||||
#custom-nomarchy:hover { color: @accentAlt; }
|
||||
|
||||
@@ -466,6 +478,7 @@ let
|
||||
color: alpha(@text, 0.85);
|
||||
padding: 0 10px;
|
||||
}
|
||||
#custom-powermenu { padding: 0 16px 0 10px; }
|
||||
#custom-powermenu:hover { color: @bad; }
|
||||
|
||||
/* Group rhythm (item 28c): a wider breath before each functional
|
||||
|
||||
@@ -120,7 +120,9 @@ window#waybar {
|
||||
#workspaces { padding: 0 2px; }
|
||||
|
||||
#workspaces button {
|
||||
color: @muted;
|
||||
/* @subtext, not @muted: on a light pill the 2.0-floor grey washes out
|
||||
at number size — inactive workspaces must stay readable (6.4:1). */
|
||||
color: @subtext;
|
||||
padding: 0 9px;
|
||||
margin: 3px 1px;
|
||||
border-radius: 9px;
|
||||
|
||||
@@ -117,7 +117,9 @@ window#waybar {
|
||||
#workspaces { padding: 0 2px; }
|
||||
|
||||
#workspaces button {
|
||||
color: @muted;
|
||||
/* @subtext, not @muted: on the cream plank the 2.0-floor grey washes
|
||||
out at number size — inactive workspaces must stay readable (6.6:1). */
|
||||
color: @subtext;
|
||||
padding: 0 9px;
|
||||
margin: 3px 1px;
|
||||
border-radius: 6px;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
@define-color grey0 #a6b0a0;
|
||||
@define-color grey1 #939f91; /* overlay */
|
||||
@define-color grey2 #829181; /* muted */
|
||||
@define-color fg_dim #6e828a; /* subtext */
|
||||
|
||||
/* margin: top right bottom left */
|
||||
/* Spacing outside the element */
|
||||
@@ -79,6 +80,14 @@ window#waybar {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Inactive workspace numbers: without an explicit rule the GTK default
|
||||
button color leaks in (the container's @fg does NOT inherit into
|
||||
buttons) and the numbers vanish on the cream chip. @fg_dim = the
|
||||
palette's subtext (4.0:1) — dim but readable. */
|
||||
#workspaces button {
|
||||
color: @fg_dim;
|
||||
}
|
||||
|
||||
/* The power-profile speedometer glyph renders small in its em box. */
|
||||
#custom-powerprofile {
|
||||
font-size: 20px;
|
||||
|
||||
Reference in New Issue
Block a user