feat(themes): summer pair JSON SoT + status CSS + recapture previews
All checks were successful
Check / eval (push) Successful in 2m58s
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:
@@ -101,31 +101,25 @@ _(Friendlier mkFlake theme-state errors → **#66**.)_
|
|||||||
|
|
||||||
### Theme polish
|
### Theme polish
|
||||||
|
|
||||||
_(#52 residual ANSI → **#68**.)_
|
_(#52 residual ANSI → **#68** ✓.)_
|
||||||
_(Fidelity / hierarchy nits → **#67**.)_
|
_(Fidelity / hierarchy nits → **#67** ✓.)_
|
||||||
_(Import pipeline hierarchy → **#70**.)_
|
_(Import pipeline hierarchy → **#70** ✓.)_
|
||||||
_(audit-theme-design identity exemptions → **#69**.)_
|
_(audit-theme-design identity exemptions → **#69** ✓.)_
|
||||||
|
_(summer-day/night pair polish + status CSS + preview recapture →
|
||||||
- **summer-day / summer-night pair polish** — waybar CSS vs JSON dual
|
shipped 2026-07-10: JSON SoT, status states, theme-shot previews for
|
||||||
SoT; night `subtext`=`muted`=`overlay`; day/night font + battery
|
executive-slate + neon-glass.)_
|
||||||
threshold + VPN pill drift. Pick JSON as SoT (or document EF split).
|
|
||||||
Cost: CSS/JSON; V3.
|
|
||||||
|
|
||||||
- **summer-\* CSS status module states** — missing `.on` / `.available`
|
|
||||||
/ `.recording` polish vs boreal/generated. Cost: CSS; V3.
|
|
||||||
|
|
||||||
- **theme preview recapture nicety** — executive-slate + neon-glass
|
|
||||||
previews are bare desktop+bar, not the floating-terminal composition
|
|
||||||
of the other 21; optional identity `btop.theme`s. Cost: asset/V3.
|
|
||||||
|
|
||||||
- **Identity optional taste retunes** — white / lumon / hackerman /
|
- **Identity optional taste retunes** — white / lumon / hackerman /
|
||||||
matte-black / miasma hierarchy or status L-steps only (no traffic-light
|
matte-black / miasma hierarchy or status L-steps only (no traffic-light
|
||||||
forced on identity themes). Product call per theme.
|
forced on identity themes). Product call per theme.
|
||||||
|
|
||||||
|
- **Optional identity `btop.theme`** for identity whole-swaps still on
|
||||||
|
generated btop. Cost: assets; V3.
|
||||||
|
|
||||||
### v1.0 pointer
|
### v1.0 pointer
|
||||||
|
|
||||||
See **VISION**. Remaining PROPOSED: charge-limit instant, Look & Feel,
|
See **VISION**. Remaining PROPOSED: charge-limit instant, Look & Feel,
|
||||||
NVIDIA first-class, summer-* / preview / identity taste polish.
|
NVIDIA first-class, identity taste / optional btop themes.
|
||||||
|
|
||||||
|
|
||||||
## Decisions `[human]`
|
## Decisions `[human]`
|
||||||
|
|||||||
@@ -17,6 +17,19 @@ Template:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-10 — Summer pair polish + status CSS + preview recapture
|
||||||
|
- **Task:** finish agent-able PROPOSED theme leftovers.
|
||||||
|
- **Did:** summer-day/night — JSON hierarchy (night subtext/muted/overlay
|
||||||
|
ladder; day overlay≠muted); waybar CSS tokens track JSON roles; font
|
||||||
|
13px both; day battery 25/10; VPN pill + full status states
|
||||||
|
(.recording/.available/.on/.activated/battery warn). Recaptured
|
||||||
|
executive-slate + neon-glass `preview.png` via theme-shot desktop
|
||||||
|
(480×270). Closed those PROPOSED lines.
|
||||||
|
- **Verified:** **V0** contrast 24×7 + wholeswap; **V2** theme-shot
|
||||||
|
summer-day/night/executive-slate/neon-glass — viewed bar crops +
|
||||||
|
previews. Identity taste retunes stay PROPOSED.
|
||||||
|
- **Next suggestion:** only blocked NEXT (#20/#41) or product Decisions.
|
||||||
|
|
||||||
## 2026-07-10 — #74 matrix flags + #75 V2 install (default arm)
|
## 2026-07-10 — #74 matrix flags + #75 V2 install (default arm)
|
||||||
- **Task:** NEXT #74 unattended matrix · #75 SoT V2 install after ISO.
|
- **Task:** NEXT #74 unattended matrix · #75 SoT V2 install after ISO.
|
||||||
- **Did:** `NOMARCHY_TEST_SWAP_GB` / `NOMARCHY_TEST_NO_LUKS` drive
|
- **Did:** `NOMARCHY_TEST_SWAP_GB` / `NOMARCHY_TEST_NO_LUKS` drive
|
||||||
|
|||||||
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 |
@@ -8,7 +8,7 @@
|
|||||||
"base": "#fdf6e3",
|
"base": "#fdf6e3",
|
||||||
"mantle": "#d7d1c1",
|
"mantle": "#d7d1c1",
|
||||||
"surface": "#efe7d0",
|
"surface": "#efe7d0",
|
||||||
"overlay": "#829181",
|
"overlay": "#939f91",
|
||||||
"text": "#5c6a72",
|
"text": "#5c6a72",
|
||||||
"subtext": "#6e828a",
|
"subtext": "#6e828a",
|
||||||
"muted": "#829181",
|
"muted": "#829181",
|
||||||
|
|||||||
@@ -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 bg_dim #efebd4;
|
||||||
@define-color bg0 #fdf6e3;
|
@define-color bg0 #fdf6e3; /* base */
|
||||||
@define-color bg1 #f4f0d9;
|
@define-color bg1 #f4f0d9;
|
||||||
@define-color bg2 #efebd4;
|
@define-color bg2 #efebd4; /* surface-ish */
|
||||||
@define-color bg3 #e6e2cc;
|
@define-color bg3 #e6e2cc;
|
||||||
@define-color bg4 #e0dcc7;
|
@define-color bg4 #e0dcc7;
|
||||||
@define-color bg5 #bdc3af;
|
@define-color bg5 #bdc3af;
|
||||||
@define-color fg #5c6a72;
|
@define-color fg #5c6a72; /* text */
|
||||||
@define-color red #f85552;
|
@define-color red #f85552; /* bad */
|
||||||
@define-color orange #f57d26;
|
@define-color orange #f57d26;
|
||||||
@define-color yellow #dfa000;
|
@define-color yellow #ca9210; /* warn */
|
||||||
@define-color green #8da101;
|
@define-color green #8da101; /* good */
|
||||||
@define-color aqua #35a77c;
|
@define-color aqua #35a77c;
|
||||||
@define-color blue #3a94c5;
|
@define-color blue #3a94c5; /* accent */
|
||||||
@define-color purple #df69ba;
|
@define-color purple #d863b4; /* accentAlt */
|
||||||
@define-color grey0 #a6b0a0;
|
@define-color grey0 #a6b0a0;
|
||||||
@define-color grey1 #939f91;
|
@define-color grey1 #939f91; /* overlay */
|
||||||
@define-color grey2 #829181;
|
@define-color grey2 #829181; /* muted */
|
||||||
|
|
||||||
/* margin: top right bottom left */
|
/* margin: top right bottom left */
|
||||||
/* Spacing outside the element */
|
/* Spacing outside the element */
|
||||||
@@ -25,7 +27,7 @@
|
|||||||
|
|
||||||
* {
|
* {
|
||||||
font-family: JetBrainsMono Nerd Font, FontAwesome;
|
font-family: JetBrainsMono Nerd Font, FontAwesome;
|
||||||
font-size: 16px;
|
font-size: 13px; /* paired with summer-night */
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,6 +57,7 @@ window#waybar {
|
|||||||
#custom-updates,
|
#custom-updates,
|
||||||
#battery,
|
#battery,
|
||||||
#tray,
|
#tray,
|
||||||
|
#custom-vpn,
|
||||||
#custom-doctor,
|
#custom-doctor,
|
||||||
#custom-notification,
|
#custom-notification,
|
||||||
#custom-powermenu {
|
#custom-powermenu {
|
||||||
@@ -124,12 +127,29 @@ window#waybar {
|
|||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Recording in progress: alert red; the module is also the stop button. */
|
/* Status semantics — parity with boreal/generated (BACKLOG summer polish). */
|
||||||
#custom-recording.recording {
|
#custom-recording.recording { color: @red; }
|
||||||
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. */
|
#battery.charging { color: @green; }
|
||||||
#custom-doctor {
|
#battery.warning:not(.charging) { color: @yellow; }
|
||||||
color: @red;
|
#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; }
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
"battery": {
|
"battery": {
|
||||||
"interval": 60,
|
"interval": 60,
|
||||||
"states": { "warning": 30, "critical": 15 },
|
"states": { "warning": 25, "critical": 10 },
|
||||||
"max-length": 10,
|
"max-length": 10,
|
||||||
"format": "<span size='13pt'>{icon}</span> {capacity}%",
|
"format": "<span size='13pt'>{icon}</span> {capacity}%",
|
||||||
"format-charging": "<span size='13pt'></span> {capacity}%",
|
"format-charging": "<span size='13pt'></span> {capacity}%",
|
||||||
|
|||||||
@@ -8,10 +8,10 @@
|
|||||||
"base": "#2d353b",
|
"base": "#2d353b",
|
||||||
"mantle": "#262d32",
|
"mantle": "#262d32",
|
||||||
"surface": "#3c474d",
|
"surface": "#3c474d",
|
||||||
"overlay": "#868d80",
|
"overlay": "#859289",
|
||||||
"text": "#d3c6aa",
|
"text": "#d3c6aa",
|
||||||
"subtext": "#868d80",
|
"subtext": "#9da9a0",
|
||||||
"muted": "#868d80",
|
"muted": "#7a8478",
|
||||||
"accent": "#83b6af",
|
"accent": "#83b6af",
|
||||||
"accentAlt": "#d39bb6",
|
"accentAlt": "#d39bb6",
|
||||||
"good": "#a7c080",
|
"good": "#a7c080",
|
||||||
|
|||||||
@@ -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 bg_dim #232a2e;
|
||||||
@define-color bg0 #2d353b;
|
@define-color bg0 #2d353b; /* base */
|
||||||
@define-color bg1 #343f44;
|
@define-color bg1 #343f44;
|
||||||
@define-color bg2 #3d484d;
|
@define-color bg2 #3c474d; /* surface */
|
||||||
@define-color bg3 #475258;
|
@define-color bg3 #475258;
|
||||||
@define-color bg4 #4f585e;
|
@define-color bg4 #4f585e;
|
||||||
@define-color bg5 #56635f;
|
@define-color bg5 #56635f;
|
||||||
@@ -10,17 +12,17 @@
|
|||||||
@define-color bg_green #425047;
|
@define-color bg_green #425047;
|
||||||
@define-color bg_blue #3a515d;
|
@define-color bg_blue #3a515d;
|
||||||
@define-color bg_yellow #4d4c43;
|
@define-color bg_yellow #4d4c43;
|
||||||
@define-color fg #d3c6aa;
|
@define-color fg #d3c6aa; /* text */
|
||||||
@define-color red #e67e80;
|
@define-color red #e68183; /* bad */
|
||||||
@define-color orange #e69875;
|
@define-color orange #e69875;
|
||||||
@define-color yellow #dbbc7f;
|
@define-color yellow #d9bb80; /* warn */
|
||||||
@define-color green #a7c080;
|
@define-color green #a7c080; /* good */
|
||||||
@define-color aqua #83c092;
|
@define-color aqua #83c092;
|
||||||
@define-color blue #7fbbb3;
|
@define-color blue #83b6af; /* accent */
|
||||||
@define-color purple #d699b6;
|
@define-color purple #d39bb6; /* accentAlt */
|
||||||
@define-color grey0 #7a8478;
|
@define-color grey0 #7a8478; /* muted */
|
||||||
@define-color grey1 #859289;
|
@define-color grey1 #859289; /* overlay */
|
||||||
@define-color grey2 #9da9a0;
|
@define-color grey2 #9da9a0; /* subtext */
|
||||||
/* margin: top right bottom left */
|
/* margin: top right bottom left */
|
||||||
/* Spacing outside the element */
|
/* Spacing outside the element */
|
||||||
|
|
||||||
@@ -60,6 +62,7 @@ window#waybar {
|
|||||||
#custom-updates,
|
#custom-updates,
|
||||||
#idle_inhibitor,
|
#idle_inhibitor,
|
||||||
#battery,
|
#battery,
|
||||||
|
#custom-vpn,
|
||||||
#custom-doctor,
|
#custom-doctor,
|
||||||
#custom-notification,
|
#custom-notification,
|
||||||
#custom-powermenu {
|
#custom-powermenu {
|
||||||
@@ -126,22 +129,35 @@ window#waybar {
|
|||||||
padding-right: 23px;
|
padding-right: 23px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.charging {
|
|
||||||
color: @green;
|
|
||||||
}
|
|
||||||
|
|
||||||
#idle_inhibitor {
|
#idle_inhibitor {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Recording in progress: alert red; the module is also the stop button. */
|
/* Status semantics — parity with boreal/generated (BACKLOG summer polish). */
|
||||||
#custom-recording.recording {
|
#custom-recording.recording { color: @red; }
|
||||||
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. */
|
#battery.charging { color: @green; }
|
||||||
#custom-doctor {
|
#battery.warning:not(.charging) { color: @yellow; }
|
||||||
color: @red;
|
#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; }
|
||||||
|
|||||||
Reference in New Issue
Block a user