Changelog

Releases across Motion, Motion+, Motion UI, Motion AI Kit, and Motion Studio.

  1. Motionpatch13.4.5

    Fixed

    • layout: Fix relative child jumping when parent interrupts layout animation.
    • AnimatePresence: Can no longer drop a child added while another exit animation completes.
    • Reorder: Only clear Reorder.Group's reorder guard when values change.
    • spring/useSpring: 5% smaller.
  2. Motion Studiominor2.1.0

    Added

    • Unlock free Ultramotion allowance for all members.
    • Allow undo/redo via Ultramotion.
  3. Motionpatch13.4.4

    Changed

    • scroll: 44% smaller.
    • useScroll: 33% smaller.
    • Scroll callbacks: 50% faster.
    • Removed ScrollTimeline support for JS callbacks as benchmarked no improvement over scrollInfo.

    Fixed

    • useDragControls: Fixed snapToCursor origin drift on repeated calls.
    • drag: Improved pointerend timing.
    • spring: Check invalid spring values before applying.
    • AnimatePresence: Ensure children don't stick during reentry.
  4. Motionpatch13.4.3

    Fixed

    • <motion>: Ensure animations replay when Suspense reveals memoized content.
  5. Motionpatch13.4.2

    Fixed

    • Reorder: Don't scale position of elements at origin 0 when dragConstraints changes.
    • Unrecognised easing names no longer throw.
  6. Motionpatch13.4.1

    Fixed

    • animate: CSS variable writes on SVGs apply to style attribute.
  7. Motion Studiomajor2.0.0

    Added

    • First release.
  8. Motionminor13.4.0

    Added

    • AnimateView: View transitions for React 19.3, built on React's ViewTransition.
  9. Motionminor13.3.0

    Added

    • Hooks for Motion Editor.

    Changed

    • springValue/useSpring: 80% reduction in time when retargeting.
    • animate: 10% smaller.
    • animate: 20% reduction in startup time.
    • animate: 10% reduction in per-frame JS.
    • frame: Frame scheduling 10% faster.

    Fixed

    • animate: Fixed path drawing calculations.
  10. Motionminor13.2.0

    Added

    • animate.addEffect() for registering effects that lets animate drive non-DOM subjects alongside DOM elements.
    • threeEffect (motion/three) supporting Three.js objects, materials, shader uniforms, TSL uniform nodes and more.
    • vgpuEffect (motion/vgpu) supporting shared uniforms, Effect/Draw/Compute bindings ("params.time"), scene nodes, cameras, lights, materials, orbit controls, CSS colors and vector components.
    • createEffect now accepts test, read and step options and exposes bound motion values via effect.get().

    Changed

    • Reduced filesize and improved performance of spring.
    • MotionValueState no longer caches values in latest; effect renders read their motion values directly. set() drops its useDefaultValueType argument.
  11. Motionpatch13.1.1

    Fixed

    • Guard animation window access in non-browser runtimes.
    • AnimatePresence: Improved compat with React 19 strict mode.
  12. Motion UIpatch0.0.2

    Added

    • Toast stack: overlay notifications that fan into a scaled pile on a shared spring.
  13. Motionminor13.1.0

    Added

    • Reorder: Multidimensional reorder.
    • Reorder: Automatic axis detection.
    • Reorder: RTL support.
  14. Motionmajor13.0.0

    Changed

    • Removed optional @emotion/is-prop-valid dependency in favour of explicit <MotionConfig isValidProp={isPropValid}>.

    Fixed

    • Hardware-accelerated SVG elements correctly apply final style on animation complete.
    • AnimatePresence: Ensure nodes are marked as safe to remove when rendering propagate with no motion children.
  15. Motionminor12.43.0

    Added

    • Hardware acceleration for backgroundColor in supported browsers.
    • Hardware acceleration for SVG elements.

    Fixed

    • AnimatePresence: Exiting children no longer interleave with entering children, which could reorder and remount children present in both renders.
    • motion: Throw error when passing a custom motion component an incorrect ref type.
  16. Motion AI Kitminor6.2.0

    Added

    • MCP: search-motion-codex now returns Motion UI components and sections (Motion+ / React) as full multi-file paste-ready source — same delivery model as examples, baked into the package.
  17. Motion UIpatch0.0.1

    Added

  18. Motionpatch12.42.2

    Fixed

    • animateView: Cropped group layers now animate border-radius from the old to new radius.
  19. Motionpatch12.42.1

    Fixed

    • animateView: Old layer fade out now cancelled when defining .new().
  20. Motionminor12.42.0

    Changed

    • animateView: Layers are automatically grouped to match their DOM-hierarchy. New .group(false) method opts-out.

    Fixed

    • animateView: Auto-crop is now aspect-ratio aware, disabling crops for matching aspect-ratios.
    • animateView: Disabled automatic border-radius animation.
  21. Motionminor12.41.0

    Added

    • animateView: Moves from Motion+ Early Access and alpha to main library.
    • animateView: .add() resolves a CSS selector or Element to automatically generate, apply and remove view-transition-name.
    • animateView: .new() and .old() configures values to animate on new and old layers.
    • animateView: .layout() can set a custom transition on the size/position animation of the currently selected elements.
    • animateView: Group layers now automatically crop with children set to cover, with border-radius animating from old radius to new. .crop(false) disables this behaviour.
    • animateView: .class(name) tags currently selected elements with a view-transition-class as a custom CSS hook.

    Fixed

    • AnimatePresence: Prevent stuck exit animations when children interrupt.
    • drag: Child e.stopPropagation() no longer break drag end.
    • Fixing Next.js OOM on Windows when importing via motion package.
    • animateLayout: Improve handling of parallel/interleaved calls.

    Changed

    • animateView: .enter() and .exit() now refer specifically to new and old layers where there are no matching old or new layers.
    • animateView: Interrupted transition setups now return resolved animation rather than throwing.
  22. Motion+minor2.12.0

    Added

    • curtains/useCurtains: Cover/reveal page and element transitions.
  23. Motion AI Kitminor6.1.0

    Changed

    • Skills: Add MotionScore runtime performance profiling to /motion.
  24. Motion AI Kitmajor6.0.0

    Changed

    • Skills: Unified all skills into one /motion skill.
  25. Motion AI Kitpatch5.4.4

    Added

    • MCP: Hardened response to missing sharp dependency.
  26. Motionminor12.40.0

    Added

    • path option to transition.
    • arc() for motion along an arc.
  27. Motionminor12.39.0

    Added

    • Support for repeatType and repeatDelay in animation sequences.

    Fixed

    • Variants: Re-run keyframe animations when switching between variant labels even when they share identical keyframe arrays.
    • Drag: Preserve in-flight motion value animations across React 19 reorder unmount/remount so dragSnapToOrigin no longer leaves the drag transform stranded after a layout swap.
    • LazyMotion: Share React contexts between the framer-motion and framer-motion/m (and therefore motion/react and motion/react-m) CJS bundles so that <m.div> from the /m subpath picks up features loaded by <LazyMotion> from the main entry point.
    • useScroll: Support hydrating target and container refs from anywhere in the tree.
    • Drag: Gesture no longer starts from incorrect start point when rendered inside <AnimatePresence initial={false} />.
    • Drag: dragConstraints, when set as viewport-relative ref, no longer break on scroll.§
    • Updated visualElement hydration order.
    • useAnimate: Now respects skipAnimations.
    • AnimatePresence: Fix object-form initial values not applied on re-entry after exit completes.
    • scroll: Fixed callback progress when tracking an element.
    • useScroll: Fix hardware acceleration when tracking an element.
  28. Motion+patch2.11.3

    Fixed

    • AnimateNumber: Ensure values are updated when only§ suffix/prefix update.
  29. Motion AI Kitpatch5.4.3

    Added

    • Skills: Installer better supports OpenCode.
  30. Motionminor12.38.0

    Added

    • Added layoutAnchor prop to configure custom anchor point for resolving relative projection boxes.

    Fixed

    • Reorder: Fix axis switching after window resize.
    • Reorder: Fix with virtualised lists.
    • AnimatePresence: Ensure children are removed when exit animation matches current values.