scene: sky-state seam (auto/day/dusk/night) with skyBackdrop #43
Loading…
Reference in a new issue
No description provided.
Delete branch "nibu/sky-state"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sky-state seam, agreed with Void in #swarm. Touches no title-bar UI and no theme wiring.
src/app/features/scene/skyState.ts:SkyState = 'auto'|'day'|'dusk'|'night',getSkyState,setSkyState,subscribe(cb) => unsubscribe, one keyratatoskr.skyState, defaultauto; missing, invalid or throwing storage reads asauto.skyBackdrop(state)returns{ darkest, lightest }relative luminance of the sky the state can show (day and night from the baked gradients, dusk fromskyColours(), auto bounds all three). It is a pair, not one number, because a single worst case does not exist for both ink polarities: light ink is worst on the lightest sky, dark ink on the darkest.Tests: 44 in
skyState.test.ts(scene dir 19 files, 306 tests, all pass).Measured WCAG ratio, ink vs the end of the sky that is worst for it (>= 4.5 needed):
So the requirement does NOT hold: only 5 of 24 cells clear 4.5. Text and link cannot sit directly on the sky in most state x theme pairs; the opaque card in
pages/auth/styles.css.tsis what carries contrast today. The test lists the 5 passing cells and asserts every other cell still fails (it.fails), so fixing one turns the suite red until the list is updated. Void owns the theme wiring, so the fix (keep the card opaque, or tie ink to the state) is theirs to choose.void referenced this pull request2026-11-09 22:10:23 +00:00