Aero glass goes back to glass

The uniform wash (background-glass) made the rail and the chat chrome nearly
opaque - "why is the sidebar so white and non-translucent... its supposed to
be translucent and blurry!". The rail, the chat header, the welcome card and
the composer now use the same recipe as every other surface in the app
(background-blur under the shared gloss + veil + --glass-bg, exactly what the
deck cards do), and the dedicated wash asset is deleted. Answer bubbles keep a
thin 0.3 veil over the same blurred wallpaper.

Measured: the rail runs 181,229,241 over the sky to 133,174,75 over the grass
(translucent, d166) and the chat/library screens still scan at 0 below-minimum
text-contrast findings in all three themes. The chat suite now pins both the
shared recipe and the translucency, so a future "make it uniform" pass cannot
quietly reintroduce an opaque panel. Phone touch keeps the flat 32% glass.

Version 0.6.3, SW v85.
This commit is contained in:
Martin Dvořák 2026-10-15 09:37:26 +00:00
commit b9d0cd34b9
6 changed files with 58 additions and 34 deletions

View file

@ -452,6 +452,7 @@
.aero .btn-secondary,
.aero .chat-header,
.aero .chat-empty,
.aero .chat-composer-band,
.aero .segmented,
/* Hand-rolled frost fills in the study, exam, chat and homework flows:
white/xx utilities and the surface tokens — without this they render as
@ -564,15 +565,14 @@
/* Chat: the longest text in the app sits straight on the wallpaper. The
assistant answers are deliberately bubble-less in the flat themes, and the
user bubble's thin tint washes out over the bright parts of the scene — in
Aero both get a real pane: the same even wash as the chrome, a touch more
opaque (this is where the reading happens), so an answer reads as its own
bubble and its colour does not drift with the photo behind it. */
Aero both get a real pane: the shared blurred wallpaper under a veil thick
enough for reading, still translucent enough to read as glass. */
.aero .chat-bubble,
.aero .chat-answer {
border-color: rgb(255 255 255 / 0.85);
background-image:
linear-gradient(rgb(255 255 255 / 0.6), rgb(255 255 255 / 0.6)),
url("/aero/background-glass.webp?v=4");
linear-gradient(rgb(255 255 255 / 0.3), rgb(255 255 255 / 0.3)),
url("/aero/background-blur.webp?v=4");
background-size: 100% 100%, cover;
background-position: 0 0, center 42%;
background-attachment: scroll, fixed;
@ -604,31 +604,6 @@
background-repeat: no-repeat, no-repeat;
}
/* Chat chrome and the rail: one even frosted recipe. The pre-blurred,
extra-soft wash of the wallpaper (background-glass) sits under a uniform
white veil, so the surface colour cannot drift with the photo behind it —
the rail used to run from clear blue into a muddy green smear, the composer
picked up the river's teal and the header a saturated stripe of sky. */
.aero .sidebar-surface,
.aero .chat-header,
.aero .chat-empty,
.aero .chat-composer-band {
background-image:
linear-gradient(
180deg,
rgb(255 255 255 / 0.3) 0%,
rgb(255 255 255 / 0.1) 46%,
rgb(255 255 255 / 0.05) 53%,
rgb(255 255 255 / 0.12) 100%
),
linear-gradient(rgb(255 255 255 / 0.46), rgb(255 255 255 / 0.46)),
url("/aero/background-glass.webp?v=4");
background-size: 100% 100%, 100% 100%, cover;
background-position: 0 0, 0 0, center 42%;
background-attachment: scroll, scroll, fixed;
background-repeat: no-repeat, no-repeat, no-repeat;
}
/* The chat welcome (title, subtitle, suggestion chips): a card like the
library's, stretched across the conversation column so it lines up with the
floating header above and composer below it. */