Lightweight JavaScript (ES6) tweening engine

Overview

Lightweight JavaScript (ES6) tweening library.

NPM

EXAMPLES

DOCUMENTATION

Purpose

Make tweening usage convenient and powerful. There are certain things that we were following while developed this library, we wanted to make it:

  • Lightweight ❄️ JS Tweening library.

The library is only 9.08 Kb (3Kb gzip)

  • Performant JS Tweening library.

It uses optimization patterns to speed up & smooth animation.

  • Modern 💎 JS Tweening library

The library is written in ES6, compiled to ES5 for global browsers support and provides ES6 API.

Install

With npm

$ npm install between.js

Or fetch from CDN

<script src="https://rawgit.com/sasha240100/between.js/master/build/between.js"></script>

Basic usage

Module

import Between from 'between.js';

// new Between(from, to).time(duration)
new Between(1, 10).time(1000)
  .on('update', (value) => { // This callback is executed in every frame
      console.log(value);
  });

Or in HTML:

<script src="./path/to/between.js"></script>
<script>
  new Between(1, 10).time(1000)
    .on('update', (value) => {
        console.log(value);
    });
</script>

API

// Constructor
new Between(
 [Number|Object|Array] from, 
 [Number|Object|Array] to
)

// Methods
  .time([Number] duration) // Set duration
  .loop([String] mode, [?Number] repeatTimes) // Set loop mode, if "repeatTimes" is falsy, treats as "endless"
  .easing([Function] easing) // Set easing function
  .on([String] eventName, [Function] callback) // Add event listener
  .pause() // Pauses
  .play() // Resumes

// Getters
  .isPaused // returns true if paused

There is no need to "start" the tween. It is executed immediately once it was created.

Events

import Between from 'between.js';

new Between(1, 10).time(1000)
  .on('update', (value) => {
      console.log(value); 
  })
  .on('start', (value) => {
      console.log(value);
  })
  .on('pause', (value) => {
      console.log(value); 
  })
  .on('play', (value) => {
      console.log(value);
  })
  .on('complete', (value) => {
      console.log(value);
  });

Different values

  • Numbers
  • Arrays
  • Objects

Numbers

import Between from 'between.js';

new Between(1, 10).time(1000)
  .on('update', (value) => {
      console.log(value);
  });

Example

Arrays

import Between from 'between.js';

new Between([1, 5], [10, 10]).time(1000)
  .on('update', (value) => {
      console.log(value);
   });

Example

Objects

import Between from 'between.js';

new Between({x: 2, y: 3, z: 4}, {x: 4, y: 6, z: 10}).time(1000)
  .on('update', (value) => {
      console.log(value);
  });

Example

Looping

Repeat N times

import Between from 'between.js';

new Between(1, 10).time(4000)
  .loop('repeat', N)
  .on('update', (value, {times}) => {
      console.log(value);
      console.log(times);
  });

Example

Repeat endless

import Between from 'between.js';

new Between(1, 10).time(4000)
  .loop('repeat')
  .on('update', (value) => {
      console.log(value);
  });

Example

Bounce N times

import Between from 'between.js';

new Between(1, 10).time(4000)
  .loop('bounce', N)
  .on('update', (value, {times}) => {
      console.log(value);
      console.log(times);
  });

Example

Easing

import Between from 'between.js';
import Easing from 'easing-functions';

// choose easing mode frome easing-functions

new Between(1, 10).time(4000)
  .easing(Between.Easing.Cubic.InOut)
  .on('update', (value) => {
      console.log(value);
  });

Example

easing-functions npm

Color

Color types:

  • HEX
  • HSL
  • RGB
  • Words (red, yellow...)
import Between from 'between.js';
import ColorPlugin from 'between.js/build/dom-color.between.js';

Between._plugins.color = ColorPlugin;

new Between('red', 'rgb(255,40,30)').time(4000)
  .on('update', (value) => {
      console.log(value);
  });

Example

Or in HTML:

<script src="./path/to/between.js"></script>
<script src="./path/to/dom-color.between.js"></script>

Mixed examples

import Between from 'between.js';
import Easing from 'easing-functions';
import ColorPlugin from 'between.js/build/dom-color.between.js';

