Motion+
Motion / Changelog925 releases

Changelog

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

  1. 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.
  2. 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.
  3. Motionminor12.37.0

    Added

    • Support for hardware accelerating "start" and "end" offsets in scroll and useScroll.
    • Support for oklch, oklab, lab, lch, color, color-mix, light-dark color types.

    Fixed

    • Fix whileInView with client-side navigation.
    • Fix draggable elements when layout updates due to surrounding element re-renders.
    • Improved memory pressure of layout animations.
    • Ensure motion value returned from useSpring reports correct isAnimating().
  4. Motionminor12.36.0

    Added

    • Allow dragSnapToOrigin to accept "x" or "y" for per-axis snapping.
    • Added axis-locked layout animations with layout="x" and layout="y".
    • Added skipInitialAnimation to useSpring.

    Fixed

    • Fixed height and width: auto animations with box-sizing: border-box.
    • Reset component values when exit animation finishes.
    • Ensure anticipate easing returns 1 at p === 1.
    • Fix @emotion/is-prop-valid resolve error in Storybook.
    • Remove data-pop-layout-id from exiting elements when animation interrupted.
    • Ensure we skip WAAPI for non-animatable keyframes.
    • Ensure we skip WAAPI for SVG transforms.
    • Ensure MotionValue props are not passed to SVG.
    • AnimatePresence: Prevent mode="wait" elements from getting stuck when switched rapidly.
  5. Motionpatch12.35.2

    Fixed

    • Reduced filesize of styleEffect.
    • Fix rounding from popLayout.
    • opacity animations in React Strict Mode in development.
    • Ensure useSpring is not affected by monitor framerate.
    • Updating animations sequence segment types to exclude lifecycle handlers.
    • Fix layout animations with parents offset by a %-based translation.
    • Fix autoplay: false with WAAPI animations.
    • Fix layout jump in React Strict Mode in development.
    • Detect divide-by-zero in CSS calc() values before making animatable templates.
  6. Motionpatch12.35.1

    Fixed

    • Fixing combination of string keyframes, spring and delay.
    • Gracefully handle negative scroll values.
    • Fix one-frame visual gap when rapidly switching WAAPI animations.
    • animation.time = 0 on a finished animation sets the playhead in a paused state.
  7. Motionminor12.35.0

    Added

    • ViewTimeline support for scroll and useScroll.
  8. Motionpatch12.34.6

    Fixed

    • Handle % translate values in layout animations.
  9. Motionpatch12.34.5

    Fixed

    • Ensure final WAAPI styles are always committed synchronously to prevent flash of incorrect styles in Firefox.
    • Prevent Next.js from caching typeof window checks.
    • Improve projection node cleanup.
    • Variant propagation fixed for asynchronously-mounted children.
  10. Motionpatch12.34.4

    Fixed

    • Ensure onComplete fires at the end of an animation sequence.
  11. Motionpatch12.34.3

    Fixed

    • Ensure velocity is never transferred to a time-derived spring.
  12. Motionpatch12.34.2

    Fixed

    • Layout animations: Reset motion value velocity when starting a new layout animation.
  13. Motionpatch12.34.1

    Fixed

    • useScroll: Ensure animations aren't hardware accelerated when target is set.
    • Improve animatable "none" generation for mask values.
  14. Motionminor12.34.0

    Added

    • useScroll: Hardware accelerated animations.
  15. Motionpatch12.33.2

    Fixed

    • Improve detection of detached elements with vanilla layout animations.
  16. Motionpatch12.33.1

    Fixed

    • AnimatePresence: Ensure exiting nodes are correctly removed when rapidly switching children.
  17. Motionminor12.33.0

    Added

    • <motion />: New propagate.tap prop prevents tap gestures from propagating to parents.
  18. Motionminor12.32.0

    Added

    • transition.inherit: When true, inherit transition values from less-specific transitions.
  19. Motionpatch12.31.3

    Fixed

    • <motion />: Ensure animation state is reset after being re-suspended.
    • Prevent stale values when mixing transitionEnd and transition.type: false.
    • Drag: Fix "sticky" throw velocity on initial interaciton.
    • Drag: Ensure catching a thrown element kills its velocity.
  20. Motionpatch12.31.2

    Fixed

    • onHoverStart and onHoverEnd first argument now correctly typed as PointerEvent.
    • whileHover: No longer persists after drag end.
    • AnimatePresence: Allow changing mode prop.
  21. Motionpatch12.31.1

    Added

    • Drag constraints updated even when draggable or constraints resize outside of React renders.
  22. Motionminor12.31.0

    Added

    • animate: Support for bi-directional callbacks within animation sequences.

    Fixed

    • Ensure onPan never fires before onPanStart.
  23. Motionpatch12.30.1

    Fixed

    • Allow drag to be initiated by child a and button elements.
  24. Motionminor12.30.0

    Added

    • MotionConfig: Add skipAnimations option.

    Fixed

    • animate: Prevent error when calling stop() on removed elements.
    • animateLayout: Fixing shared element animations when animate called before animateLayout.
  25. Motionpatch12.29.3

    Fixed

    • Reorder: Fixed viewport autoscroll.
  26. Motionpatch12.29.2

    Fixed

    • Updates to layout animations.
  27. Motionpatch12.29.1

    Fixed

    • useAnimate: Now respects reduced motion settings set via MotionConfig.
  28. Motionminor12.29.0

    Added

    • transformViewBoxPoint: Scale drag gestures within <svg> elements where viewBox and rendered width/height are mismatched.
    • trackContentSize: New scroll and useScroll option for tracking changes to content size.

    Fixed

    • Add React 19 test suite to CI.
    • Fix types with motion.create().
    • Shared element animations now respect layoutDependency.
  29. Motionpatch12.28.2

    Added

    • Add default value type px for fontSize.

    Fixed

    • Removed default value type from radius.
    • Ensure LazyMotion animates initial state even when state has changed before Motion is loaded.
  30. Motionpatch12.28.1

    Fixed

    • Ensure scale: "0%" isn't treated as default value.