One Ask-style glass everywhere, cache-busted Aero wallpaper

The background "didn't change" because the service worker's asset cache
kept serving the previous wallpaper bytes (stale-while-revalidate returns
the cached copy first, and an old worker can outlive a deploy). Both aero
images carry a ?v=3 query now, so a stale cache cannot answer for them.

"Everything should look like the Ask button" is literal: the rail, the
cards, the chips, the segments and the buttons share one recipe - the
pre-blurred wallpaper under a ~15% veil with the bright rim. The blur
bake is regenerated at 640x400 with a shadow lift (gamma 0.86) and a
saturation nudge, so the scene's colours stay vivid instead of washing
to a milky film. The wizard's phone action bar loses Aero's heavy
water-blue slab for the same glass, and nested chrome inside sheets
keeps its flat fills (the sheet itself is the real glass there).

Contrast: 0 below-minimum findings on every screen and theme, 0 axe
violations. Version 0.3.2, SW -> freezmo-v63.
This commit is contained in:
Martin Dvořák 2026-10-13 11:02:32 +00:00
commit 0c5d0ffb11
5 changed files with 70 additions and 60 deletions

View file

@ -1407,10 +1407,23 @@ Things I chose while building, with the reasoning:
painted the dark palette over the bright wallpaper, until a theme toggle re-applied the
classes. The stored value now decides alone and the class is toggled explicitly;
`tests/mobile-test.mjs` pins it with a dark-`colorScheme` browser context. And the surfaces
drop their thick white veils (a card top measured ~71% white) for a 14% base veil plus the
gloss over the pre-blurred wallpaper — the scene is clearly visible through the glass, small
chrome (rows, chips, segments, buttons) keeps slightly more veil, and the pixel-contrast scan
that re-runs in the deploy e2e gate still passes.
drop their thick white veils (a card top measured ~71% white) for thin veils over the
pre-blurred wallpaper — the scene is clearly visible through the glass, and the
pixel-contrast scan still passes.
67. **The Aero wallpaper URL is cache-busted, and every surface is one glass.** Two fixes from
one report. The background "didn't change" because the service worker's asset cache kept
serving the previous wallpaper bytes (stale-while-revalidate returns the cached copy first,
and the old worker can outlive a deploy): both aero images now carry a `?v=3` query, so a
stale cache cannot answer for them, and future wallpaper swaps get a new query too. And
"everything should look like the Ask button" is now literal: the rail, the cards, the chips,
the segments and the buttons all share one recipe — the pre-blurred wallpaper under a ~15%
veil (the minimum the pixel-contrast scan needs) with the bright rim. The blur bake is
shadow-lifted (gamma 0.86) and slightly saturated so the scene's colours stay vivid instead
of washing out to a milky film, the wizard's phone action bar (Aero's `--page` token was the
saturated water blue, a heavy slab over the photo) joins in, and nested chrome inside sheets
keeps its flat fills (the sheet itself is the real glass there). `tests/contrast.mjs` is back
to 0 findings across every screen and theme.
65. **Slide content never flex-shrinks, and the AI note appears once.** A long typed answer in a
short-answer activity shrank the textarea inside the slide's flex column (58px instead of its