v11.0.0-beta.1
- fix(core)!: stop firing onRest when an active animation is retargeted by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2467
- chore(deps): update pnpm to v11 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2458
- chore(deps): update dependency tsdown to v0.22.14 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2556
- chore(deps): update build-tooling by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2553
- chore(deps): update dependency esbuild to v0.28.2 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2554
- fix(shared): parse negative decimals without integer part in numberRegex (#2397) by @ErfanBagheri404 in https://github.com/pmndrs/react-spring/pull/2561
- fix(shared): match add/removeEventListener options in onScroll cleanup (#2384) by @ErfanBagheri404 in https://github.com/pmndrs/react-spring/pull/2560
- chore(demo): alias @react-spring/shared in vite config by @batistagui0510 in https://github.com/pmndrs/react-spring/pull/2564
- fix(core)!: notify observers when a SpringValue receives its first value by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2565
- chore(deps): update changesets by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2555
- fix(core)!: type per-key event-handler arguments for useSpring/useTransition by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2551
- fix(core): support TypeScript 7 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2566
- chore(deps): update changesets/action action to v2 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2571
- chore(deps): update oxc (oxfmt, oxlint) by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2569
- fix(deps): update dependency cookie to v2 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2567
- fix(deps): update docsearch to v5 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2568
- ci: remove the publish-ci example suite by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2572
- chore(deps): update dependency typescript to v7 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2570
- chore(deps): update pnpm to v12 and align Renovate with its release-age policy by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2573
- chore(deps): update dependencies by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2574
- ci: don't cache turbo pack so tarballs always exist by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2576
- fix(deps): update react to ^19.3.0 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2578
- chore(deps): update node.js to v24.21.0 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2577
- fix(core)!: apply immediate to every step of an async to by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2580
- fix(parallax)!: keep sticky layers in view when nested in components or wrappers by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2581
- fix(core)!: apply declared config and events to ref.start(props) by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2582
- chore(deps): update dependency fs-extra to v11.4.1 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2583
- chore(deps): update dependency turbo to v2.11.3 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2584
- fix(deps): update dependency @react-three/fiber to ~9.8.0 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2586
- chore(deps): update pnpm to v12.6.0 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2585
- feat(core): add usePresence and usePresenceList, deprecate useTransition by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2590
- chore(deps): update dependency vite to v8.3.1 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2592
- fix(types): infer animated values from array or ternary transition phases by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2593
- fix(rafz): stop springs ticking twice per frame after the loop goes idle by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2598
- fix(rafz): start delayed springs in an idle demand-mode Canvas by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2599
- fix(deps): update react-three by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2594
- chore(deps): update vitest to ^5.0.2 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2596
- chore(deps): lock file maintenance by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2597
- fix(deps): update dependency sass to v1.105.0 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2587
- chore(deps): update dependency remark-mdx-frontmatter to v6 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2588
- chore(deps): update dependency turbo to v2.11.5 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2595
- chore: version packages (beta) by @github-actions[bot] in https://github.com/pmndrs/react-spring/pull/2550
- @ErfanBagheri404 made their first contribution in https://github.com/pmndrs/react-spring/pull/2561
- @batistagui0510 made their first contribution in https://github.com/pmndrs/react-spring/pull/2564
Full Changelog: https://github.com/pmndrs/react-spring/compare/v11.0.0-beta.0...v11.0.0-beta.1
v11.0.0-beta.0
- test: expand public-API coverage across core, web and parallax by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2538
- refactor!: remove deprecated targets, native support, and the react-spring umbrella by @joshuaellis with @Copilot in https://github.com/pmndrs/react-spring/pull/2526
- refactor!: ship ESM-only builds by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2544
- fix(core): infer all animated keys when a partial
fromis provided by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2545 - chore(ci): move turbo caching to actions/cache via shared setup action by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2546
- fix(core): pass an AnimationResult to SpringValue onChange by @patrickwehbe in https://github.com/pmndrs/react-spring/pull/2548
- fix: cache output number parsing in createStringInterpolator by @literalpie in https://github.com/pmndrs/react-spring/pull/2547
- docs: correct changeset guidance in CONTRIBUTING by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2549
- chore: version packages (beta) by @github-actions[bot] in https://github.com/pmndrs/react-spring/pull/2543
- @joshuaellis with @Copilot made their first contribution in https://github.com/pmndrs/react-spring/pull/2526
- @patrickwehbe made their first contribution in https://github.com/pmndrs/react-spring/pull/2548
- @literalpie made their first contribution in https://github.com/pmndrs/react-spring/pull/2547
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.1.1...v11.0.0-beta.0
v10.1.2
- core:
PickAnimatednow infers all animated keys when a partialfromis provided. Previously afromprop collapsed the result type to just thefromshape, droppingtokeys, forward props, and the other transition phases — souseSpring({ width: 100, height: 100, from: { width: 0 } })madestyles.heighta compile error even thoughheightanimates at runtime. It now mergesfromwith theto, forward, and transition-phase values. (#2545) - core: The
SpringValue-levelonChangenow receives anAnimationResult({ value, finished: false, cancelled: false }) instead of the raw value, soresult.valueis no longerundefinedmid-animation. This matchesonStart/onRestand theController-levelonChange. The internalchangeevent the animated tree subscribes to still emits the raw value. (#2548) - animated: Fixed a
cannot add a new propertycrash when wrapping non-extensible React Native host components. On Hermes, host components likeView,Text, andImagebecome non-extensible after their first render, breaking the wrapper cache.createHostnow attempts the direct write first (fast path, unchanged for extensible components) and falls back to a module-levelWeakMapwhen the write is rejected. (#2535)
- shared: Improved string interpolation performance with large amounts of data by caching output number parsing in
createStringInterpolator. (#2547)
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.1.1...v10.1.2
v10.1.1
- fix(core): floor adaptive precision at float resolution to let springs settle on sub-precision drift by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2520
- chore(deps): update build-tooling by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2524
- chore(deps): update commitlint to v21.0.2 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2525
- fix(parallax): pin container to top-left to prevent double scrollbar by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2527
- docs(core): clarify null/undefined goals are skipped, not animated by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2528
- fix(shared): guard string interpolator against number-less output values by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2529
- test(parallax): pin #2052 sticky-layer-in-component regression by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2530
- test(core): cover declarative useSpring auto-start under StrictMode (#2361) by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2531
- fix(core): auto-start useTransition when props is a function (#2287) by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2532
- fix(three): drive demand-mode frameloop so looping animations don't freeze by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2536
- chore: version packages by @github-actions[bot] in https://github.com/pmndrs/react-spring/pull/2521
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.1.0...v10.1.1
v10.1.0
- test(types): restore TypeScript 5.9 to CI matrix by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2464
- test(types): restore TypeScript 6.0 to CI matrix by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2465
- test(core): write bodies for skipped and todo tests by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2466
- fix(shared): preserve decimal precision in string interpolator by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2469
- feat(docs): migrate from Remix 2 to React Router 7 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2468
- fix(core): stop superseded loop chains on re-render by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2471
- test(core): regression tests for issue #1638 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2504
- fix(core): expose new phase to useTransition render fn by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2507
- docs: clarify SpringValues typing vs CSSProperties by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2508
- test(core): regression test for issue #1661 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2509
- feat(core): add
reverseprop to useTransition by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2510 - docs(claude): refresh stale Node version notes by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2512
- refactor(build): migrate tsup → tsdown by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2513
- fix(core): fire onRest when animation is cancelled before its first frame by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2511
- fix(web): exact-match transform function names in style key regex by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2515
- fix(core): preserve velocity across retargets for decay animations by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2516
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.0.4...v10.1.0
v10.0.4
- chore: update readme by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2399
- fix: exitBeforeEnter in useTransition doesn't work when used with trail (#1868) by @hiebj in https://github.com/pmndrs/react-spring/pull/2407
- chore: absorb mock-raf by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2421
- chore: add speckit by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2422
- chore: move to use PNPM by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2423
- test: migrate to vitest browser by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2424
- chore(lint): replace eslint with oxlint by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2425
- chore(format): consolidate prettier configs by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2426
- chore(format): replace prettier with oxfmt by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2427
- chore: migrate husky hooks to v9 syntax by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2428
- fix: replace react-spring.io with react-spring.dev by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2429
- fix: events not firing when SpringRef attached manually under StrictMode by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2430
- chore(test): run hook tests under React.StrictMode by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2431
- fix(core): clear stale updates in useSprings layout effect by @gumob in https://github.com/pmndrs/react-spring/pull/2410
- fix(shared): report border-box dimensions from useResize by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2432
- chore(ci): upgrade node to 22 lts (test on 22 and 24) by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2433
- chore(deps): update actions/setup-node action to v6 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2412
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in https://github.com/pmndrs/react-spring/pull/2405
- chore: add release PR workflow and npm provenance by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2434
- chore(ci): trim redundant node matrix and adopt .nvmrc in tests workflow by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2437
- fix(core): phase-sync useTrail children on loop iterations by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2435
- fix(core): run async script
toto completion under skipAnimation by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2438 - chore(renovate): group deps by ecosystem and isolate majors by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2440
- fix(web): remove animated attributes when value is undefined by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2439
- chore: version packages by @github-actions[bot] in https://github.com/pmndrs/react-spring/pull/2449
- @hiebj made their first contribution in https://github.com/pmndrs/react-spring/pull/2407
- @gumob made their first contribution in https://github.com/pmndrs/react-spring/pull/2410
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.0.3...v10.0.4
v10.0.3
- Fix issue with Jest and legacy React apps using useTransition by @dimitris-tsetsonis in https://github.com/pmndrs/react-spring/pull/2394
- @dimitris-tsetsonis made their first contribution in https://github.com/pmndrs/react-spring/pull/2394
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.0.2...v10.0.3
v10.0.2
- fix: remove accessing elem.ref in renderTransitions by @robertjarske in https://github.com/pmndrs/react-spring/pull/2373
- Support immediate useResize by @LoganDark in https://github.com/pmndrs/react-spring/pull/2375
- @robertjarske made their first contribution in https://github.com/pmndrs/react-spring/pull/2373
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.0.1...v10.0.2
v10.0.1
- fix: spring does not start by @dagatsoin in https://github.com/pmndrs/react-spring/pull/2372
Full Changelog: https://github.com/pmndrs/react-spring/compare/v10.0.0...v10.0.1
v10.0.0
- chore(deps): update dependency concurrently to v9 by @renovate in https://github.com/pmndrs/react-spring/pull/2326
- chore: update TSUP to v8 by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2328
- chore(deps): update dependency chokidar to v4 by @renovate in https://github.com/pmndrs/react-spring/pull/2325
- chore(deps): update all non-major dependencies by @renovate in https://github.com/pmndrs/react-spring/pull/2274
- chore(ci): fix bad spelling of package name by @joshuaellis in https://github.com/pmndrs/react-spring/pull/2350
- chore(deps): update dependency vite-tsconfig-paths to v5 by @renovate in https://github.com/pmndrs/react-spring/pull/2338
- chore(deps): update dependency vite to v6 by @renovate in https://github.com/pmndrs/react-spring/pull/2337
- fix(deps): update all non-major dependencies by @renovate in https://github.com/pmndrs/react-spring/pull/2330
- Clarify what
immediatedoes by @jorisw in https://github.com/pmndrs/react-spring/pull/2357 - chore(deps): update dependency @vanilla-extract/vite-plugin to v5 by @renovate in https://github.com/pmndrs/react-spring/pull/2360
- feat!: react 19 support by @dagatsoin in https://github.com/pmndrs/react-spring/pull/2368
- chore(deps): update node.js to v22 by @renovate in https://github.com/pmndrs/react-spring/pull/2339
- chore(deps): update dependency cypress to v14 by @renovate in https://github.com/pmndrs/react-spring/pull/2367
- fix(deps): update dependency cookie to v1 by @renovate in https://github.com/pmndrs/react-spring/pull/2348
- @jorisw made their first contribution in https://github.com/pmndrs/react-spring/pull/2357
- @dagatsoin made their first contribution in https://github.com/pmndrs/react-spring/pull/2368
Full Changelog: https://github.com/pmndrs/react-spring/compare/v9.7.5...v10.0.0