Back to Explore

tweenjs/tween.js

GitHub
1 watchersOpen source

Last release:

tween.js is a JavaScript and TypeScript tweening animation engine for smoothly animating properties of an object over time. It includes reusable easing functions (and supports custom easing) and does not manage its own animation loop, making it useful for integrating into an existing render or update loop.

Project status

  • Maintenance status: Evidence suggests the source is no longer actively maintained, with the last upstream push on 2025-01-11, and the most recent documented updates (v25.0.0 to v23.1.3) from 2024-07-26. As of 2026-08-11, this indicates a quiet/dormant period.
  • Update cadence: Recent activity is clustered around late July 2024, followed by a long gap with no new updates shown after v25.0.0, plus only an upstream push in early 2025, implying low ongoing cadence.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v25.0.0

    v25.0.0 introduces a behavioral change around whether tweens implicitly start when `Tween.update()` is called, and it adjusts the `end()` implementation. The release notes document both the breaking auto-start default change and the fix to make `end()` advance to the correct end time.

    Breaking
  • v24.0.0

    v24.0.0 introduces a major behavior change around tween group membership: new tweens no longer auto-attach to any group, and tweens are no longer automatically added to or removed from groups when you call tween lifecycle methods. It also adds group-level utilities like Group.allStopped(), adjusts Group.update semantics, and changes how stopped tweens behave during update.

    BreakingFeatures
  • v23.1.3

    v23.1.3 is presented as a revert of a prior yoyo-related fix from v23.1.2 because it broke the yoyo demo. The release notes are brief and mainly frame this as a yoyo correction, pointing to PR #687, with no detailed behavioral changes described.

  • v23.1.2

    v23.1.2 focuses on fixing tween behavior around yoyo plus repeat timing, and it also updates Linear easing functions to be pure. The code changes primarily affect how Tween.update computes completion and when it processes repetitions, especially at exact repeat boundaries.

  • v23.1.1

    v23.1.1 is a small patch release that primarily fixes Tween behavior when duration is negative. The code also introduces a new public API, Tween.getDuration(), and updates built artifacts and the VERSION constant.

    Features
  • v23.0.0

    v23.0.0 focuses on fixing Tween repeat behavior when browser timers skip updates (for example when a tab sleeps), so tweens can resume and effectively “time travel” correctly. The release also updates onRepeat related test coverage and refreshes examples, alongside a documented breaking change removing support for negative .delay() values.

    Breaking
  • v22.0.0

    v22.0.0 bumps the package version and updates the CommonJS entry point build output. The functional runtime code appears unchanged, but the published CJS artifact path changed, which affects how consumers may import from deep/internal dist files.

    Breaking
  • v21.1.1

    v21.1.1 focuses on TypeScript usability by adjusting the package exports so TS can discover type definitions automatically. It also updates the README tutorial link. The code diff further shows several repo and example/tooling changes that are not mentioned in the release notes.

  • v21.0.0

    v21.0.0 primarily bumps the package version and adds a package.json exports map, improving ESM tool compatibility. Most of the other diff content is documentation, examples, and CI/workflow updates rather than library code behavior changes.

    BreakingFeatures
  • v20.0.0

    v20.0.0 changes how Tween targets are handled by introducing a new dynamic mode flag and making dynamic-to disabled by default. It also enforces that calling Tween.to() after a tween is started (including when paused) throws an error, and includes updates to tests and examples (notably video_and_time).

    BreakingFeatures