fix(theme): destructive buttons were invisible after #98 (1.03:1)
All checks were successful
Check / eval (push) Successful in 3m54s
All checks were successful
Check / eval (push) Successful in 3m54s
e9dd3d1 pinned dialog button labels to base00 for dark palettes. That is
correct for suggested-action, whose background adw-gtk3 builds opaquely as
mix(white,@accent_bg_color,0.9) — but destructive-action is the one class
whose background is derived from currentColor:
background-color: mix(@destructive_color, alpha(currentColor, 0.15), 0.9)
so pinning the label dragged the background down with it. On Boreal the
"Delete" button of a GtkMessageDialog rendered #21272F on #252931 —
1.03:1, invisible — and light palettes hit the same 1.03:1. The most
safety-critical button in a confirmation dialog was the one that vanished.
Pin the destructive background to the same opaque pastel ladder
suggested-action uses. Enabled-only (:not(.flat):not(:disabled)): the
sheet's disabled chrome already renders legibly and must keep it.
Boreal 1.03 -> 6.19:1, summer-day 1.03 -> 2.74:1 (= upstream's
white-on-accent convention; the residual light-mode weakness is #130).
V2: GtkMessageDialog rendered under the real HM session and viewed —
boreal before/after, summer-night (whole-swap), summer-day (light).
Scripted checks stayed green throughout and never saw this; only the
render did. Follow-ups #129 (permanent guard) and #130 filed.
This commit is contained in:
@@ -19,6 +19,27 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-15 — #98 follow-up: destructive buttons invisible (V2 sweep)
|
||||
- **Task:** QA sweep of today's ship — V2 the batch that stopped at V1.
|
||||
- **Did:** Rendered a real GTK3 GtkMessageDialog under the actual HM session
|
||||
(scratch harness off `tools/theme-shot.nix`). Found e9dd3d1 **regressed
|
||||
`destructive-action`**: adw-gtk3 derives ONLY the destructive background
|
||||
from `currentColor` (`mix(@destructive_color, alpha(currentColor,…))`),
|
||||
so pinning the label to base00 dragged the background dark too — "Delete"
|
||||
rendered at **1.03:1** (invisible) on Boreal, and in light themes as well.
|
||||
Fix: pin the destructive background to suggested-action's opaque pastel
|
||||
ladder, enabled-only (`:not(.flat):not(:disabled)`).
|
||||
- **Verified:** **V2** — boreal before/after, summer-night (whole-swap) and
|
||||
summer-day (light) renders viewed; destructive 1.03→6.19:1 (boreal),
|
||||
1.03→2.74:1 (summer-day, = upstream's white-on-accent convention).
|
||||
`nix flake check --no-build` + check-theme-contrast green. Screenshots:
|
||||
`scratchpad/v2-98/boreal-{BEFORE,AFTER}-zoom.png`, `sn-zoom.png`, `sd-zoom.png`.
|
||||
Two CSS-derived hypotheses (`.default`, disabled suggested/destructive)
|
||||
did NOT reproduce — rendering overruled the theory, both left alone.
|
||||
- **Pending:** filed the permanent guard + light-mode ~2.7:1 button contrast
|
||||
as BACKLOG items. #111/#105/#110 menu IA and #107 rename are still V1.
|
||||
- **Next suggestion:** V2 the menu IA (#111/#105/#110), or human V3 #115/#127.
|
||||
|
||||
## 2026-07-15 — #127 skip DPMS-off when docked (mitigation)
|
||||
- **Task:** Bernardo: no usable TTY on brick; prefer prevent over dump.
|
||||
- **Did:** hypridle 10m listener skips `dpms off` when an internal
|
||||
|
||||
Reference in New Issue
Block a user