fix(themes): P1 palette retunes from the design audit + gated subtext floor (item 28b)
All checks were successful
Check / eval (push) Successful in 3m0s
All checks were successful
Check / eval (push) Successful in 3m0s
The audit's P1s, fixed at the palette level (items 25/27 previously patched the consumers around these): - summer-day: surface was the TEXT color (slate #5c6a72 on cream) and subtext was the BASE (ratio 1.0, invisible) — now a raised cream surface #efe7d0 and a slate-teal subtext #6e828a in the theme's family. - flexoki-light: surface/overlay/muted were all the text black and subtext the paper — retuned to canonical upstream Flexoki tones (ui #E6E4D9, #B7B5AC, tx-2 #6F6E69, base-500 #878580). - miasma: pure-black surface under a #222 base → raised #2e2e2e. - kanagawa: surface was sumiInk0 (darker than the bg) → upstream's raised sumiInk4 #2a2a37. check-theme-contrast.py gains the adopted rule: subtext on base >= 3.0 (all 21 themes pass), so the invisible-secondary-text class cannot ship again. Model note in the backlog: `overlay` is a mid-tone role (catppuccin semantics), not a third bg tier. Verified: V0 + checks.theme-contrast green (21x3); re-audit shows all four P1 findings gone; a scratch downstream with summer-day active builds and the new surface hex lands in the rendered ghostty config. Remains: V3 four-theme eyeball (HARDWARE-QUEUE) and 28b's P2 floors + exemption list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,13 @@ Bernardo has offered image-expert models for designed graphics
|
||||
needs artwork must STOP and ask ("say the word") instead of shipping
|
||||
programmer-art.
|
||||
Slices: (a) ✓ the audit (2026-07-05, iteration #31 — findings below);
|
||||
(b) palette-level fixes + the extended contrast/harmony checker;
|
||||
(b) palette-level fixes + the extended contrast/harmony checker —
|
||||
P1s ✓ shipped 2026-07-05 (iteration #32): summer-day + flexoki-light
|
||||
subtext/surface/overlay/muted retuned (flexoki to its canonical
|
||||
upstream tones), miasma + kanagawa surfaces raised (kanagawa to
|
||||
sumiInk4); `subtext/base ≥ 3` now GATED in check-theme-contrast.py
|
||||
(all 21 pass). Remaining (b): the P2 floors below + the per-theme
|
||||
exemption-list mechanism, then re-audit;
|
||||
(c) per-surface polish slices;
|
||||
(d) the whole-swap themes brought to the same bar. Visual work is
|
||||
V3-bound by nature — screenshots are the review artifact, hardware
|
||||
@@ -58,15 +64,15 @@ confirms.
|
||||
|
||||
**Audit findings (slice a — `tools/audit-theme-design.py` over all 21
|
||||
palettes + visual pass over previews; identity-aware curation):**
|
||||
- **P1 · invisible-secondary-text palettes:** summer-day and
|
||||
flexoki-light have `subtext == base` (contrast 1.0 — literally
|
||||
invisible) and `text == surface`. Items 25/27 fixed the *consumers*
|
||||
(swaync/bar stopped using them); the palettes are still traps — any
|
||||
new surface consuming subtext/surface re-trips. Fix the palettes:
|
||||
real mid-tone subtext, raised surface.
|
||||
- **P1 · inverted bg stacks:** miasma's surface is #000000 under a
|
||||
much lighter base; kanagawa's surface (L .14) sits below base
|
||||
(L .24). "Raised" surfaces render sunken/black. Retune.
|
||||
- ~~P1 · invisible-secondary-text palettes~~ ✓ fixed iteration #32
|
||||
(summer-day subtext #6e828a, surface #efe7d0; flexoki-light to
|
||||
canonical Flexoki: surface #E6E4D9, overlay #B7B5AC, subtext
|
||||
#6F6E69, muted #878580). Gate added.
|
||||
- ~~P1 · inverted bg stacks~~ ✓ fixed iteration #32 (miasma surface
|
||||
#2e2e2e; kanagawa surface #2a2a37 = upstream sumiInk4). Note
|
||||
learned: in this palette model `overlay` is a MID-TONE
|
||||
(borders/dim, catppuccin semantics), not a third bg tier — the
|
||||
dark-theme overlay==muted pattern is intentional.
|
||||
- **P2 · muted floor:** muted-on-base < 2.0 on gruvbox (1.27),
|
||||
everforest (1.55), lumon (1.68), nord (1.69), white (1.82), latte
|
||||
(1.91), retro-82 (1.93) — dimmed workspaces/inactive items barely
|
||||
|
||||
@@ -153,6 +153,13 @@ QA machine), the **T14s** (webcam case).
|
||||
applies the matching profile within ~3s (toast names it);
|
||||
unplugging switches back; Auto-switch off stops that; with two
|
||||
profiles naming the same outputs, no flapping (ties do nothing).
|
||||
- [ ] **Retuned palettes eyeball (item 28b P1)** — switch through
|
||||
summer-day, flexoki-light, kanagawa, miasma: chips/menus/toasts
|
||||
now draw on a *raised* surface (summer-day's was slate-on-cream,
|
||||
kanagawa's near-black, miasma's pure black), secondary text
|
||||
(tooltips, fastfetch labels) is visible on summer-day +
|
||||
flexoki-light, kanagawa floats are lighter than the bg (upstream
|
||||
sumiInk4). Anything that reads worse than before → reopen 28b.
|
||||
- [ ] **Themed greeter + console (item 16)** — after `sys-rebuild` +
|
||||
logout: tuigreet renders in theme colors (dark container, accent
|
||||
border, themed prompt/time) and a raw tty (CTRL+ALT+F2) shows the
|
||||
|
||||
@@ -17,6 +17,26 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-05 — P1 palette retunes + gated subtext floor (iteration #32, item 28b)
|
||||
- **Task:** item 28 slice (b), P1s from the #31 audit.
|
||||
- **Did:** summer-day: surface #5c6a72(=text!)→#efe7d0 raised cream,
|
||||
subtext #fdf6e3(=base!)→#6e828a slate; flexoki-light to canonical
|
||||
Flexoki tones: surface #E6E4D9(ui), overlay #B7B5AC, subtext
|
||||
#6F6E69(tx-2), muted #878580(base-500); miasma surface #000→#2e2e2e;
|
||||
kanagawa surface #090618→#2a2a37 (upstream sumiInk4 — old value was
|
||||
sumiInk0, darker than bg). check-theme-contrast.py gains the adopted
|
||||
`subtext/base ≥ 3` pairing (the item-25/27 trap, now impossible).
|
||||
Model note recorded: `overlay` is a mid-tone role, not a bg tier.
|
||||
- **Verified:** V0 + checks.theme-contrast GREEN (21×3 pairings);
|
||||
re-audit: all four P1 findings gone (kanagawa now CVD-only findings);
|
||||
V1 — scratch downstream with summer-day ACTIVE builds, new surface
|
||||
hex present in rendered ghostty config. Looks are V3 → queued
|
||||
(four-theme eyeball).
|
||||
- **Pending:** 28b remainder: P2 floors (muted ≥2, warn ≥2.5,
|
||||
text-on-surface ≥4.5, accentAlt ≥3) + exemption-list mechanism.
|
||||
- **Next suggestion:** 28b P2s (7 muted retunes + 4 warn + 2
|
||||
text-on-surface + 2 accentAlt, then gate with exemptions).
|
||||
|
||||
## 2026-07-05 — theme design audit (iteration #31, item 28 slice a)
|
||||
- **Task:** BACKLOG NEXT#28 slice (a) — the design-theory audit
|
||||
(human-requested; Bernardo asked to run it now).
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
"colors": {
|
||||
"base": "#FFFCF0",
|
||||
"mantle": "#d9d6cc",
|
||||
"surface": "#100F0F",
|
||||
"overlay": "#100F0F",
|
||||
"surface": "#E6E4D9",
|
||||
"overlay": "#B7B5AC",
|
||||
"text": "#100F0F",
|
||||
"subtext": "#FFFCF0",
|
||||
"muted": "#100F0F",
|
||||
"subtext": "#6F6E69",
|
||||
"muted": "#878580",
|
||||
"accent": "#205EA6",
|
||||
"accentAlt": "#CE5D97",
|
||||
"good": "#879A39",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"colors": {
|
||||
"base": "#1f1f28",
|
||||
"mantle": "#1a1a22",
|
||||
"surface": "#090618",
|
||||
"surface": "#2a2a37",
|
||||
"overlay": "#727169",
|
||||
"text": "#dcd7ba",
|
||||
"subtext": "#c8c093",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"colors": {
|
||||
"base": "#222222",
|
||||
"mantle": "#1d1d1d",
|
||||
"surface": "#000000",
|
||||
"surface": "#2e2e2e",
|
||||
"overlay": "#666666",
|
||||
"text": "#c2c2b0",
|
||||
"subtext": "#d7c483",
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
"colors": {
|
||||
"base": "#fdf6e3",
|
||||
"mantle": "#d7d1c1",
|
||||
"surface": "#5c6a72",
|
||||
"surface": "#efe7d0",
|
||||
"overlay": "#829181",
|
||||
"text": "#5c6a72",
|
||||
"subtext": "#fdf6e3",
|
||||
"subtext": "#6e828a",
|
||||
"muted": "#829181",
|
||||
"accent": "#3a94c5",
|
||||
"accentAlt": "#df69ba",
|
||||
|
||||
@@ -22,6 +22,10 @@ PAIRINGS = [
|
||||
("text", "base", 4.5, "swaync body / waybar modules / rofi rows"),
|
||||
# symmetric ratio also covers accent-on-base (waybar updates, rofi prompt)
|
||||
("base", "accent", 3.0, "swaync button:hover / waybar active ws / rofi selected row"),
|
||||
# Adopted from the item-28 design audit: summer-day/flexoki-light
|
||||
# shipped subtext == base (ratio 1.0 — invisible secondary text; the
|
||||
# palette-level cause of items 25/27). Never again.
|
||||
("subtext", "base", 3.0, "secondary text (tooltips, hints, fastfetch labels)"),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user