The poster captions sit on a blurred veil that comes out of nothing

The scrim used to be a hard linear-gradient riding in the button's own
background stack. It is a masked backdrop-blur now: nothing at all at its top
edge, a surface by the time it reaches the words. The art stays art where the
art is, the caption gets something to sit on, and no box edge appears anywhere.
Measured on this machine it costs 0.2ms a frame — the backdrop is static while
the menu is.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-31 13:30:17 +02:00
1 parent 3324fe9cda
commit 61652a9114
2 files changed
+20 -4

No files matched your search

+4 -3
View File
@@ -127,9 +127,10 @@ const modeSub = document.getElementById('modeSub');
const banner = (card, cls, last) => {
const b = document.createElement('button');
b.className = cls;
// the scrim rides IN the background stack (gradient over art), so the caption needs no extra box
b.style.backgroundImage =
`linear-gradient(180deg, rgba(0,0,0,0) 34%, rgba(0,0,0,0.78)), url(assets/${card.art}.png?v=${SPRV})`;
// JUST THE ART. The scrim used to ride in this background stack as a hard linear-gradient; the
// caption sits on a BLURRED veil now (index.html, button.mode::after) that fades in out of
// nothing from above, and stacking the old gradient under it only doubled the darkening.
b.style.backgroundImage = `url(assets/${card.art}.png?v=${SPRV})`;
b.innerHTML = `<span class="cb"><b>${card.name}</b><i>${card.sub}</i></span>`
+ (last ? '<u class="last">LAST</u>' : '')
// the standing answer to "how do I advance", worn by the poster it is true of (config MODES)