framer-motion-gestures
Official Framer Motion skill for gesture animations — drag, pan, tap, hover, focus, touch animations. Use when building interactive elements with drag, pan, tap, hover, or touch gestures, or when asking about Framer Motion drag constraints, gesture handlers, or interactive animations.
By c-jeril · 549 installs
npx skills add c-jeril/framer-motion-skills --skill framer-motion-gestures
Source repository · Upstream listing
Framer Motion Gestures
When to Use This Skill
Apply when implementing gesture driven animations: drag, pan, tap, hover, focus, or touch interactions. When the user asks about drag and drop, interactive elements, or gesture based UI in Framer Motion.
Related skills: For core animation use framer motion core ; for variants use framer motion variants ; for layout animations use framer motion layout .
Drag
Enable dragging with the drag prop:
Drag Props
Prop Type Description
drag bool \ "x" \ "y" Enable drag on axis
dragConstraints object \ RefObject Movement constraints
dragMomentum boolean Continue momentum after release (default: true)
dragElastic number \ object Elasticity of bounds (default: 0)
dragTransition Transition Spring config for momentum
whileDrag MotionProps Animation while dragging
onDrag function Callback during drag
onDragStart function Callback when drag starts
onDragEnd function Callback when drag ends
Drag Constraints
Ref based Constraints
Pan
Pan is similar to drag but for pointer/touch:
Pan vs Drag
Drag : Mouse/touch with visual feedback, momentum, and constraints
Pan : Lower level pointer tracking without momentum
Tap (whileTap)
Animation when pressed:
Hover (whileHover)
Animation on hover:
onHoverStart / onHoverEnd
Focus (whileFocus)
Animation when focused (keyboard):
Drag with Spring Physics
Drag Controls with Constraints
Swipe Detection
Gesture State Info
Callbacks receive PointInfo and DragInfo :
Best practices
✅ Use dragConstraints to keep elements within bounds.
✅ Use dragElastic for bounce back effects.
✅ Use whileDrag for visual feedback during drag.
✅ Use dragMomentum for natural continuation.
✅ Use dragTransition with spring for physics based drag.
✅ Use refs for constraints when dragging within a container.
Do Not
❌ Use drag without dragConstraints if the element should stay within bounds.
❌ Forget that drag events only fire after the pointer moves a threshold.
❌ Use excessive dragElastic — it can cause visual glitches.
❌ Animate conflicting properties during drag (e.g., scale and x).
Learn More
https://www.framer.com/motion/gestures/
https://www.framer.com/motion/drag/