gsap-sveltekit
GSAP SvelteKit
mount → initial state → intro → settled → outro → end state → unmount
Mount and unmount belong to Svelte; animation owns the five phases between them. SvelteKit reuses pages on parameter changes and preserves shared layouts, so a new page lifecycle need not mean a new node.
Keep the requested look and existing project conventions. Add GSAP/plugins only as needed; do not replace the chosen animation library unless asked.
This skill decides when motion runs. For what moves, and for a feel such as premium or playful, also load the animaxxing skill when it is installed: its recipes and its guide to finding the vibe plug into this lifecycle.
Start with the project
Read repository instructions, existing animation, layouts, navigation, CSS, accessibility conventions, and checks. Then:
- Confirm SvelteKit with Svelte 5 in runes mode. Plain Svelte without SvelteKit routing belongs to
gsap-frameworks. For Svelte 4 or legacy mode, say so and map$effectadvice ontoonMountandonDestroy. - Read the installed
@sveltejs/kitandsvelteversions. Prefer their bundled types over memory:node_modules/@sveltejs/kit/types/index.d.tsdocuments every navigation object, andnode_modules/svelte/types/index.d.tsthe runes and lifecycle exports. Version gates:onNavigate(1.24),$app/state(2.12; use$app/storesbefore),to.scrollon navigation targets (2.51),prefersReducedMotioninsvelte/motion(5.7),{@attach}(5.29). - Check
svelte.config.js, page options (ssr,csr,prerender),data-sveltekit-preload-dataonbodyinsrc/app.html, and links markeddata-sveltekit-reload. A page withcsr = falsehas no client router and no navigation hooks; a reload link is a full document load. Treat both as plain documents.