aboutsummaryrefslogtreecommitdiffstats
path: root/styles
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 17:19:40 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 17:19:40 +0200
commit7f52e94d2386858cb32c18d5a5982dbb966cb174 (patch)
tree5e42d7401ec439bd697d0d2aa6ccf8ad91c537c9 /styles
parent27a8666422ef02fb8a827ef27be963f0d19610a2 (diff)
downloadwaybar-theme-udt-7f52e94d2386858cb32c18d5a5982dbb966cb174.tar.gz
waybar-theme-udt-7f52e94d2386858cb32c18d5a5982dbb966cb174.zip
fix: stop the launcher hover from erasing its own mark
The mark is filled with @main-bg so it contrasts against the accent pill, and the hover rule set that pill's background to @main-bg. Identical colours, so hovering painted the mark in its own colour and the pill went blank. This is the same fault as the first version, one state over: that one filled the mark with @accent and drew it on the @accent pill. The mark is a rendered image inside the module rather than a CSS background, so CSS cannot recolour it per state, and any hover colour would have to contrast with both @accent and @main-bg at once. So the pill holds its colour: it is dropped from the shared hover rule and its own override is gone, leaving the cursor to signal that it is clickable. Both stylesheets carry a comment saying why, because the obvious edit is to add a hover back. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'styles')
-rw-r--r--styles/modules.css17
-rw-r--r--styles/pills.css4
2 files changed, 15 insertions, 6 deletions
diff --git a/styles/modules.css b/styles/modules.css
index 9044455..cac68da 100644
--- a/styles/modules.css
+++ b/styles/modules.css
@@ -20,11 +20,18 @@
min-width: 20px;
}
-/* The accent pill inverts on hover rather than lightening: it is already the
- * brightest thing on the bar. */
-#image.launcher:hover {
- background-color: @main-bg;
-}
+/* This pill deliberately has NO hover background.
+ *
+ * The mark is a rendered image inside the module, not a CSS background, so
+ * CSS cannot recolour it for a hover state. It is filled with @main-bg to
+ * contrast against the accent pill, which means any hover that sets the
+ * background to @main-bg paints the mark in its own colour and the pill goes
+ * blank. That shipped twice: first filled with @accent on an @accent pill,
+ * then hovering to @main-bg with an @main-bg mark.
+ *
+ * Changing the background here at all requires a colour that contrasts with
+ * BOTH @accent and @main-bg, which the palette does not owe us. So the pill
+ * holds its colour and the cursor alone signals it is clickable. */
/* ---------------------------------------------- *
* Clock: the only text, each with a leading icon. *
diff --git a/styles/pills.css b/styles/pills.css
index 93a8855..1794523 100644
--- a/styles/pills.css
+++ b/styles/pills.css
@@ -34,7 +34,9 @@
/* Hover. The one rule that makes the bar feel alive, and the reason every
* pill declares a transition above. */
-#image.launcher:hover,
+/* The launcher is absent on purpose: its mark is an image CSS cannot recolour,
+ * so a hover background would paint the mark in its own colour. See
+ * modules.css. */
#clock.date:hover,
#clock.time:hover,
#custom-vmdot:hover,