feat(themes): summer pair JSON SoT + status CSS + recapture previews
All checks were successful
Check / eval (push) Successful in 2m58s

Align summer-day/night waybar tokens with JSON roles (hierarchy split
on night; day overlay≠muted), unify bar font 13px + battery 25/10, add
VPN pill and status states (.on/.available/.recording/…). Recapture
executive-slate and neon-glass picker previews from theme-shot.

Verified: V0 contrast+wholeswap; V2 theme-shot four slugs.
This commit is contained in:
Bernardo Magri
2026-07-10 12:03:51 +01:00
parent 2fff3ad628
commit 099d214529
9 changed files with 107 additions and 64 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 202 KiB

View File

@@ -8,7 +8,7 @@
"base": "#fdf6e3",
"mantle": "#d7d1c1",
"surface": "#efe7d0",
"overlay": "#829181",
"overlay": "#939f91",
"text": "#5c6a72",
"subtext": "#6e828a",
"muted": "#829181",

View File

@@ -1,21 +1,23 @@
/* Everforest light names; hexes track themes/summer-day.json roles
(JSON is SoT for Stylix/swaync + these tokens). */
@define-color bg_dim #efebd4;
@define-color bg0 #fdf6e3;
@define-color bg0 #fdf6e3; /* base */
@define-color bg1 #f4f0d9;
@define-color bg2 #efebd4;
@define-color bg2 #efebd4; /* surface-ish */
@define-color bg3 #e6e2cc;
@define-color bg4 #e0dcc7;
@define-color bg5 #bdc3af;
@define-color fg #5c6a72;
@define-color red #f85552;
@define-color fg #5c6a72; /* text */
@define-color red #f85552; /* bad */
@define-color orange #f57d26;
@define-color yellow #dfa000;
@define-color green #8da101;
@define-color yellow #ca9210; /* warn */
@define-color green #8da101; /* good */
@define-color aqua #35a77c;
@define-color blue #3a94c5;
@define-color purple #df69ba;
@define-color blue #3a94c5; /* accent */
@define-color purple #d863b4; /* accentAlt */
@define-color grey0 #a6b0a0;
@define-color grey1 #939f91;
@define-color grey2 #829181;
@define-color grey1 #939f91; /* overlay */
@define-color grey2 #829181; /* muted */
/* margin: top right bottom left */
/* Spacing outside the element */
@@ -25,7 +27,7 @@
* {
font-family: JetBrainsMono Nerd Font, FontAwesome;
font-size: 16px;
font-size: 13px; /* paired with summer-night */
font-weight: bold;
}
@@ -55,6 +57,7 @@ window#waybar {
#custom-updates,
#battery,
#tray,
#custom-vpn,
#custom-doctor,
#custom-notification,
#custom-powermenu {
@@ -124,12 +127,29 @@ window#waybar {
font-size: 20px;
}
/* Recording in progress: alert red; the module is also the stop button. */
#custom-recording.recording {
color: @red;
}
/* Status semantics — parity with boreal/generated (BACKLOG summer polish). */
#custom-recording.recording { color: @red; }
#custom-updates.available { color: @blue; }
#custom-doctor { color: @red; }
#idle_inhibitor.activated { color: @yellow; }
#custom-nightlight.on { color: @yellow; }
#custom-vpn.on { color: @green; }
#pulseaudio.muted { color: @grey2; }
/* Doctor tripwire: only rendered when something is broken. */
#custom-doctor {
color: @red;
}
#battery.charging { color: @green; }
#battery.warning:not(.charging) { color: @yellow; }
#battery.critical:not(.charging) { color: @red; }
#custom-notification.notification { color: @blue; }
#custom-notification.dnd-none,
#custom-notification.dnd-notification,
#custom-notification.inhibited-none,
#custom-notification.inhibited-notification { color: @grey2; }
/* Icon-only status modules — match glyph scale of neighbours. */
#custom-recording,
#custom-updates,
#custom-doctor,
#custom-nightlight,
#custom-vpn,
#custom-notification { font-size: 17px; }

