# What changed in animejs

> 52 changes in animejs 4 from its official release notes, upgrade guides and advisories: 7 breaking, 18 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/animejs/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## animejs 4

### Breaking changes

- Color animations blend RGB channels in pseudo-linear space for smoother, more even transitions; intermediate colors may differ from previous versions. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- The DevTools integration has been removed. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Direct animation of `matrix` is no longer supported; matrix values remain preserved when read from inline styles and can still be set using a transform string. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Direct animation of `matrix3d` is no longer supported; matrix values remain preserved when read from inline styles and can still be set using a transform string. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- The third argument to function-based value callbacks is now the targets array rather than the total target count; use `targets.length` to get the count. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- The third argument to the stagger callback is now the targets array instead of the total count; use `targets.length` to get the count. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Transforms now render in a fixed order—perspective, translate, rotate, scale, then skew—regardless of the order in animation parameters. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)

### New APIs and options

- Adds a built-in Three.js adapter for animating Object3D, materials, lights, cameras, audio nodes, UniformNode, and instanced meshes. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Adds an API for extending animate() and utils.set() to non-DOM targets. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- The axis parameter accepts 'z' for 3D grid origins. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- The from parameter accepts normalized [x, y, z] coordinates for 3D grid origins. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Auto-grid mode supports 3D layouts using x, y, and z coordinates or an explicit columns, rows, and depth triplet. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Adds a jitter parameter for adding a random offset to staggered values, as a single number or a [start, end] range. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Adds a seed parameter to make jitter and from: 'random' reproducible. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- The `addChild` helper is now exported from `utils`. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- The `forEachChildren` helper is now exported from `utils`. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- The stagger `from` parameter accepts normalized `[x, y]` coordinate arrays from 0 to 1 for precise grid origin control. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- `globals` is now exported from the main module entry point. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Adds an editor hook system for an external editor to intercept `animate()` and `createTimeline()` calls. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Adds `grid: true` auto-grid mode, which computes a 2D layout from element positions or JS object coordinates without requiring explicit dimensions. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- `createLayout()` now accepts an `id` parameter. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Function-based value callbacks receive a fourth argument with the previous sibling tween's computed end value for the same target and property. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Adds a parameter to control execution order within the engine tick loop for timers, animations, and timelines. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- The `removeChild` helper is now exported from `utils`. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Adds a function-based value for animating text with a character-by-character scramble and reveal effect. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)

### Performance

- engine.speed updates are faster because unnecessary work is skipped when the value does not change. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- engine.timeUnit updates are faster because unnecessary work is skipped when the value does not change. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Improves performance when building large timelines with many overlapping .add() calls on the same property and fixes a case where the timeline could cancel itself. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)

### Behavior and default changes

- The target type for `splitText()` and `TextSplitter` is widened from `HTMLElement` to `Element`. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Adjacent translate and scale axis properties are grouped into CSS shorthand forms, producing shorter transform strings. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)

### Fixes and other changes

- Fixes random flicker on alternate loops when duration values are non-integers. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Frame scheduling is more accurate and no longer drops frames arriving slightly early because of requestAnimationFrame jitter. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes implicit from values resolving to stale values when an overridden tween occurs earlier in the chain. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes a crash when a scroll container resizes before its target is ready. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes floating point precision producing incorrect intermediate values in keyframe arrays. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes backward scrubbing past the start of a keyframe sequence not restoring the first keyframe's from value. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes forward scrubbing past the end of a keyframe sequence leaving the target at a previous keyframe's value. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes sequential keyframes being detected as overlapping because of floating point drift, which could leave the target at the wrong value when scrubbing. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Function-based and CSS variable from values in { from, to } object form now re-resolve on refresh(). (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes random flicker between iterations of reversed loops. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes stretch() incorrectly scaling animations that use keyframes. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes backward seeking leaving a timeline child at its end value when all its properties share the same delay. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes a delayed timeline child overwriting a later sibling's value during a forward seek when its delay exceeds its duration. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixes stale values when seeking timelines whose children animate the same property through delayed tweens, especially with staggered jitter delays. (4.5.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.5.0)
- Fixed a regression where timeline call did not trigger properly in some cases. (4.4.1) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.1)
- `addEffect()` now returns `this` when the effect argument is not a function. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Accessing a non-existent chainable method now returns `undefined` instead of throwing an error. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Parsing now handles multi-argument CSS transform functions and nested `calc()` expressions. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Tracked animations reconstructed during effect refresh now preserve `_startTime`, preventing timing jumps. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Scroll-controlled layout animations now properly call `onComplete` and `onPause` callbacks. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- Chaining in keyframe arrays and timelines now produces the correct intermediate shapes. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
- `revert()` now restores object properties and DOM attributes to their original values as well as CSS styles and transforms. (4.4.0) — [release notes](https://github.com/juliangarnier/anime/releases/tag/v4.4.0)
