diff --git a/CLAUDE.md b/CLAUDE.md index ec8512c..a9e5074 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -657,7 +657,8 @@ branch on the platform per frame, and never `from meshterm.platforms import PLAT Cardputer's lane is **Fn+4…8** (F4–F8), never the bare digits, since a digit must stay a digit where the app takes typing; Shift with them arrives as F16–F20 (xterm's encoding, which the console host copies). Each chip is centred over its key, eight cells of label, - white on the fn key's orange-red, and white on dark blue while Shift is held. + white on the fn key's orange-red (a step darker than the print, same hue, so the white + holds 4:1), and white on dark blue while Shift is held. - `meshterm specimen` prints the whole visual language through the real funnels — the acceptance card on-device, a preview under `--platform picocalc` on the desktop. - Dev loop: `meshterm --mock --platform picocalc` in a 53×40 window, or diff --git a/meshterm/ui/theme.py b/meshterm/ui/theme.py index 6008818..cb0c092 100644 --- a/meshterm/ui/theme.py +++ b/meshterm/ui/theme.py @@ -186,10 +186,12 @@ MESH_THEME = Theme( "fkey.chip": "bold #ffffff on #475569", "fkey.chip.shift": "bold #ffffff on #16a34a", # The Cardputer Zero deck's fills, taken from its own keyboard (JP, 2026-09-30): - # the orange-red the fn key and its F4–F8 legends are printed in (#ff6633, the - # sticker artwork's flat value), and while Shift is held, the dark blue of the - # Shift key in M5's product photo. - "fkey.chip.cardputer": "bold #ffffff on #ff6633", + # the orange-red the fn key and its F4–F8 legends are printed in, and while Shift + # is held, the dark blue of the Shift key in M5's product photo. The print's + # #ff6633 holds white text at only 2.9:1, so the chip is that colour a step darker + # in OKLab at the same hue and chroma (L 0.70 → 0.62, h 38°): 4.0:1, still a + # vermilion — chroma is in gamut all the way down, so nothing greys it to brown. + "fkey.chip.cardputer": "bold #ffffff on #e34b0f", "fkey.chip.cardputer.shift": "bold #ffffff on #0f72bd", # The prose voices — what a markdown page's inline marks are drawn in (see # ui.markdown). Headings borrow the styles the rest of the app already heads