Changelog
Source:NEWS.md
animejs 1.1.0
CRAN release: 2026-08-21
New features
-
anime_text()adds discrete text keyframes: a segment prop whose values are swapped into the target element’stextContentas the timeline advances, rather than tweened. It composes with ordinary tween props on the same segment and follows the play/pause and scrub controls. Useful for animated titles, counters, and tickers.
Bug fixes
An injected SVG that carries a
viewBoxbut nowidth/heightis now fitted to the widget’s width, with its height derived from the viewBox aspect ratio and the widget box grown to hold the drawing plus any controls bar. It no longer sizes itself from its intrinsic ratio and overflows, nor is it letterboxed inside a fixed box. SVGs with explicit dimensions are untouched.The controls bar stylesheet is now actually loaded. It had been declared in the widget YAML under the same dependency name htmlwidgets uses for the binding script, so the higher-versioned auto entry won the deduplication and the CSS was dropped once the package version rose above the hardcoded one.
The play / pause button and scrub bar are fully styled and reset, so they render consistently across browsers and no longer inherit a host page’s button or range-input styling. The filled part of the track is painted with a gradient rather than browser-specific progress pseudo-elements.
animejs 1.0.0
CRAN release: 2026-07-20
Breaking changes
The easing serialisation protocol now matches the Anime.js v4 API. Anime.js v4 removed the string syntax for cubic bezier, steps, and spring easings, so these are now serialised as structured payloads and reconstructed as
anime.cubicBezier(),anime.steps(), andanime.spring()calls in JavaScript. Spring parameters (previously silently ignored) now actually take effect.anime_on(),anime_playback(), andanime_render()now takexas the name of their first argument (previouslytimeline), since they also accept the newanime_animationobjects.anime_playback()arguments now default toNULL, meaning “leave the current setting unchanged”, instead of overwriting all playback settings on every call.anime_target_class()andanime_target_id()now require a single string;anime_target_class()rejects class names with a leading dot instead of silently producing a broken selector.animejs_widget()argumenttimeline_confighas been renamed toconfig.
New features
anime_animate()creates a single animation without a timeline, mirroring Anime.js v4’sanimate(). It works withanime_playback(),anime_on(), andanime_render().anime_easing_steps()gains afrom_startargument to jump at the start of each step (CSSjump-startbehaviour).anime_from_to()gains aneaseargument for per-property easing.anime_on()supports all seven Anime.js v4 callbacks, adding"onBeforeUpdate","onRender", and"onPause".anime_playback()gainsloop_delayandplayback_ratearguments.anime_stagger()gainsstartandreversedarguments.animejsOutput()andrenderAnimejs()provide Shiny bindings.
Bug fixes
All user-facing functions now validate their inputs and raise structured, informative error messages.
Parameterised elastic and back easings no longer trigger spurious browser console warnings.
Easing specifications inside keyframes (
anime_keyframes()) and staggers (anime_stagger(ease = )) are now serialised and resolved correctly; previously they were dropped by Anime.js.anime_from_to()no longer converts numeric values to strings whenunitisNULL.anime_playback(controls = TRUE)no longer overwritesonUpdateandonCompletecallbacks registered withanime_on(); the controls bar now chains them.