ES6 version of tween.js
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples * docs(CODE_OF_CONDUCT): added Nov 24, 2017
logo * v3.6.0 Sep 7, 2017
performance v5.2.0 release Apr 11, 2018
src Fix big number Sep 19, 2018
.editorconfig v5.3.0 Jun 29, 2018
.gitignore fix log ignore Apr 11, 2018
.npmignore fix log ignore Apr 11, 2018
.travis.yml -commit: travis fix Sep 24, 2017 Add doc Jun 28, 2018 * code(core): removed circular `prev` and `next` access on `Tween` Nov 24, 2017 * First initial version Feb 27, 2017 # a lot of changes Sep 16, 2017
LICENSE minor patching Apr 11, 2018 minor patch Apr 11, 2018
jsdoc.json * feat(`gulp`): build script Jan 11, 2018
package.json v5.3.1 Sep 19, 2018
rollup.config.js v5.2.0 release Apr 11, 2018
test.js Fix big number Sep 19, 2018
yarn.lock Update yarn.lock Sep 19, 2018


ES6 implementation of tween.js

size gzipsize CDNJS jsdelivr unpkg npmcdn NPM Version NPM Downloads license Travis tests Flattr this

What is tween?

Inbetweening or tweening is a key process in all types of animation, including computer animation. It is the process of generating intermediate frames between two images, called key frames, to give the appearance that the first image evolves smoothly into the second image. Inbetweens are the drawings which create the illusion of motion.

What means this in Javascript

Implementing tween in Javascript always has been hardly, especially in 2009-2012years, but there have been much of leaders, one of these GreenSock Animation Platform, shifty, CollieJS, CreateJS TweenJS and our tween.js.
The @sole, @mrdoob and other contributors did the job amazing and worked hardly to make web better, interactive and live

It's not tween.js!

Yes, we just implemented tween.js in ES6 for easier, understandable syntax to ES6 users and it's not successful as tween.js, but our users anyway uses this, it's awesome

Why another one, there a lot of tweening library?

Yes, why another? Just we want to create library while keeping balance between feature-set/flexibility, performance and size. It's not hard, but not easy too. We work for users who users, who STARRED (Thank you, you're amazing)


  • GSAP
  • kute.js
  • tween.js
  • TweenJS
  • animejs
  • Velocity.js
  • Shifty
  • jsAnim
  • MooFX
  • and a lot of these

But these alternatives

not all of them does support the extend-ability and does not perform as well. Each of these has own Pros/Cons, we create own idea, create

  • Plug-in/Extend-ability powered tweening library
  • Performant, Memory, Power and CPU effecient
  • Lower file-size for better load-time, it makes app faster and performant, nothing can change this
TWEEN.autoPlay(true); // simplify the your code

let coords = { x: 0, y: 0 };
let tween = new TWEEN.Tween(coords)
	.to({ x: 100, y: 100 }, 1000)
	.on('update', ({x, y}) => {
		console.log(`The values is x: ${x} and y: ${y}`);


Starting at v3, we provide excluded plugins from core, so our core becomes lighter and faster. Here our plugins list



Download the library and include it in your code:

<script src="bundled/Tween.js"></script>

CDN-Hosted version

  • See cdnjs-hosted version for get which result you want

  • NOTE: @latest suffix sometimes saves life by loading latest, because sometimes CDN services will not load the latest

  • Now you can load from CDN

<!-- jsDelivr -->
<script src=""></script>

<!-- unpkg -->
<script src=""></script>

<!-- npmcdn -->
<script src=""></script>

More advanced users might want to...

Using import

import { Easing, Tween, autoPlay } from 'es6-tween'

Using getlibs

<script src=""></script>
<script type="x-module">
// ES6
import { Easing, Tween, autoPlay } from 'es6-tween'

// CommonJS
const { Tween, Easing, autoPlay } = require('es6-tween')

Using npm or yarn

$ yarn add es6-tween
# or
$ npm install es6-tween

Then include the Tween.js module with the standard node.js require:

const { Tween, Easing, autoPlay } = require('es6-tween');

And you can use Tween.js as in all other examples--for example:

const t = new Tween( /* etc */ );

You can run script commands to build modules into single UMD compatible file:

Using commands

$ yarn build # builds production files
# or
$ yarn dev # builds and watchs development files

Then reference the library source:

<script src="bundled/Tween.min.js"></script>


  • Tweens everything you give them, string, number, number of arrays, number of object, all-to, interpolators and much more. Endless possibilites
  • Can use CSS units (e.g. appending px)
  • Can interpolate colours
  • Easing functions are reusable outside of Tween
  • Can also use custom easing functions
  • Much of easings


All ES5 supported browsers including IE9+


  • Chrome
  • Firefox 3.5+
  • Opera 9.5+
  • IE8+
  • Safari 5.1+

OS (Fully working)

  • Android 4.1+
  • iOS6+
  • WP8.5+
  • OS X
  • Windows 7+


  • iPhone
  • iPad
  • Android devices
  • Nokia Lumia
  • Samsung devices
    • all devices should compatible with supported OS

Package managers

  • npm
  • yarn


  • Rollup


  • Babel


Compatiblity Testing

Thanks to BrowserStack for providing us testing in a real devices to make it cross-browser, bug-free and better. BrowserStack saved my countless hours, before i spent on testing much of time, now it's very easy. I recommend to others use this service. I sure, BrowserStack helps us to make it, so i am linking to BrowserStack as our sponsor. Browser Stack Logo


Demos with this version are not yet implemented, sorry.


$ yarn test

or you can go here for more information, tests and etc...

every time you want to run the tests.

If you want to add any feature or change existing features, you must run the tests to make sure you didn't break anything else. If you send a PR to add something new and it doesn't have tests, or the tests don't pass, the PR won't be accepted. See contributing for more information.


All contributors.

Thanks to:

  • es6-tween contributors
  • Rollup, Buble, Travis CI, BrowserStack, jsDoc, docdash theme, TypeScript and others (make issue, if i'm missed you) with their teams, devs and supporters

Projects using es6-tween

If you using our app and happy with this and share your app? Please make PR and we append to there your project