motion logo

motion

motion

hairyf/skills821installs19starsDesign & UI/UX

SKILL.md

Full skill instructions

Motion is an open-source animation library for JavaScript, React, and Vue. It provides a simple API with first-class support for multiple platforms, a hybrid animation engine combining JavaScript with native browser APIs for 120fps GPU-accelerated animations, and production-ready features including TypeScript support, extensive test suite, tree-shakable builds, and a tiny footprint. Batteries included: gestures, springs, layout transitions, scroll-linked effects, and timelines.

The skill is based on Motion v12.29.2, generated at 2026-02-01.

Core References

TopicDescriptionReference
Motion ComponentsBasic motion components (motion.div, motion.svg, etc.)core-components
Basic Animationanimate prop, initial, while statescore-animation
JavaScript animate()Vanilla animate(), sequences, createScopedAnimatecore-javascript-animate
Vanilla scroll()Imperative scroll() and scrollInfo() for non-Reactcore-vanilla-scroll
motionValueCreate MotionValues without Reactcore-vanilla-motion-value
staggerOrchestrate child delays in variantscore-stagger
frame / cancelFrameMotion's animation loopcore-frameloop
motion/miniMinimal bundle entrycore-motion-mini
VariantsDeclarative animation variants and orchestrationcore-variants
TransitionsAnimation timing, easing, spring physicscore-transitions

Motion Values

TopicDescriptionReference
useMotionValueCreate and use motion values for reactive animationsvalues-motion-value
useSpringSpring-based motion values with physicsvalues-spring
useTransformTransform motion values with functionsvalues-transform
useMotionTemplateCombine motion values into a string (e.g. filter, boxShadow)values-motion-template
useFollowValueMotion value that follows a source with any transitionvalues-follow
useScrollScroll-linked motion values and animationsvalues-scroll
useVelocityAccess velocity of motion valuesvalues-velocity
useTimeTime-based motion valuesvalues-time
useWillChangeGPU layer hint for animating elementsvalues-will-change

Gestures

TopicDescriptionReference
DragDrag gestures with constraints and controlsgestures-drag
PanPan gestures for touch and pointer eventsgestures-pan
Tap & PressTap and press gesture handlersgestures-tap-press
Hover & FocusHover and focus state animationsgestures-hover-focus

Layout Animations

TopicDescriptionReference
AnimatePresenceAnimate components entering and exitinglayout-animate-presence
usePresence / useIsPresentAccess presence state in AnimatePresence childrenlayout-use-presence
usePresenceDataRead AnimatePresence custom prop in descendantslayout-presence-data
LayoutGroupCoordinate layout animations across componentslayout-group
Layout AnimationsAutomatic layout animations with layoutIdlayout-animations
ReorderDrag-to-reorder with layout animationslayout-reorder
useInstantLayoutTransitionBlock layout update for one framelayout-instant-transition
useResetProjectionReset layout projection tree after structural changelayout-reset-projection

Features

TopicDescriptionReference
In ViewuseInView, inView(), usePageInView for viewport/visibilityfeatures-in-view
Resizeresize() observer for window or element sizefeatures-resize
Optimized AppearSSR-friendly appear animations with handofffeatures-optimized-appear
SVG PathpathLength, pathOffset, pathSpacing for path animationsfeatures-svg-path
motion/clientNext.js "use client" and tree-shakable componentsfeatures-react-client

Utils

TopicDescriptionReference
useReducedMotionHooks for reduced motion preferenceutils-reduced-motion
useAnimationFrameFrame-synced callback with Motion's looputils-animation-frame
useCycleCycle through a list of statesutils-cycle
useMotionValueEventSubscribe to motion value eventsutils-motion-value-event
delayFrame-synced delayed executionutils-delay
interpolateMap input range to outpututils-interpolate
useDomEventAttach DOM event listenersutils-dom-event
useInstantTransitionBlock layout animations during updateutils-instant-transition
calcLength / createBox / distanceProjection geometry and distanceutils-path-geometry

Advanced

TopicDescriptionReference
Animation ControlsProgrammatic animation control with useAnimationadvanced-animation-controls
useAnimateImperative animation APIadvanced-use-animate
LazyMotionCode-split animations for better performanceadvanced-lazy-motion
MotionConfigGlobal configuration and reduced motionadvanced-motion-config
Scroll AnimationsScroll-linked animations and parallax effectsadvanced-scroll-animations
transformTemplateCustom transform outputadvanced-transform-template
addScaleCorrectorLayout projection scale correctorsadvanced-scale-corrector

Best Practices

TopicDescriptionReference
Bundle SizeEntry points and optimization strategiesbest-practices-bundle