Changelog

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

  1. Motionpatch14.11.1

    Changed

    • pinch: Snap points use velocity-based prediction to calculate rotation snap point.
    • pinch: Configure transform origin between element-relative origin and pointer center.
  2. Motionminor14.11.0

    Added

    • pinch: Multitouch pinch and rotate gestures.
  3. Motionpatch14.10.1

    Fixed

    • animate: Fix not recognising timeline of only nested sequences as timeline.
    • Various performance-related improvements.
  4. Motionminor14.10.0

    Added

    • press: count, hold and repeat, for double/triple press, long press and multipress gestures.
    • drag: Expose getProps on the dragConstraints function context.
    • drag: x/y props for headless gesture tracking.
    • Reorder: Home and End buttons move selected item to beginning and end of list, respectively.
    • motion: New tap prop for configuring press gesture.

    Fixed

    • animate: Minor fixes.
  5. Motionpatch14.9.1

    Added

    • Ensure accelerated transform animations finish correctly.
    • AnimatePresence: Fix exit never starting when a child mounts already exiting.
    • AnimatePresence: Fix exit stuck after an open layoutId card switches to another item.
    • Ensure accelerated animations are cleaned up in WebKit.
  6. Motionminor14.9.0

    Added

    • PresenceContext: Added internal keepValuesOnRemount option for internal use.
    • dragConstraints: Accepts function for internal use.
    • Reorder: Keyboard accessibility now focuses just the first item, arrows move focus, arrow keys work in relation to how items are presented on-screen.
  7. Motionminor14.8.0

    Added

    • transition: Added mixer option for passing custom mixer functions.

    Fixed

    • Only counts projection stats while recordStats() is running.
    • Fix accelerated animations stuck at initial after remount.
    • drag: 20% smaller.
    • m component: 6% smaller.
    • Keep timeline adjustments within timeline scope.
    • Reorder
  8. Motionpatch14.7.1

    Fixed

    • Demote transforms to CPU when interrupted by layout animations.
  9. Motionminor14.7.0

    Added

    • animate: Mutable timeline sequences.
    • animate: Relative label offsets for timeline sequences.
    • useScroll: Returns scrollXLength and scrollYLength.
    • Reorder: Add LazyMotion-compatible import.
    • motion: transition.out prop for transitions when exiting a state.

    Fixed

    • Fix one flash when changing playback speed of accelerated independent transform.
    • AnimatePresence: Improved positioning of popped elements.
    • spring: Fix overdamped springs snapping to target.
    • drag: Ref-constraints kept up-to-date after scroll.
    • motion: Animate layoutId elements relative to layoutRoot container.
    • motion: Bundle size reductions.
    • Moving background-color animations back to main thread for improved interpolation.
    • drag: Fix drag inertia stopping dead after a fast flick from a standstill.
    • layout: layoutId elements now animate relative to their closest layoutRoot ancestor, if any.
    • layout: layoutId may be changed after mount.
    • useScroll: Fix tracking in horizontal containers.
    • useSpring: Reduced bundle size by 30%.
  10. Motionminor14.6.0

    Added

    • Reorder: Grab-and-move keyboard reordering.
    • processFrame: Manually process the frameloop at t.
    • stepFrames: For tests, synchronously advance frameloop time by duration.

    Fixed

    • Improved tree-shaking.
    • motion: Fix layoutId elements jumping in some situations.
    • Reorder: Make auto-scroll speed independent of refresh rate.
    • drag: Fix animations when disabling drag from within onDrag.
    • Fix shared layout animations applying an element's own scale/x/y twice.
    • Fix replaying mount animation when an element takes over a layoutId.
    • motion: Fix updating SVG styles.
    • useTransform: Improving value resolution.
  11. Motionminor14.5.0

    Added

    • scopeMotion/useScopeMotion: Scope animations and gestures to set default transitions, specify root elements, match media, and easy cleanup.
    • Reorder: Pass moved to onReorder as second argument.

    Fixed

    • drag: With direction lock, apply the move that sets the lock. Before, a fast drag released in that frame didn't move.
    • press: Improve cleanup of keyboard accessibility events.
    • Reorder: Stop double-counting window scroll during drag.
    • motion: Ensure we animate from the latest props when parent Activity is made visible.
    • useInView: Observe ref if contents change after mount.
  12. Motion Studiominor2.2.0

    Added

    • Reduced motion mode.
  13. Motionminor14.4.0

    Added

    • drag: Drag gesture added to JavaScript API.
  14. Motionpatch14.3.1

    Fixed

    • AnimatePresence: Fire onExitComplete after exiting children unmount.
    • AnimatePresence: popLayout children that don't accept ref are now popped when root component is <motion> element.
    • Fix interpolation of axis rotate and skew transforms during shared layout animation.
    • Fix layout animations when layout is enabled after mount.
    • Fix drag jumping to 0 after animate x/y to CSS variable.
    • arc: Fix path animations with animate.
    • Ensure shared elements are freed from memory when unmounted.
    • Fix accelerated independent transform animations vanishing when they start from a float residue.
  15. Motionminor14.3.0

    Added

    • stagger: New grid, from: "edges" | "random" options.
    • Support for scaleZ.

    Fixed

    • Fix matrix3d and other digit-named transform functions being tokenised as numbers.
    • useSpring: Ensure when switching targets we animate to the new target on switch.
    • Fix SVG MotionValue children being written as a children attribute.
  16. Motionminor14.2.0

    Added

    • Hardware accelerated independent transforms like x, y, scaleX etc.
  17. Motionpatch14.1.1

    Fixed

    • Fix velocity hand-off for hardware-accelerated springs.
    • cubicBezier: More accurate, 2x faster.
    • Reorder: Fix click events on reoredered items.
    • useTransform: Fix desync when source is set in an effect under Strict Mode.
  18. Motion UIminor4.1.0

    Added

    • Gallery: Switching to grid, its cells fade in outward from the centre on the transition's delay, like transition={{ arrange: { delay: stagger(0.05) } }}.
    • Gallery: The detail strip's stagger takes stagger()'s from, so transition={{ close: { delay: stagger(0.04, { from: "last" }) } }} closes it from the outside in.

    Changed

    • Gallery: Opening detail fades the whole strip in as one staggered wave, both sides of the open item together.
    • Gallery: An item that changes places without flying there moves with its neighbours as it fades.

    Fixed

    • Gallery: Items gather behind the active one again when switching to grid.
    • Gallery: New options of the same arrangement, like a ring's rotateX, blend its camera as one piece again.
    • Gallery: Switching away from grid after paging no longer flies the previously active item off alone, or others in from where they were last drawn.
    • Gallery: Closing detail just after a change no longer flies the previously open item out of the strip.
  19. Motion UIpatch4.0.2

    Fixed

    • Gallery: Closing detail fades the whole strip out together. Thumbnails with no place in view to return to no longer linger.
    • Gallery: Paging on straight after switching to grid no longer hides the item paged to.
    • Gallery: Switching away from grid no longer resizes its items to the next arrangement's item size as they fade out.
  20. Motion UIpatch4.0.1

    Added

    • Gallery: rearrange option and shift() preset set the state an item fades in from when it changes places without flying there.
    • Gallery: rearrangeFrom option sets where the stagger starts as the detail strip opens or closes.
    • Gallery: gather option. Items collapse behind the active one when switching to grid.

    Fixed

    • Gallery: Items no longer fly across the view when loop or arrange changes. They fade out and in on the side they belong.
    • Gallery: Opening and closing detail fades the other items between the arrangement and the strip.
    • Gallery: The camera no longer swings between arrangements, so items entering the new one fade in where they belong.
  21. Motionminor14.1.0

    Added

    • animateLayout: Layout animations for vanilla JS.

    Fixed

    • Delay animation start when main thread held to prevent visual jumps.
    • Fix whileHover/whileTap getting stuck after Fast Refresh reorders siblings.
    • scroll/useScroll: Fix reporting of elastic overscroll.
    • AnimatePresence: Fix popLayout when rendering into another window or iframe.
    • animate: Fix JS animations jumping ahead when played after a pause at non-1 speed.
    • Allow layout animations inside dragged elements.
  22. Motion UImajor4.0.0

    Added

    • Gallery: 2D and 3D gallery animations with list and detail view.

    Changed

    • Requires motion@^14.1.0.
    • Improved tree shaking.

    Removed

    • animateLayout moved to motion.
  23. Motionmajor14.0.0

    Changed

    • Removed internal APIs restored in 13.5.1 for compatibility with framer-motion 13.0–13.4. Future removed internal APIs won't cause cross-compatibility issues since pinning internal framer-motion, motion-dom and motion-utils dependencies.
  24. Motionpatch13.5.1

    Changed

    • <motion>: Fall back to the attribute in readSVGValue when computed style is empty.
    • <motion>: Internal changes to animateChanges for size reductions.

    Fixed

    • scroll: Temporarily reverted removal of internal observeTimeline API to fix compatibility with previous 13.x APIs. Moving to pinned dependencies before removing in 14.x.
    • styleEffect: Cleaning up an earlier value no longer removes a value that was bound to the same key after it.
    • svgEffect: No longer writes transforms and origins as attributes.
    • <motion>: inherit={false} now correctly not inheriting parent animations.
    • <motion>: Fix sortNodePosition throwing when a sibling hasn't mounted
  25. Motionminor13.5.0

    Added

    • spring: Now accepts negative bounce (0--1) to define overdamped springs.

    Changed

    • <m>: 20% smaller.
    • useSpring: 10% smaller.
    • scroll/useScroll: Use main thread for all offset animations.

    Fixed

    • Ensure warning and error messages are cleaned from production build.
    • Ensure values are never rendered before they've been resolved.
  26. Motionpatch13.4.7

    Changed

    • scroll/useScroll: More offsets are now hardware accelerated via ViewTimeline.

    Fixed

    • animate: Reduced size of Motion Studio introspection call.
    • useTransform: Accelerated values now correctly clamp.
    • scroll/useScroll: Ensure offsets work the same across the JS main thread and ViewTimeline.
    • scroll/useScroll: Remove ScrollTimeline/ViewTimeline observer in favour of main-thread scroll tracking.
  27. Motionpatch13.4.6

    Fixed

    • AnimatePresence: mode="wait" no longer drops new children if exit completes during a React transition.
  28. Motion UImajor3.0.0

    Changed

    • Requires motion@^13.0.0.
    • motion is now a peer dependency of motion-plus and motion-plus-dom, so it must be explicitly installed alongside them.
  29. 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.
  30. Motion Studiominor2.1.0

    Added

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