← ClaudeAtlas

framer-motionlisted

Framer Motion patterns for React UI animation — `motion` components, `AnimatePresence`, `layout` animations, `useScroll`/`useTransform`, gestures, variants, and orchestration. Use when adding entrance/exit, page transitions, scroll-linked motion, gestures, shared-layout transitions, "Framer Motion", "motion.div", "AnimatePresence", "useScroll", "אנימציה ב-React", or "Framer".
hiyabh/claude-video-skills · ★ 1 · Web & Frontend · score 62
Install: claude install-skill hiyabh/claude-video-skills
# Framer Motion Declarative, React-state-driven animation. The default for "this component should animate when X happens". ## When to use Framer Motion vs GSAP | Need | Pick | |------|------| | Component mounts/unmounts | **Framer** (`AnimatePresence`) | | State change drives motion | **Framer** (`animate` prop) | | Drag, hover, tap gestures | **Framer** (`whileHover`, `drag`) | | Shared element across routes | **Framer** (`layoutId`) | | Long imperative timeline | **GSAP** ([gsap skill](../gsap/SKILL.md)) | | Scroll-pinned 3D scene | **GSAP** ScrollTrigger ([threejs-scroll-cinema](../threejs-scroll-cinema/SKILL.md)) | | Audio-synced choreography | **GSAP** | Mixing both in one project is fine. Framer for component-scoped, GSAP for global timelines. ## Install ```bash npm i motion ``` > Note: as of v11+ the package is `motion` (was `framer-motion`). Both still work. ```jsx import { motion, AnimatePresence } from 'motion/react'; ``` ## Core API | API | Purpose | |-----|---------| | `<motion.div>` | Animatable div (also `motion.span`, `motion.button`, `motion.path`, etc.) | | `initial` / `animate` / `exit` | Animation states | | `transition` | Duration, easing, type (tween/spring/inertia) | | `variants` | Reusable named states | | `whileHover` / `whileTap` / `whileFocus` / `whileInView` | Gesture-bound states | | `<AnimatePresence>` | Animate exit when removed from tree | | `layout` / `layoutId` | Auto-animate layout changes | | `useScroll` | Scroll progress hook | |