CAST SKY cascade: felt eases out → glow → DRAW SEA eases in; burger handoff; reload-into-open — TDD
Post-save choreography + the polish asks from this session.
- Post-save cascade (_sky_overlay.html): after SAVE the gamer lingers on the
wheel ~3s, then the felt eases OUT (fade, .sky-page--cascade-out) to reveal the
table-hex; the burger fires its --priTk glow + #id_sky_btn goes active (both
ride the cascade now, not the save instant); 3s later the DRAW SEA btn eases IN
and the sea overlay is injected so it's live with NO reload.
- Hex phase-stack (room.html + _room.scss): CAST SKY + DRAW SEA share one grid
cell (.hex-phase-stack) so they cross-fade in place (.hex-phase-btn--out); the
server seeds --out on the inactive one, the cascade swaps them. A confirmed
reload lands DRAW SEA visible / CAST SKY out, same as the cascade end.
- Seamless sea injection: _injectSeaOverlay fetches sea_partial (the URL already
existed, unused) + re-creates its <script>s so the overlay's own init (openSea
+ SeaDeal.reinit) runs — DRAW SEA opens with no reload. (Bridge until Sea Select
is itself hollowed into a felt.)
- Burger → Sky-btn handoff (burger-btn.js + _burger.scss): _pulseGlow generalized;
once saved, the next burger-OPEN pulses #id_sky_btn --priTk ("now click me to
reopen"). Jasmine specs added (BurgerSpec).
- #id_text_btn disabled while the felt is up (openSky/closeSky) — its swipe
machine would otherwise half-load the scroll-locked reelhouse.
- Reload-into-open (sig-select.js + _sky_overlay.html): the SIG_SELECT→SKY_SELECT
CAST SKY click crosses a server-render boundary (felt/phase-stack/sea-inject
only exist in SKY_SELECT), so it still reloads — but drops a sessionStorage
flag first so the felt OPENS on arrival. Kills the old click→reload→click-again
double-take (the "first click reloads" report). DRAW SEA can inject in-place
(stays within SKY_SELECT); CAST SKY can't, so this is the seamless equivalent.
Tests: BurgerSpec handoff specs + full Jasmine green; 32 render ITs + 930
epic+gameboard green. Cascade timing live-verified by the user.
[[feedback-scss-import-order-specificity]]
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -980,6 +980,29 @@ html .room-gate-page.room-gate-page .position-strip .gate-slot { pointer-events:
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
// Hex phase-button stack — CAST SKY + DRAW SEA share ONE grid cell so they can
|
||||
// cross-fade IN PLACE during the post-save cascade (the sky-overlay JS toggles
|
||||
// .hex-phase-btn--out). The grid sizes to the larger btn; .table-center centers
|
||||
// it. Only the SKY_SELECT phase renders both; other phases use a lone button.
|
||||
.hex-phase-stack {
|
||||
display: grid;
|
||||
justify-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.hex-phase-stack > .hex-phase-btn {
|
||||
grid-area: 1 / 1; // stack both buttons in the same cell
|
||||
transition: opacity 0.45s ease, transform 0.45s ease;
|
||||
}
|
||||
|
||||
// Eased-out state — invisible + inert, but still in layout so the partner btn
|
||||
// can cross-fade in (display:none can't transition).
|
||||
.hex-phase-btn--out {
|
||||
opacity: 0;
|
||||
transform: scale(0.7);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
// "Gravity settling . . ." / "Levity appraising . . ." shown after a polarity
|
||||
// group confirms their sigs while the other group is still selecting.
|
||||
// Pulsing opacity signals active waiting without being jarring.
|
||||
|
||||
Reference in New Issue
Block a user