unstale

npm / animejs

animejs

What changed in animejs 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

7 breaking18 new APIs and options3 performance2 behavior and defaults22 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

animejs 452 changes

Breaking changes 7

  • Color animations blend RGB channels in pseudo-linear space for smoother, more even transitions; intermediate colors may differ from previous versions.

    4.5.0release notes

  • The DevTools integration has been removed.

    4.4.0release notes

  • 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.0release notes

  • 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.0release notes

  • 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.0release notes

  • 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.0release notes

  • Transforms now render in a fixed order—perspective, translate, rotate, scale, then skew—regardless of the order in animation parameters.

    4.4.0release notes

New APIs and options 18

  • Adds a built-in Three.js adapter for animating Object3D, materials, lights, cameras, audio nodes, UniformNode, and instanced meshes.

    4.5.0release notes

  • Adds an API for extending animate() and utils.set() to non-DOM targets.

    4.5.0release notes

  • The axis parameter accepts 'z' for 3D grid origins.

    4.5.0release notes

  • The from parameter accepts normalized [x, y, z] coordinates for 3D grid origins.

    4.5.0release notes

  • Auto-grid mode supports 3D layouts using x, y, and z coordinates or an explicit columns, rows, and depth triplet.

    4.5.0release notes

  • Adds a jitter parameter for adding a random offset to staggered values, as a single number or a [start, end] range.

    4.5.0release notes

  • Adds a seed parameter to make jitter and from: 'random' reproducible.

    4.5.0release notes

  • The addChild helper is now exported from utils.

    4.4.0release notes

  • The forEachChildren helper is now exported from utils.

    4.4.0release notes

  • The stagger from parameter accepts normalized [x, y] coordinate arrays from 0 to 1 for precise grid origin control.

    4.4.0release notes

  • globals is now exported from the main module entry point.

    4.4.0release notes

  • Adds an editor hook system for an external editor to intercept animate() and createTimeline() calls.

    4.4.0release notes

  • Adds grid: true auto-grid mode, which computes a 2D layout from element positions or JS object coordinates without requiring explicit dimensions.

    4.4.0release notes

  • createLayout() now accepts an id parameter.

    4.4.0release notes

  • 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.0release notes

  • Adds a parameter to control execution order within the engine tick loop for timers, animations, and timelines.

    4.4.0release notes

  • The removeChild helper is now exported from utils.

    4.4.0release notes

  • Adds a function-based value for animating text with a character-by-character scramble and reveal effect.

    4.4.0release notes

Performance 3

  • engine.speed updates are faster because unnecessary work is skipped when the value does not change.

    4.5.0release notes

  • engine.timeUnit updates are faster because unnecessary work is skipped when the value does not change.

    4.5.0release notes

  • 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.0release notes

Behavior and default changes 2

  • The target type for splitText() and TextSplitter is widened from HTMLElement to Element.

    4.4.0release notes

  • Adjacent translate and scale axis properties are grouped into CSS shorthand forms, producing shorter transform strings.

    4.4.0release notes

Fixes and other changes 22

  • Fixes random flicker on alternate loops when duration values are non-integers.

    4.5.0release notes

  • Frame scheduling is more accurate and no longer drops frames arriving slightly early because of requestAnimationFrame jitter.

    4.5.0release notes

  • Fixes implicit from values resolving to stale values when an overridden tween occurs earlier in the chain.

    4.5.0release notes

  • Fixes a crash when a scroll container resizes before its target is ready.

    4.5.0release notes

  • Fixes floating point precision producing incorrect intermediate values in keyframe arrays.

    4.5.0release notes

  • Fixes backward scrubbing past the start of a keyframe sequence not restoring the first keyframe's from value.

    4.5.0release notes

  • Fixes forward scrubbing past the end of a keyframe sequence leaving the target at a previous keyframe's value.

    4.5.0release notes

  • 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.0release notes

  • Function-based and CSS variable from values in { from, to } object form now re-resolve on refresh().

    4.5.0release notes

  • Fixes random flicker between iterations of reversed loops.

    4.5.0release notes

  • Fixes stretch() incorrectly scaling animations that use keyframes.

    4.5.0release notes

  • Fixes backward seeking leaving a timeline child at its end value when all its properties share the same delay.

    4.5.0release notes

  • Fixes a delayed timeline child overwriting a later sibling's value during a forward seek when its delay exceeds its duration.

    4.5.0release notes

  • Fixes stale values when seeking timelines whose children animate the same property through delayed tweens, especially with staggered jitter delays.

    4.5.0release notes

  • Fixed a regression where timeline call did not trigger properly in some cases.

    4.4.1release notes

  • addEffect() now returns this when the effect argument is not a function.

    4.4.0release notes

  • Accessing a non-existent chainable method now returns undefined instead of throwing an error.

    4.4.0release notes

  • Parsing now handles multi-argument CSS transform functions and nested calc() expressions.

    4.4.0release notes

  • Tracked animations reconstructed during effect refresh now preserve _startTime, preventing timing jumps.

    4.4.0release notes

  • Scroll-controlled layout animations now properly call onComplete and onPause callbacks.

    4.4.0release notes

  • Chaining in keyframe arrays and timelines now produces the correct intermediate shapes.

    4.4.0release notes

  • revert() now restores object properties and DOM attributes to their original values as well as CSS styles and transforms.

    4.4.0release notes