Sea Select: keep the sky btn lit on a revisited felt (+ clean felt-swap); slow the glow-handoff ease-out — TDD

Symmetry (user-spec): Sky Select leaves the burger sea btn lit while the sky
felt is up; Sea Select now mirrors it — openSea disables ONLY id_text_btn, no
longer id_sky_btn, so a revisited Sea Select keeps the completed sky one click
away. An adversarial pass flagged that the two felts are equal-z (z-index:5)
siblings and neither open path drops the other's open-class, so leaving the sky
btn lit and clicking it from inside the sea felt would DOUBLE-OPEN (sea paints
over sky → confusing no-op) — the same latent stack already reachable in the
sky->sea direction on a both-complete reload. Fixed in BOTH directions: openSea
now closes the sky felt first + openSky closes the sea felt first (each exposes
its close on window: closeSeaFelt / closeSkyFelt), so clicking the other phase's
lit btn performs a clean SWAP. The text-btn disable/restore chain stays correct
across the swap (closeSky restores text, openSea re-disables + recaches it).

Glow: the glow-handoff pulse ease-OUT now runs ~2.8s (was ~1.4s) — moved the
cycle to 3.2s with the bright peak at 12.5%, keeping the ease-IN swell at ~0.4s
(user asked for a longer linger).

[[feedback-felt-aperture-fill-covers-felt]] [[feedback-inline-partial-script-defer-for-later-partial]]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-06-08 00:57:24 -04:00
parent 82f4af9bcc
commit 945d110171
4 changed files with 53 additions and 10 deletions

View File

@@ -191,13 +191,14 @@
#id_sea_btn.glow-handoff {
color: rgba(var(--priId), 1);
border-color: rgba(var(--priId), 1);
animation: glow-handoff-pulse 1.8s infinite;
animation: glow-handoff-pulse 3.2s infinite;
}
// Quick ease-IN to the bright peak over the first ~22% of the cycle, then a slow
// ease-OUT fade back to the dim trough across the remaining ~78%. The per-segment
// timing fns set the in/out asymmetry; the lopsided keystop split makes the swell
// feel snappy and the decay linger.
// Quick ease-IN to the bright peak over the first ~12.5% of the cycle (~0.4s),
// then a slow ease-OUT fade back to the dim trough across the remaining ~87.5%
// (~2.8s — roughly twice the earlier decay; user asked for a longer linger). The
// per-segment timing fns set the in/out asymmetry; the lopsided keystop split
// keeps the swell snappy while the fade lingers.
@keyframes glow-handoff-pulse {
0% {
box-shadow:
@@ -205,7 +206,7 @@
0 0 0.7rem 0.1rem rgba(var(--ninUser), 0.12);
animation-timing-function: ease-in;
}
22% {
12% {
box-shadow:
0 0 0.6rem 0.15rem rgba(var(--ninUser), 0.95),
0 0 1.4rem 0.4rem rgba(var(--ninUser), 0.55);