Changelog

Always in Motion. Follow the latest releases to Motion, Motion+ and Motion Studio.

Stay in the loop

Subscribe for the biggest news & updates.

Added

  • splitText: Added preserveHyphens option.

Added

  • Typewriter: Added cursorBlinkRepeat option for capping the number of times a cursor blinks after typing stops.

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.

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.

Fixed

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

Fixed

  • Ensure pen gesture is correctly cleaned up on drag cancel.

  • Fix edge case where DocumentProjectionNode's attached element was null.

Added

  • AnimatePresence: anchorY for vertically positioning popped children.

Fixed

  • Fixed path drawing animations in zoomed Safari contexts by switching to unitless values.

Fixed

  • Ensure drag gestures trigger from keyboard-accessible elements (button, textarea etc) if these elements have drag applied directly.

Fixed

  • Adding sourcemaps to motion-dom and motion-utils.

  • Fix Reorder autoscroll within scrollable pages.

  • Gracefully handle missing elements in animation sequences.

Fixed

  • Carousel: Removing pageTransition from generated types - use transition instead.

Motion+

Motion+

Level up your animations with Motion+

Unlock the full vault of 290+ Motion examples, premium APIs, private Discord and GitHub, and powerful VS Code animation editing tools.

One-time payment, lifetime updates.

Added

  • useFollowValue and followValue: useSpring-style motion values that can accept any transition.

Fixed

  • Fix "multiple keyframe" error when using spring animations as default transitions for animation sequences.

Fixed

  • Improving projection node cleanup.

Added

  • animateLayout: Vanilla layout animations.

Added

  • Adding new exports for internal use.

Changed

  • Extension: Added support for editing and saving delay and duration.

Fixed

  • Internal refactor of projection system into motion-dom.

Added

  • Support for multiple output value maps with useTransform.

Changed

  • MCP: Added documentation lookup to Codex.

Fixed

  • Improve overload selection for useTransform.

Added

  • Support for auto-scrolling when a Reorder.Item reaches the edges of its parent scrollable container.

Added

  • Carousel: Added page prop for controlling the current page via props.

Fixed

  • Draggable elements now track pointer during page and element scroll.

Fixed

  • Fixed time sampling of GPU animations under heavy CPU load.

Fixed

  • Fixing missing import from motion-dom.

Fixed

  • Fixing Radix Dialog with AnimatePresence.

  • Ensure drag constraints animation resumes after press interruption.

  • Prevent drag gesture from triggering when pressing focusable elements.

Fixed

  • Perform unit conversion when animating to/from calc() values.

Fixed

  • Ensure CSS Motion Path properties are applied via style on SVG elements.

  • Ensure JSX is correctly imported by Reorder.Item.

Added

  • UMD bundle now published via GitHub.

Fixed

  • Ensure useDragControls snapToCursor: true` works with initial transforms.

Fixed

  • Ensure onAnimationStart and onAnimationComplete callbacks fire for useSpring.

Motion is supported by the best in the industry.