Changelog
Releases across Motion, Motion UI, Motion AI Kit, and Motion Studio.
Added
Gallery: Switching togrid, its cells fade in outward from the centre on the transition'sdelay, liketransition={{ arrange: { delay: stagger(0.05) } }}.Gallery: The detail strip's stagger takesstagger()'sfrom, sotransition={{ 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 togrid.Gallery: New options of the same arrangement, like a ring'srotateX, blend its camera as one piece again.Gallery: Switching away fromgridafter 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.
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 togridno longer hides the item paged to.Gallery: Switching away fromgridno longer resizes its items to the next arrangement's item size as they fade out.
Added
Gallery:rearrangeoption andshift()preset set the state an item fades in from when it changes places without flying there.Gallery:rearrangeFromoption sets where the stagger starts as the detail strip opens or closes.Gallery:gatheroption. Items collapse behind the active one when switching togrid.
Fixed
Gallery: Items no longer fly across the view whenlooporarrangechanges. 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.
Added
Gallery: 2D and 3D gallery animations with list and detail view.
Changed
- Requires
motion@^14.1.0. - Improved tree shaking.
Removed
animateLayoutmoved tomotion.
Changed
- Requires
motion@^13.0.0. motionis now a peer dependency ofmotion-plusandmotion-plus-dom, so it must be explicitly installed alongside them.
- Requires
Added
curtains/useCurtains: Cover/reveal page and element transitions.
Fixed
AnimateNumber: Ensure values are updated when only§suffix/prefixupdate.
Fixed
splitText: Ensure split text elements retain vertical positioning.Carousel: Fix focus from breaking item reprojection.
Fixed
Ticker: Improve accessibility attributes.Cursor: Fix when using with browser-native drag gestures.- Updating
reftype inference forTypewriter,TickerandScrambleText.
Added
Carousel: NewwheelSwipeThresholdprop configures the distance of wheel scroll before triggering a swipe.
Added
AnimateNumber:trendprop to control digit spin direction. -trend={1}: Digits always spin upward, wrapping 9 → 0. -trend={-1}: Digits always spin downward, wrapping 0 → 9. -trend={(oldValue, newValue) => number}: Function for custom logic. - Default (notrend): Auto-detects direction based on value change.
Changed
AnimateNumber: Now uses manual FLIP measurements instead of layout animations.
Added
useCarouselanduseTicker: Providesoffsetmotion value, which contains the unwrapped offset of aCarouselorTicker.
Added
AnimateView: View animations for React.
Changed
ScrambleText: Removingspan.
Fixed
scrambleText: Fixeddelayhandling.
Added
scrambleText: Now supports stringMotionValue.
Added
Typewriter:onChangecallback.
Fixed
ScrambleText: Switch fromuseEffecttouseLayoutEffect.
Fixed
scrambleTextandScrambleText: Defaultdurationis now1.
Added
scrambleTextandScrambleText: Added scramble text for vanilla JS and React.
Added
Typewriter: AddedcursorBlinkRepeatoption for capping the number of times a cursor blinks after typing stops.
Added
splitText: AddedpreserveHyphensoption.
Fixed
Carousel: RemovingpageTransitionfrom generated types - usetransitioninstead.
Added
animateLayout: Vanilla layout animations.
Added
Carousel: Addedpageprop for controlling the current page via props.
Added
- UMD bundle now published via GitHub.
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 withinCarouselandTicker, as well as item information likeitemIndex,cloneIndex, layoutstartandend.Ticker: AddedfadeandsafeMarginoptions.
Removed
useItemOffset. Replaceconst offset = useItemOffset()withconst { offset } = useTickerItem().
Added
Ticker: RTL support.
Changed
Typewriter: Adjusted natural typing variance calculations.