Changelog

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

Stay in the loop

Subscribe for the biggest news & updates.

Added

  • EasingCurve: React component for drawing a provided easing curve.

  • TransitionState: State for editing Motion transitions.

  • toCSSTransition: Convert TransitionState to a CSS transition string.

  • toMotionTransition: Convert TransitionState to a Motion Transition string.

  • fromShareURL: Create a TransitionState from the current URL.

  • toShareQueryString: Create a serialised TransitionState safe for adding to the URL.

Fixed

  • Carousel: Ensure only on-axis wheel scrolls prevent native browser scrolling.

Fixed

  • Carousel: Improved handling of pointer and wheel events in item gaps.

Added

  • Carousel: Create accessible, performant, infinitely-scrolling carousels.

  • useTickerItem: Access item-relative offset within Carousel and Ticker, as well as item information like itemIndex, cloneIndex, layout start and end.

  • Ticker: Added fade and safeMargin options.

Removed

  • useItemOffset. Replace const offset = useItemOffset() with const { offset } = useTickerItem().

Removed

  • Removing automatic MCP registration to support more editors.

Changed

  • Updating to Motion Studio branding.

Added

  • Ticker: RTL support.

Fixed

  • Ensure that when a component remounts, it continues to fire animations even when initial={false}.

Added

  • Exporting PresenceChild and PopChild type for internal use.

Added

  • Exporting HTMLElements and useComposedRefs type for internal use.

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.

Fixed

  • Suppress non-animatable value warning for instant animations.

Fixed

  • Fixing main-thread scroll with animations that contain delay.

Fixed

  • Remove support for changing ref prop.

Fixed

  • <motion /> components now support changing ref prop.

Fixed

  • Ensure animate() onComplete only fires once, when all values are complete.

Fixed

  • Fixing ref when passed to a child of AnimatePresence in "popLayout" mode.

Fixed

  • Fixing export * error in RSC.

Fixed

  • Fixing types of Reorder.Item and Reorder.Group so incorrect HTML props are correctly flagged.

  • Reverting rehydration of externalRef when it switches.

Fixed

  • Fixed issue where motion components don't update refs when externalRef changes. The useMotionRef function now properly includes externalRef in the dependency array to ensure ref callbacks update when the external ref changes.

Changed

  • Stopped tracking yarn cache in the repo.

Added

  • Allowing bezier editor SVG to overflow.

Added

  • Updating copy to remove reference to spring.

Added

  • Exporting internal APIs for use in view animations.

Added

  • Children of variants with delayChildren: stagger() will now be staggered correctly alongside their newly-entering siblings.

Fixed

  • Fixed shared layout animation in situations where no motion components have re-rendered between shared element switching.

Changed

  • Removing redundant renderRequest MotionValue lifecycle.

Fixed

  • Ensuring that when an animation is skipped via duration = 0 that we also set type = "keyframes" so that duration takes effect.

Fixed

  • springValue cleanup.

  • Removed additional removeNode from AnimatePresence when using popLayout.

Changed

  • Typewriter: Adjusted natural typing variance calculations.

Added

  • Typewriter

Added

  • Fixing build for views.

Motion is supported by the best in the industry.