gsap-frameworks
Vue, Svelte, and other frameworks with lifecycle, scoping, and clea...
Developer Setup
Setup & Installation
npx skills add https://github.com/greensock/gsap-skills --skill gsap-frameworksnpx skills add https://github.com/greensock/gsap-skills --skill gsap-frameworksOverview
What This Skill Does
Vue, Svelte, and other frameworks with lifecycle, scoping, and cleanup patterns
Application
When to use this Skill
- Integrating gsap frameworks into your development workflow.
- Following best practices for vue, svelte, and other frameworks with lifecycle, scoping, and cleanup patterns.
- Automating repetitive tasks with AI-assisted tooling.
- Building production-grade applications with proper standards.
- Debugging and troubleshooting common implementation issues.
Documentation
Show Skills.md file
GSAP with Vue, Svelte, and Other Frameworks
When to Use This Skill
Apply when writing or reviewing GSAP code in Vue (or Nuxt), Svelte (or SvelteKit), or other component frameworks that use a lifecycle (mounted/unmounted). For React specifically, use gsap-react (useGSAP hook, gsap.context()).
Related skills: For tweens and timelines use gsap-core and gsap-timeline; for scroll-based animation use gsap-scrolltrigger; for React use gsap-react.
Principles (All Frameworks)
- Create tweens and ScrollTriggers after the component’s DOM is available (e.g. onMounted, onMount).
- Kill or revert them in the unmount (or equivalent) cleanup so nothing runs on detached nodes and there are no leaks.
- Scope selectors to the component root so
.boxand similar only match elements inside that component, not the rest of the page.
Vue 3 (Composition API)
See examples/vue/ for a runnable Vite + Vue 3 project demonstrating these patterns.
Use onMounted to run GSAP after the component is in the DOM. Use onUnmounted to clean up.
import { onMounted, onUnmounted, ref } from "vue";
import { gsap } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
gsap.registerPlugin(ScrollTrigger); // once per app, e.g. in main.js
export default {
setup() {
const container = ref(null);
let ctx;
onMounted(() => {
if (!container.value) return;
ctx = gsap.context(() => {
gsap.to(".box", { x: 100, duration: 0.6 });
gsap.from(".item", { autoAlpha: 0, y: 20, stagger: 0.1 });
}, container.value);
});
onUnmounted(() => {
ctx?.revert();
});
return { container };
},
};
Recommendations
Explore other random skills
sentry-node-sdk
Full Sentry SDK setup for Node.js, Bun, and Deno
sentry-nextjs-sdk
Full Sentry SDK setup for Next.js 13+ (App Router and Pages Router)
sentry-go-sdk
Full Sentry SDK setup for Go (net/http, Gin, Echo, Fiber, FastHTTP, Iris, Negroni)