yarn react-native-reanimated 4.5.0
Reanimated - 4.5.0

8 hours ago

Key changes

More props supported by CSS Core Animation

Shadow (shadowColor, shadowOpacity, shadowRadius, shadowOffset), background, and border (backgroundColor, borderColor, borderWidth, borderRadius) CSS transitions now run on iOS Core Animation.

Using CSS Core Animation required enabling IOS_CSS_CORE_ANIMATION feature flag.

  • feat: Run shadow CSS transitions on Core Animation by @MatiPl01 in #9685
  • feat: Run background and border CSS transitions on Core Animation by @MatiPl01 in #9689

CSS Animations Pseudoselectors

CSS animations now support pseudo-selectors such as :hover, :active, and :focus, with native Apple and Android backends alongside a web implementation.

  • feat: pseudo-selectors web implementation by @wisniewskij in #9474
  • feat: CSS Pseudoselectors - android backend by wisniewskij in #9432
  • feat: CSS Pseudoselectors - apple backend by wisniewskij in #9297

CSS Animations web support for SVG

Animating react-native-svg components is now available on web.

  • feat: register remaining react-native-svg components for web CSS animations by MatiPl01 in (#9549)

SharedTransitionBoundary component

Introducing the <SharedTransitionBoundary> component, which scopes shared element transitions to a subtree so only matching elements within the boundary animate together. Useful for isolating shared transitions between screens that would otherwise interfere.

Other changes

  • fix: Pseudo selector type issues by @MatiPl01 in #9597
  • chore: Remove PlainStyle, tighten CSS style typing by @MatiPl01 in #9538
  • fix: build.gradle.kts not falling back to default ABIs by @tjzel in #9611
  • feat: pseudo-selector example screens by @wisniewskij in #9473
  • fix: ruby scripts leaking functions to global scope by @tjzel in #9617
  • fix: cleanup LA by @finloop in #9534
  • fix(pods): Fix invalid react-native/../react-native resolution for aliases by @kitten in #9592
  • fix: 30fps layout animations on iOS release builds by @bartlomiejbloniarz in #9616
  • fix: clang-tidy violations across native sources by @tjzel in #9630
  • Prefer resolved component ref for host lookup by @sorinc03 in #9589
  • fix(Reanimated): re-run mappers dirtied during a mapper run by @tomekzaw in #9644
  • Remove CMake version requirement by @piaskowyk in #9643
  • fix: re-add LightNode before starting exiting animation by @tomekzaw in #9646
  • fix: Resolve unused HERMES_V1_ENABLED CMake warning by @tomekzaw in #9645
  • Fix build error against React Native nightly caused by SAM conversion of CustomEventNamesResolver by @tomekzaw in #9659
  • fix(Reanimated): guard preserveMountedTags against resolveView throwing by @audrius-savickas in #9649
  • fix: prevent exiting views from getting stuck under heavy load on Android by @bartlomiejbloniarz in #9621
  • Don't resurrect layout animations cancelled before their start lambda ran by @bartlomiejbloniarz in #9660
  • feat: Enable default prop value in pseudoselectors by @wisniewskij in #9631
  • chore: Simplify CSS transition flow by @MatiPl01 in #9552
  • fix: Don't crash on iOS double reload when surface presenter has no scheduler by @tomekzaw in #9672
  • chore: bunch registration of pseudoselectors by @wisniewskij in #9684
  • fix: support legacy _viewConfig in animated host lookup for RN < 0.86 by @MatiPl01 in #9680
  • fix: macos-example RCTEventEmitter error and Xcode 26 build by @MatiPl01 in #9679
  • feat(Reanimated): initialize useHandler context lazily by @j-piasecki in #9334
  • chore: Remove dead SVG Polygon/Polyline web points conversion and label examples as not supported on web by @MatiPl01 in #9690
  • chore: Prepare platform-routed CSS transitions for more properties by @MatiPl01 in #9654
  • fix: Freezing animations after bump to RN 0.86.0-rc.3 by @wisniewskij in #9694
  • chore: Move platform-routed CSS property parsing into common by @MatiPl01 in #9696
  • fix: Compile CSS Core Animation platform props on macOS by @MatiPl01 in #9700
  • fix(Reanimated): jest environment detection by @tjzel in #9703
  • chore(Reanimated): update compatible worklets versions by @tjzel in #9699
  • fix(createAnimatedComponent): avoid false no-deprecated on bare reference by @patrickmichalik in #9663
  • fix: jsProps not animating on native by @MatiPl01 in #9707
  • docs(Reanimated): update getRelativeCoords example to the v4 Gesture API by @patrickwehbe in #9713
  • fix: CSS perspective interpolation NaN from the infinity default by @MatiPl01 in #9712
  • fix: Preserve builder subclass type through static animation modifiers by @MatiPl01 in #9710
  • chore: Tidy up CSS example app navigation and platform labels by @MatiPl01 in #9709
  • fix: Android crash on odd-length CSS strokeDasharray by @MatiPl01 in #9719
  • fix: flashing to default style when a CSS transition detaches on Android by @MatiPl01 in #9728
  • fix: Keep Android CSS :hover active while the pointer is over descendant views by @MatiPl01 in #9718
  • fix: share a single touch listener across press pseudo-selectors by @MatiPl01 in #9729
  • docs(Reanimated): fix deprecated babel plugin names and an escaped link by @patrickwehbe in #9714
  • fix: discovery example throwing on mount by @tjzel in #9733
  • fix(Reanimated): delay on synchronous event animation cancel by @tjzel in #9732
  • fix: Android ANR deadlock between CSS updates-registry lock and Fabric commit by @MatiPl01 in #9715
  • fix: Memory leak when unmounting views mid-animation by @MatiPl01 in #9711

New Contributors

Full Changelog: 4.4.1...4.5.0

Don't miss a new react-native-reanimated release

NewReleases is sending notifications on new releases.