Aero: nested tiles in the real-blur chrome drop the baked backdrop

Chrome cannot anchor a background-attachment: fixed layer inside a
backdrop-filter ancestor, so the composer's attach button baked the blurred
wallpaper against its own box and read as a solid, mismatched tile (often a
dark crop of grass) next to the pale field. Inside .glass-panel /
.study-chrome / .glass / .tabbar the nesting chrome (surface tokens,
white/xx fills, chips, cards) now drops the bake and keeps its flat token
fill - the panel's own blur is the glass - mirroring the existing
.glass-sheet carve-out. The composer's textarea keeps its brighter field
recipe (exempted via :not()), and .aero .btn-ghost gains the same carve-out
so the study pager's arrows sit flat in the pill.

Probe: the attach tile samples the band glass (115,137,118) instead of a
dark mis-crop (73,102,77). All 15 suites green, contrast scan clean.

Version 0.6.6, SW v88.
This commit is contained in:
Martin Dvořák 2026-10-15 16:00:37 +00:00
commit b5c4f237cd
4 changed files with 80 additions and 2 deletions

View file

@ -1434,6 +1434,20 @@ Things I chose while building, with the reasoning:
(measured: 268..1280 at a 1280 window) — a flat pane floating 40px inside the scene read as
"cut off next to the sidebar".
97. **Nested tiles inside the real-blur chrome drop the baked backdrop.** "Frutiger aero theme —
the attachment button looks completely different to the other ones." The composer band, the
chat header and the study pager keep a real `backdrop-filter` (they float over scrolling
content), but Chrome cannot anchor a `background-attachment: fixed` layer *inside* a blurred
ancestor: the bake is laid out against the element itself, so the attach button sampled a tiny
(often dark, sometimes oddly green) crop of the wallpaper instead of the glass behind it — a
solid, mismatched tile next to the pale field. Fix in the same spirit as the sheet carve-out:
inside `.glass-panel` / `.study-chrome` / `.glass` / `.tabbar` the nesting chrome (`surface`
tokens, white/xx fills, chips, cards) drops the bake and keeps its flat token fill — the
panel's own blur *is* the glass — while the composer's textarea keeps its brighter tile
recipe (exempted by `:not()`), and `.aero .btn-ghost` gains the same carve-out so the study
pager's arrows sit flat in the pill. Probes pin it: the attach tile now samples the band
(115,137,118) instead of a dark mis-crop (73,102,77), all suites green, contrast scan 0.
96. **Skipping a card is not a mistake.** "You can just scroll all the way down and it counts
everything as incorrect even if you technically just skip it to do it later." The study feed's
results treated *every* card without a result as missed: swiping to the end recorded a 0%