Between._plugins.color = ColorPlugin;

// choose easing mode frome easing-functions

new Between('red', 'rgb(255,40,30)').time(4000)
  .loop('repeat', 3)
  .easing(Between.Easing.Linear)
  .on('update', (value) => {
      console.log(value);
  });
import Between from 'between.js';
import Easing from 'easing-functions';

// choose easing mode frome easing-functions

new Between(1, 10).time(4000)
  .loop('bounce', 3)
  .easing(Between.Easing.Cubic.InOut)
  .on('update', (value) => {
      console.log(value);
  });
import Between from 'between.js';
import Easing from 'easing-functions';

// choose easing mode frome easing-functions

new Between(1, 10).time(4000)
  .loop('repeat', 4)
  .easing(Between.Easing.Elastic.In)
  .on('update', (value) => {
      console.log(value);
  })
  .on('complete', (value) => {
      console.log(value);
  });
Comments
  • Infinitely emiting both 'update' and 'complete' events

    Infinitely emiting both 'update' and 'complete' events

    If you take the example code and run it with @0.1.1 you can see it's infinitely emiting both update and complete events.

    Perhaps there's a if (this[SYMBOL_COMPLETED]) return; missing.

    At first I wanted to PR a test to ensure that a Between instance that should run once would only emit the complete once and would not emit update afterwards, but was unsuccessful in running the tests locally. Would appreciate some help with that as well.

    Thanks

    bug 
    opened by panstav 3
  • PR for #28 - Typings

    PR for #28 - Typings

    Adds type definitions for the offered API, also define types for the supported emitted Events and some functions from easing-functions - Also adds some tslint config #28

    opened by hirako2000 3
  • Improve code readability in examples

    Improve code readability in examples

    There's two issues in the examples that stick out notably:

    • Code pane is small
    • Code itself is written in a compact style

    Taking for example the following code:

    const element = document.querySelector('#move');
    const state = document.querySelector('[data-state]');
    
    window.onload = () => setTimeout(() => { // Wait for page loading
      new Between({x: 0, y: 0, r: 0}, {x: 400, y: 30, r: 90})
        .time(2000)
        .easing(Between.Easing.Cubic.In)
        .on('update', v => {
          element.style.transform = `translate(${v.x}px, ${v.y}px) rotate(${v.r}deg)`;
        }).on('start', () => {
          state.innerText = 'state: running';
        }).on('complete', () => {
          state.innerText = 'state: complete';
        });
    }, 2000);
    

    An improvement could be:

    // You can pass in any object with numbers to tween
    const from = { x: 0, y: 0, rotation: 0 };
    const to = { x: 400, y: 30, rotation: 90 };
    
    function createAnimation() {
      new Between(from, to)
        .time(2000)
        .easing(Between.Easing.Cubic.In)
        .on('update', updateElementTransform)
        .on('start', onStarted)
        .on('complete', onComplete);
    }
    
    function updateElementTransform(value) {
      // `value` is same object as from/to but with new values
      const { x, y, rotation } = value;
      element.style.transform = `translate(${x}px, ${y}px) rotate(${rotation}deg)`;
    }
    
    function onStarted() {
      state.innerText = 'state: running';
    }
    
    function onComplete() {
      state.innerText = 'state: complete';
    }
    
    // Get the elements for our visual example and the state indicator
    const element = document.querySelector('#move');
    const state = document.querySelector('[data-state]');
    
    // Create the animation in 2 seconds, after the page is fully loaded
    window.onload = () => setTimeout(createAnimation, 2000);
    

    Goal is to offload details at the end where possible.

    It should introduce how to work with the API as succinctly as possible.

    Using full function syntax allows them to be named and be recognisable. Arrow functions can be really great but experts are often tempted into using them in documentation, which can be hard on beginners to the library.

    I introduce these new object values early on (as it is the object example) and the API for Between. It should be easier to see at an overview now.

    I use destructuring because it is actually kinda really handy way to set expectations in code and add transparency to contents of an object being passed around.


    Using same approach as above, could be used across the examples perhaps?

    opened by Martin-Pitt 3
  • Removed flattering purposes

    Removed flattering purposes

    Hi. I do not want to be rude, but you're writing that your library is "the most %smth%" but in fact it isn't. I know at least 4 libraries that are smaller than your one.

    tweenjs    ¦  2.9 KB
    tweeno     ¦  2.8 KB
    anim       ¦  1.1 KB
    nanotween  ¦  1 KB
    

    I also don't see any performance tests to prove the status of "the most performant" library.
    Please don't confuse people with the fake info

    opened by Kelin2025 2
  • Problems with color plugin

    Problems with color plugin

    First I thought it was only a matter of having reqiure('between') instead of require('./between') or require('between.js') at the between.js/build/dom-color.between.js file, but then I stumbled upon this less obvious error: Uncaught TypeError: r.indexOf is not a function at Object.test

    A CodePen showing this error

    opened by panstav 1
  • Add typings definition for TS consumers

    Add typings definition for TS consumers

    The lib offers a relatively simple API, but would be nice to have typing definitions. It will make it easier to pass the right params with autocomplete and have errors shown if typos or misuses are made.

    image

    opened by hirako2000 1
  • Can't run npm start

    Can't run npm start

    Getting an error. tried with node v6 and node v9

    $ npm run start
    
    > [email protected] start ~/dev/between.js
    > cross-env NODE_ENV=development gulp scss:watch & rollup -c -w
    
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! [email protected] start: `cross-env NODE_ENV=development gulp scss:watch & rollup -c -w`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the [email protected] start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!    ../_logs/2018-08-04T06_29_51_428Z-debug.log
    $ [13:29:51] Requiring external module @babel/register
    [13:29:51] Using gulpfile ~/dev/between.js/gulpfile.babel.js
    [13:29:51] Starting 'scss:watch'...
    [13:29:51] Finished 'scss:watch' after 15 ms
    
    opened by hirako2000 1
  • Object values support

    Object values support

    Concept:

    between(
      {x: 2, y: 3, z: 4},  // from
      {x: 4, y: 6, z: 10}  // to
    ).time(1000).on('update', (value) => {
      // ...
    }).on('complete', () => {
      // ...
    })
    
    enhancement help wanted 
    opened by sasha240100 1
  • Demo

    Demo

    You really should use a monospace font (Roboto Mono) for your demos - it will keep the loop counters (and other secondary elements) from jumping around.

    opened by manattweb 0
  • DOM color tweening

    DOM color tweening

    Concept:

    const element = document.querySelector('span');
    
    new Between(element.style.color, 'rgb(255, 0, 0)').time(1000);
    // new Between('rgb(0, 0, 0)', 'rgb(255, 0, 0)').time(1000);
    

    Requirements

    • Support multiple color formats
      • rgb
      • rgba
      • hsl
      • hex: #dddddd
      • color name (in ex. white, blue)
    • Should define input type as "color".
    • Should not break existing API.
    • Should tween between multiple color formats
    • Should support alpha-channel

    Middleware explanation

    All the middleware should be stored in Between._middleware ("_" stands for a "private" meaning of middleware, that shouldn't be accessed by consumer).

    Therefore, DOM color tweening middleware should be applied this way: Between._middleware.color - that should be an object that consists of such properties as:

    {
      typeName, // String, in the following is a "color"
      test(startValue [Any]), // Function, returns boolean (whether 
      initialize(startValue [Any], destValue [Any]), // Function, should be optional and return an object in format {startValue, destValue}
      interpolate(startValue [Any], destValue [Any], progress [Integer]), // Function, works similarly to "lerp". Accepts 
    }
    
    opened by sasha240100 0
  • Create loop mode

    Create loop mode

    Concept:

    // 1 -> 10 (1000ms)
    new Between(1, 10).time(1000).loop('once'); // default
    
    // 1 -> 10 (1000ms), 1 -> 10 (1000ms), ... (10 times)
    new Between(1, 10).time(1000).loop('repeat', 10);
    
    // 1 -> 10 (1000ms), 1 -> 10 (1000ms), 1 -> 10 (1000ms), ...
    new Between(1, 10).time(1000).loop('repeat');
    
    // 1 -> 10 (1000ms), 10 -> 1 (1000ms)
    new Between(1, 10).time(1000).loop('bounce');
    
    // 1 -> 10 (1000ms), 10 -> 1 (1000ms), 1 -> 10 (1000ms), 10 -> 1 (1000ms), ... (5 times)
    new Between(1, 10).time(1000).loop('bounce', 5);
    
    opened by alexko30 0
  • Bump qs from 6.3.2 to 6.3.3

    Bump qs from 6.3.2 to 6.3.3

    Bumps qs from 6.3.2 to 6.3.3.

    Changelog

    Sourced from qs's changelog.

    6.3.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] Clean up license text so it’s properly detected as BSD-3-Clause
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] use safer-buffer instead of Buffer constructor
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • ff235b4 v6.3.3
    • 4310742 [Fix] parse: ignore __proto__ keys (#428)
    • da1eee0 [Dev Deps] backport from main
    • 2c103b6 [actions] backport actions from main
    • aa4580e [Robustness] stringify: avoid relying on a global undefined (#427)
    • f8510a1 [meta] fix README.md (#399)
    • 4c036ce [Fix] fix for an impossible situation: when the formatter is called with a no...
    • 180bfa5 [meta] Clean up license text so it’s properly detected as BSD-3-Clause
    • e0b2c4b [Tests] use safer-buffer instead of Buffer constructor
    • f7139bf [Fix] utils.merge: avoid a crash with a null target and an array source
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump minimatch and gulp

    Bump minimatch and gulp

    Bumps minimatch to 3.0.4 and updates ancestor dependency gulp. These dependencies need to be updated together.

    Updates minimatch from 0.2.14 to 3.0.4

    Commits
    Maintainer changes

    This version was pushed to npm by isaacs, a new releaser for minimatch since your current version.


    Updates gulp from 3.9.1 to 4.0.2

    Release notes

    Sourced from gulp's releases.

    v4.0.2

    Fix

    Docs

    • Add notes about esm support (4091bd3) - Closes #2278
    • Fix the Negative Globs section & examples (3c66d95) - Closes #2297
    • Remove next tag from recipes (1693a11) - Closes #2277
    • Add default task wrappers to Watching Files examples to make runnable (d916276) - Closes #2322
    • Fix syntax error in lastRun API docs (ea52a92) - Closes #2315
    • Fix typo in Explaining Globs (5d81f42) - Closes #2326

    Build

    • Add node 12 to Travis & Azure (b4b5a68)

    v4.0.1

    Fix

    Docs

    • Fix error in ES2015 usage example (a4e8d48) - Closes #2099 #2100
    • Add temporary notice for 4.0.0 vs 3.9.1 documentation (126423a) - Closes #2121
    • Improve recipe for empty glob array (45830cf) - Closes #2122
    • Reword standard to default (b065a13)
    • Fix recipe typo (86acdea) - Closes #2156
    • Add front-matter to each file (d693e49) - Closes #2109
    • Rename "Getting Started" to "Quick Start" & update it (6a0fa00)
    • Add "Creating Tasks" documentation (21b6962)
    • Add "JavaScript and Gulpfiles" documentation (31adf07)
    • Add "Working with Files" documentation (50fafc6)
    • Add "Async Completion" documentation (ad8b568)
    • Add "Explaining Globs" documentation (f8cafa0)
    • Add "Using Plugins" documentation (233c3f9)
    • Add "Watching Files" documentation (f3f2d9f)
    • Add Table of Contents to "Getting Started" directory (a43caf2)
    • Improve & fix parts of Getting Started (84b0234)
    • Create and link-to a "docs missing" page for LINK_NEEDED references (2bd75d0)
    • Redirect users to new Getting Started guides (53e9727)
    • Temporarily reference gulp@next in Quick Start (2cecf1e)
    • Fixed a capitalization typo in a heading (3d051d8) - Closes #2242
    • Use h2 headers within Quick Start documentation (921312c) - Closes #2241
    • Fix for nested directories references (4c2b9a7)
    • Add some more cleanup for Docusaurus (6a8fd8f)
    • Temporarily point LINK_NEEDED references to documentation-missing.md (df7cdcb)
    • API documentation improvements based on feedback (0a68710)

    ... (truncated)

    Changelog

    Sourced from gulp's changelog.

    gulp changelog

    4.0.0

    Task system changes

    • replaced 3.x task system (orchestrator) with new task system (bach)
      • removed gulp.reset
      • removed 3 argument syntax for gulp.task
      • gulp.task should only be used when you will call the task with the CLI
      • added gulp.series and gulp.parallel methods for composing tasks. Everything must use these now.
      • added single argument syntax for gulp.task which allows a named function to be used as the name of the task and task function.
      • added gulp.tree method for retrieving the task tree. Pass { deep: true } for an archy compatible node list.
      • added gulp.registry for setting custom registries.

    CLI changes

    • split CLI out into a module if you want to save bandwidth/disk space. you can install the gulp CLI using either npm install gulp -g or npm install gulp-cli -g, where gulp-cli is the smaller one (no module code included)
    • add --tasks-json flag to CLI to dump the whole tree out for other tools to consume
    • added --verify flag to check the dependencies in package.json against the plugin blacklist.

    vinyl/vinyl-fs changes

    • added gulp.symlink which functions exactly like gulp.dest, but symlinks instead.
    • added dirMode param to gulp.dest and gulp.symlink which allows better control over the mode of the destination folder that is created.
    • globs passed to gulp.src will be evaluated in order, which means this is possible gulp.src(['*.js', '!b*.js', 'bad.js']) (exclude every JS file that starts with a b except bad.js)
    • performance for gulp.src has improved massively
      • gulp.src(['**/*', '!b.js']) will no longer eat CPU since negations happen during walking now
    • added since option to gulp.src which lets you only match files that have been modified since a certain date (for incremental builds)
    • fixed gulp.src not following symlinks
    • added overwrite option to gulp.dest which allows you to enable or disable overwriting of existing files
    Commits
    • 069350a Release: 4.0.2
    • b4b5a68 Build: Add node 12 to Travis & Azure
    • 5667666 Fix: Bind src/dest/symlink to the gulp instance to support esm exports (ref s...
    • 4091bd3 Docs: Add notes about esm support (closes #2278)
    • 3c66d95 Docs: Fix the Negative Globs section & examples (closes #2297)
    • 1693a11 Docs: Remove next tag from recipes (closes #2277)
    • d916276 Docs: Add default task wrappers to Watching Files examples to make runnable (...
    • ea52a92 Docs: Fix syntax error in lastRun API docs (closes #2315)
    • 5d81f42 Docs: Fix typo in Explaining Globs (#2326)
    • ea3bba4 Release: 4.0.1
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Can't import from CDN

    Can't import from CDN

    Thanks for this library. I like it better than the more popular ones.

    It would be nice if I could import it inside a <script type=module> tag without a bundler. Right now, when I try

    import Between from 'https://rawgit.com/sasha240100/between.js/master/build/between.js'
    

    it fails because there's no default module, and when I try something like

    import * as Between from 'https://rawgit.com/sasha240100/between.js/master/build/between.js'
    

    I get t is undefined. Can you release a build that's been updated to work with this syntax?

    opened by plurry 0
  • Bump codecov from 3.0.2 to 3.8.3

    Bump codecov from 3.0.2 to 3.8.3

    Bumps codecov from 3.0.2 to 3.8.3.

    Release notes

    Sourced from codecov's releases.

    v3.8.3

    Fixes

    • #329 fix: Test if response has two lines

    Dependencies

    • #306 Bump eslint-config-prettier from 7.2.0 to 8.3.0
    • #305 Bump eslint from 7.21.0 to 7.25.0
    • #302 Bump mock-fs from 4.13.0 to 4.14.0
    • #308 Bump lodash from 4.17.19 to 4.17.21
    • #309 Bump ignore-walk from 3.0.3 to 3.0.4
    • #310 Bump hosted-git-info from 2.8.8 to 2.8.9
    • #325 Bump prettier from 2.2.1 to 2.3.2
    • #326 Bump actions/setup-node from 2.1.5 to 2.2.0
    • #328 Bump lint-staged from 10.5.4 to 11.0.1
    • #330 Bump eslint from 7.25.0 to 7.31.0
    • #331 Bump ws from 7.3.1 to 7.5.3
    • #332 Bump urlgrey from 0.4.4 to 1.0.0
    • #334 Bump husky from 6.0.0 to 7.0.1
    • #333 Bump teeny-request from 7.0.1 to 7.1.1

    v3.8.2

    3.8.2

    Fixes

    • #304 Add coverage-final.json as a possible coverage file during file lookup

    v3.8.1

    Fixes

    • #246 Revert "Bump teeny-request from 6.0.1 to 7.0.0"

    v3.8.0

    Features

    • #160 Add Github Actions support

    Fixes

    • #173 Fix broken gcov command
    • #195 Update Node testing versions
    • #200 Remove flaky tests
    • #204 Create CHANGELOG and remove flaky v4 test
    • #208 Add license scan report and status
    • #220 Remove errant bitly

    Dependencies

    • #189 Bump lint-staged from 10.0.7 to 10.2.11
    • #190 [Security] Bump handlebars from 4.5.3 to 4.7.6
    • #191 Bump prettier from 1.19.1 to 2.0.5
    • #192 Bump mock-fs from 4.10.4 to 4.12.0
    • #196 Bump teeny-request from 6.0.1 to 7.0.0

    ... (truncated)

    Changelog

    Sourced from codecov's changelog.

    3.8.3

    Fixes

    • #329 fix: Test if response has two lines

    Dependencies

    • #306 Bump eslint-config-prettier from 7.2.0 to 8.3.0
    • #305 Bump eslint from 7.21.0 to 7.25.0
    • #302 Bump mock-fs from 4.13.0 to 4.14.0
    • #308 Bump lodash from 4.17.19 to 4.17.21
    • #309 Bump ignore-walk from 3.0.3 to 3.0.4
    • #310 Bump hosted-git-info from 2.8.8 to 2.8.9
    • #325 Bump prettier from 2.2.1 to 2.3.2
    • #326 Bump actions/setup-node from 2.1.5 to 2.2.0
    • #328 Bump lint-staged from 10.5.4 to 11.0.1
    • #330 Bump eslint from 7.25.0 to 7.31.0
    • #331 Bump ws from 7.3.1 to 7.5.3
    • #332 Bump urlgrey from 0.4.4 to 1.0.0
    • #334 Bump husky from 6.0.0 to 7.0.1
    • #333 Bump teeny-request from 7.0.1 to 7.1.1

    3.8.2

    Fixes

    • #304 Add coverage-final.json as a possible coverage file during file lookup

    3.8.1

    Fixes

    • #246 Revert "Bump teeny-request from 6.0.1 to 7.0.0"

    3.8.0

    Features

    • #160 Add Github Actions support

    Fixes

    • #173 Fix broken gcov command
    • #195 Update Node testing versions
    • #200 Remove flaky tests
    • #204 Create CHANGELOG and remove flaky v4 test
    • #208 Add license scan report and status
    • #220 Remove errant bitly

    Dependencies

    • #189 Bump lint-staged from 10.0.7 to 10.2.11
    • #190 [Security] Bump handlebars from 4.5.3 to 4.7.6
    • #191 Bump prettier from 1.19.1 to 2.0.5

    ... (truncated)

    Commits
    • e22061b Merge pull request #335 from codecov/3.8.3
    • 981df8b 3.8.3
    • 135555c Merge pull request #333 from codecov/dependabot/npm_and_yarn/teeny-request-7.1.1
    • 65b53a3 Merge pull request #334 from codecov/dependabot/npm_and_yarn/husky-7.0.1
    • 6e4af4d Bump teeny-request from 7.0.1 to 7.1.1
    • 1149168 Merge pull request #332 from codecov/dependabot/npm_and_yarn/urlgrey-1.0.0
    • 883785c Merge pull request #331 from codecov/dependabot/npm_and_yarn/ws-7.5.3
    • 04d5ff7 Merge pull request #330 from codecov/dependabot/npm_and_yarn/eslint-7.31.0
    • e6c5bf4 Bump husky from 6.0.0 to 7.0.1
    • f781bc4 Bump ws from 7.3.1 to 7.5.3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump node-sass from 4.9.0 to 7.0.0

    Bump node-sass from 4.9.0 to 7.0.0

    Bumps node-sass from 4.9.0 to 7.0.0.

    Release notes

    Sourced from node-sass's releases.

    v7.0.0

    Breaking changes

    Features

    Dependencies

    Community

    • Remove double word "support" from documentation (@​pzrq, #3159)

    Misc

    Supported Environments

    OS Architecture Node
    Windows x86 & x64 12, 14, 16, 17
    OSX x64 12, 14, 16, 17
    Linux* x64 12, 14, 16, 17
    Alpine Linux x64 12, 14, 16, 17
    FreeBSD i386 amd64 12, 14

    *Linux support refers to major distributions like Ubuntu, and Debian

    v6.0.1

    Dependencies

    Misc

    Supported Environments

    ... (truncated)

    Changelog

    Sourced from node-sass's changelog.

    v4.14.0

    https://github.com/sass/node-sass/releases/tag/v4.14.0

    v4.13.1

    https://github.com/sass/node-sass/releases/tag/v4.13.1

    v4.13.0

    https://github.com/sass/node-sass/releases/tag/v4.13.0

    v4.12.0

    https://github.com/sass/node-sass/releases/tag/v4.12.0

    v4.11.0

    https://github.com/sass/node-sass/releases/tag/v4.11.0

    v4.10.0

    https://github.com/sass/node-sass/releases/tag/v4.10.0

    v4.9.4

    https://github.com/sass/node-sass/releases/tag/v4.9.4

    v4.9.3

    https://github.com/sass/node-sass/releases/tag/v4.9.3

    v4.9.2

    https://github.com/sass/node-sass/releases/tag/v4.9.2

    v4.9.1

    https://github.com/sass/node-sass/releases/tag/v4.9.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v0.1.2)
  • v0.1.2(Aug 15, 2018)

    Changelog

    • Bugfixes
      • Infinitely emiting both 'update' and 'complete' events #34 (@panstav) 043a9fa
    • New features
      • Added TypeScript support (typings) #28 #29 (@hirako2000)
      • play / pause implementation #21 #31 (@Kris-B , PR: @hirako2000)
    • Examples
      • Add visual examples for easing #24 #25 (@hirako2000)
      • Improve code readability in examples #16 #19 (@Martin-Pitt , PR: @alexko30)
    • Listen to port 3000 instead of 8080 #26 #27 (@hirako2000)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jul 30, 2018)

    Changelog

    • Updated examples
      • Added logo
      • Added visual examples (visual-box.html, visual-multiple.html)
    • Performance optimizations
      • Scope update method
      • polyfill requestAnimationFrame
      • move type logic to constructor.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Jul 30, 2018)

    Changelog

    • Implemented basic functionality
    • API:
      • .loop(mode, count) - Loop mode support (repeat/bounce/once)
      • .ease(func) - Easing support
      • .time(duration)
    • Events:
      • .on('start', ...)
      • .on('update', ...)
      • .on('complete', ...)
    • Color plugin (dom-color.between.js)
    Source code(tar.gz)
    Source code(zip)
Owner
Alexander Buzin
Creator of @WhitestormJS framework and between.js tweening engine & CGI expert Now working with @heremaps, @openware & @scapic
Alexander Buzin
Awesome book with ES6, this project is build using HTML,CSS, JavaScript ES6 the project allows you to add books and save them with the author , for another time checks

Project Name Awsome books Description the project. adding books daynamiclly Built With Major languages Frameworks Technologies used Live Demo (if avai

Alzubair Alqaraghuli 5 Jul 25, 2022
Awesome Books project with ES6 is an application that was built using Vanilla JavaScript with ES6 features like using arrow functions. This application allows you to keep records of your favorite books.

Javascript Project Awesome Books with ES6 Using Javascript to create a simple Awesome Books project. Populating the books list and then removing one b

Ghazanfar Ali 8 Sep 28, 2022
In this project, I restructure my previous Awesome books app code. The goal is to practice ES6 syntax and also make the code more organized by using ES6 modules.

Awesome Books In this project, I will restructure my previous Awesome books app code. The goal is to make it more organized by using modules. I will a

Sidney Kaguli 9 Aug 23, 2022
The project integrates workflow engine, report engine and organization authority management background, which can be applied to the development of OA, HR, CRM, PM and other systems. With tlv8 IDE, business system development, testing and deployment can be realized quickly.

介绍 项目集成了工作流引擎、报表引擎和组织机构权限管理后台,可以应用于OA、HR、CRM、PM等系统开发。配合使用tlv8 ide可以快速实现业务系统开发、测试、部署。 后台采用Spring MVC架构简单方便,前端使用流行的layui界面美观大方。 采用组件开发技术,提高系统的灵活性和可扩展性;采

Qian Chen 38 Dec 27, 2022
A dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more

Glide.js is a dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more What can co

null 6.7k Jan 3, 2023
A Lightweight JavaScript Template Engine.

Juicer 中文文档 当前最新版本: 0.6.14 Juicer 是一个高效、轻量的前端 (Javascript) 模板引擎,使用 Juicer 可以是你的代码实现数据和视图模型的分离(MVC)。除此之外,它还可以在 Node.js 环境中运行。 你可以在遵守 MIT Licence 的前提下随意

GuoKai 913 Nov 4, 2022
A lightweight, powerful and highly extensible templating engine. In the browser or on Node.js, with or without jQuery.

JsRender: best-of-breed templating Simple and intuitive, powerful and extensible, lightning fast For templated content in the browser or on Node.js (w

Boris Moore 2.7k Jan 2, 2023
This is my to-do list website built with html, css and JavaScript. In this project I used Webpack to bundle JavaScript and ES6 modules to write modular JavaScript.

To-Do-List App This is my to-do list website built with html, css and JavaScript. In this project I used Webpack to bundle JavaScript and ES6 modules

Samuel Mwape 18 Sep 20, 2022
EggyJS is a Javascript micro Library for simple, lightweight toast popups focused on being dependency-less, lightweight, quick and efficient.

EggyJS EggyJS is a Javascript micro Library for simple, lightweight toast popups. The goal of this library was to create something that meets the foll

Sam 10 Jan 8, 2023
Simple Library implemented using HTML, CSS and JavaScript. This is a simple implementation of JavaScript Modules of ES6.

Awesome-books A single page project with the porpuse of storing books' titles and authors. Built With CSS, HTML & Javascript. How to run in your local

Saadat Ali 7 Feb 21, 2022
JavaScript project for the Leaderboard list app, using Webpack and ES6 features, notably modules. this app consume the Leaderboard API using JavaScript async and await and add some styling.

Leaderboard Project JavaScript project for the Leaderboard list app, using Webpack and ES6 features, notably modules. this app consume the Leaderboard

bizimungu pascal 4 May 20, 2022
🏊 Dive into ES6 and the future of JavaScript

Practical Modern JavaScript Dive into ES6 and the future of JavaScript ?? Modular JavaScript is a book series with the mission of improving our collec

Modular JavaScript Book Series 3.1k Jan 2, 2023
JavaScript project for the Leader-board list app, using webpack and ES6 features, notably modules

Leaderboard JavaScript project for the Leader-board list app, using webpack and ES6 features, Built With HTML CSS Javascript webpack Getting started t

Banlon Jones 3 Feb 17, 2022
A JavaScript project for the Leaderboard list app, using webpack and ES6 features, notably modules

LEADERBOARD In this activity I am setting up a JavaScript project for the Leaderboard list app, using webpack and ES6 features, notably modules. I wil

Tobin 11 Mar 16, 2022
JavaScript project for the Leaderboard list app, built using webpack and ES6 features.

Leaderboard List App JavaScript project for the Leaderboard list app, built using webpack and ES6 features. The leaderboard website displays scores su

Samuel Mwape 8 Aug 16, 2022
A simple BookStore Website built with HTML-CSS-JavaScript-ES6.

Awesome Books This project allows users to add/remove books from a list. This is done by using JavaScript ES6. It has the feature to dynamically modif

Mengstu F. 11 May 12, 2022
BookStore websites done with JavaScript-ES6, CSS, HTML

Awesome Books This project allows users to add/remove books from a list. This is done by using JavaScript class. It has the feature to dynamically mod

Mengstu F. 8 Mar 1, 2022
A JavaScript project for the Leaderboard list app, using webpack and ES6 features, notably modules.

Leaderboard ONJoseph Leaderboard project JavaScript leaderboard project using API. Description In this activity I will set up a JavaScript project for

Joseph O 3 May 12, 2022