forked from Keelrleek/SoulStream
Phase 2C: fix reel centering via window-relative card positioning
The transitioned track translateY collapsed to 0 in Chromium (percent- translated zero-height track), leaving the active cover one stride low per step. The track is now a fixed anchor at the reel centre; each card positions itself at (index - activeIndex) * stride and animates its own small `top`, so no coordinate ever exceeds +/-RENDER_RADIUS * stride. Verified with the transition ON: centre offset 0 at every index in the 12- and 500-item fixtures, 5 cards in the DOM at scale, wheel gates, dialog semantics, Tab containment, focus restore, and polite announce all pass. Dev window.__preview*/__ui handles removed from App.svelte.
This commit is contained in:
1 parent
e6252b9bb3
commit
56036216f8
2 files changed
+27
-28
No files matched your search
+1
-10
@@ -6,7 +6,7 @@
|
||||
import ArtworkViewer from "./components/ArtworkViewer.svelte";
|
||||
import LoginModal from "./components/LoginModal.svelte";
|
||||
import PreviewOverlay from "./components/PreviewOverlay.svelte";
|
||||
import { previewUi, openPreviewFixture } from "./lib/preview/previewSession.svelte.js";
|
||||
import { previewUi } from "./lib/preview/previewSession.svelte.js";
|
||||
import Home from "./views/Home.svelte";
|
||||
import Search from "./views/Search.svelte";
|
||||
import Library from "./views/Library.svelte";
|
||||
@@ -43,15 +43,6 @@
|
||||
refreshLibrary();
|
||||
refreshPlaylists();
|
||||
|
||||
// Dev-only hook for the Phase 2 exit-gate check (500-item fixture in a
|
||||
// plain browser) and for driving the modal without a Tauri backend.
|
||||
if (import.meta.env.DEV && typeof window !== "undefined") {
|
||||
window.__previewFixture = (n = 12) => openPreviewFixture(n);
|
||||
window.__previewUi = previewUi; // debug: the app's own store instance
|
||||
window.__ui = ui; // debug: known-good reactive store, same instance
|
||||
window.__togglePv = () => (previewUi.open = !previewUi.open);
|
||||
window.__toggleNp = () => (ui.nowPlaying = !ui.nowPlaying);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div
|
||||
|
||||
Reference in new issue
Block a user