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:
@@ -449,13 +449,18 @@ via epic:sea_save. `?seat` threads the CARTE-selected seat onto the action URLs.
|
||||
}
|
||||
hidden.addEventListener('change', sync);
|
||||
|
||||
// ── Open / close the felt (DRAW SEA ⇄ gear NVM nav). On open: disable the
|
||||
// burger Text + Sky sub-btns. The sea btn is NOT activated here — it's the
|
||||
// post-completion reopen affordance (see the cascade + the reopen binding).
|
||||
// ── Open / close the felt (DRAW SEA ⇄ gear NVM nav). On open: disable ONLY the
|
||||
// burger Text sub-btn (its swipe machine would drive into a scroll-locked
|
||||
// reelhouse). The SKY sub-btn is left .active (lit) — symmetric with Sky Select,
|
||||
// which leaves the sea btn lit while the sky felt is up (user-spec 2026-06-08):
|
||||
// both completed phases stay one click apart. The sea btn itself is NOT
|
||||
// activated here — it's the post-completion reopen affordance (see the cascade
|
||||
// + the reopen binding). Clicking the lit sky btn from here SWAPS felts cleanly
|
||||
// (openSea/openSky close each other — see openSea below).
|
||||
var _disabledBtns = [];
|
||||
function _disablePhaseBtns() {
|
||||
_disabledBtns = [];
|
||||
['id_text_btn', 'id_sky_btn'].forEach(function (id) {
|
||||
['id_text_btn'].forEach(function (id) {
|
||||
var b = document.getElementById(id);
|
||||
if (b && b.classList.contains('active')) { b.classList.remove('active'); _disabledBtns.push(b); }
|
||||
});
|
||||
@@ -465,6 +470,13 @@ via epic:sea_save. `?seat` threads the CARTE-selected seat onto the action URLs.
|
||||
_disabledBtns = [];
|
||||
}
|
||||
function openSea() {
|
||||
// Clean SWAP, not a double-open: if the sky felt is up (its lit sea btn was
|
||||
// just clicked) close it first — both felts are z-5 siblings that otherwise
|
||||
// stack (sea paints over sky), and neither open path drops the other's
|
||||
// open-class on its own. Mirrored by openSky closing the sea felt.
|
||||
if (document.documentElement.classList.contains('sky-open') && window.closeSkyFelt) {
|
||||
window.closeSkyFelt();
|
||||
}
|
||||
document.documentElement.classList.add('sea-open');
|
||||
document.documentElement.classList.add('sea-entered');
|
||||
_disablePhaseBtns();
|
||||
@@ -476,6 +488,7 @@ via epic:sea_save. `?seat` threads the CARTE-selected seat onto the action URLs.
|
||||
if (window.RoomViews && window.RoomViews.syncGear) window.RoomViews.syncGear();
|
||||
}
|
||||
window.openSeaFelt = openSea;
|
||||
window.closeSeaFelt = closeSea;
|
||||
var pickSeaBtn = document.getElementById('id_pick_sea_btn');
|
||||
if (pickSeaBtn) pickSeaBtn.addEventListener('click', openSea);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user