View File

@@ -57,7 +57,7 @@
"battery": {
"interval": 60,
"states": { "warning": 30, "critical": 15 },
"states": { "warning": 25, "critical": 10 },
"max-length": 10,
"format": "<span size='13pt'>{icon}</span> {capacity}%",
"format-charging": "<span size='13pt'></span> {capacity}%",

View File

@@ -8,10 +8,10 @@
"base": "#2d353b",
"mantle": "#262d32",
"surface": "#3c474d",
"overlay": "#868d80",
"overlay": "#859289",
"text": "#d3c6aa",
"subtext": "#868d80",
"muted": "#868d80",
"subtext": "#9da9a0",
"muted": "#7a8478",
"accent": "#83b6af",
"accentAlt": "#d39bb6",
"good": "#a7c080",

View File

@@ -1,7 +1,9 @@
/* Everforest dark names; hexes track themes/summer-night.json roles
(JSON is SoT for Stylix/swaync + these tokens). */
@define-color bg_dim #232a2e;
@define-color bg0 #2d353b;
@define-color bg0 #2d353b; /* base */
@define-color bg1 #343f44;
@define-color bg2 #3d484d;
@define-color bg2 #3c474d; /* surface */
@define-color bg3 #475258;
@define-color bg4 #4f585e;
@define-color bg5 #56635f;
@@ -10,17 +12,17 @@
@define-color bg_green #425047;
@define-color bg_blue #3a515d;
@define-color bg_yellow #4d4c43;
@define-color fg #d3c6aa;
@define-color red #e67e80;
@define-color fg #d3c6aa; /* text */
@define-color red #e68183; /* bad */
@define-color orange #e69875;
@define-color yellow #dbbc7f;
@define-color green #a7c080;
@define-color yellow #d9bb80; /* warn */
@define-color green #a7c080; /* good */
@define-color aqua #83c092;
@define-color blue #7fbbb3;
@define-color purple #d699b6;
@define-color grey0 #7a8478;
@define-color grey1 #859289;
@define-color grey2 #9da9a0;
@define-color blue #83b6af; /* accent */
@define-color purple #d39bb6; /* accentAlt */
@define-color grey0 #7a8478; /* muted */
@define-color grey1 #859289; /* overlay */
@define-color grey2 #9da9a0; /* subtext */
/* margin: top right bottom left */
/* Spacing outside the element */
@@ -60,6 +62,7 @@ window#waybar {
#custom-updates,
#idle_inhibitor,
#battery,
#custom-vpn,
#custom-doctor,
#custom-notification,
#custom-powermenu {
@@ -126,22 +129,35 @@ window#waybar {
padding-right: 23px;
}
#battery.charging {
color: @green;
}
#idle_inhibitor {
padding-left: 10px;
padding-right: 10px;
font-size: 20px;
}
/* Recording in progress: alert red; the module is also the stop button. */
#custom-recording.recording {
color: @red;
}
/* Status semantics — parity with boreal/generated (BACKLOG summer polish). */
#custom-recording.recording { color: @red; }
#custom-updates.available { color: @blue; }
#custom-doctor { color: @red; }
#idle_inhibitor.activated { color: @yellow; }
#custom-nightlight.on { color: @yellow; }
#custom-vpn.on { color: @green; }
#pulseaudio.muted { color: @grey0; }
/* Doctor tripwire: only rendered when something is broken. */
#custom-doctor {
color: @red;
}
#battery.charging { color: @green; }
#battery.warning:not(.charging) { color: @yellow; }
#battery.critical:not(.charging) { color: @red; }
#custom-notification.notification { color: @blue; }
#custom-notification.dnd-none,
#custom-notification.dnd-notification,
#custom-notification.inhibited-none,
#custom-notification.inhibited-notification { color: @grey0; }
/* Icon-only status modules — match glyph scale of neighbours. */
#custom-recording,
#custom-updates,
#custom-doctor,
#custom-nightlight,
#custom-vpn,
#custom-notification { font-size: 17px; }