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:
@@ -196,8 +196,10 @@
|
||||
// btn.js toggles .sky-saved-glow three times (finite), in rhyme with the
|
||||
// 2-pulse --priRd .flash-inactive + the voice pulse above. The Sky sub-btn's
|
||||
// own .active state (real cloud icon, opacity 1) is handled by the generic
|
||||
// .burger-fan-btn.active rules.
|
||||
#id_burger_btn.sky-saved-glow {
|
||||
// .burger-fan-btn.active rules. Shared by the burger (save-moment cue) AND the
|
||||
// Sky sub-btn (the handoff cue on the next burger-open).
|
||||
#id_burger_btn.sky-saved-glow,
|
||||
#id_sky_btn.sky-saved-glow {
|
||||
color: rgba(var(--priTk), 1);
|
||||
border-color: rgba(var(--priTk), 1);
|
||||
box-shadow:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -57,6 +57,15 @@ html.sky-open .position-strip {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
// Post-save cascade ease-out — the felt fades to transparent over ~0.5s (the JS
|
||||
// _FELT_FADE timer) BEFORE sky-open is removed, so the table-hex is revealed with
|
||||
// a soft dissolve instead of a hard snap. Visibility is still on (sky-open) for
|
||||
// the duration of the fade; the JS removes sky-open once the opacity lands at 0.
|
||||
.sky-page.sky-page--cascade-out {
|
||||
opacity: 0;
|
||||
transition: opacity 0.5s ease;
|
||||
}
|
||||
|
||||
// ── Backdrop ──────────────────────────────────────────────────────────────────
|
||||
|
||||
.sky-backdrop {
|
||||
|
||||
Reference in New Issue
Block a user