npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

choreo.js

v0.1.3

Published

ES6 Library for UI animation & motion choreography using the web animation API

Downloads

2

Readme

Choreo.js is a lightweight helper for the Web Animations Javascript API, that allows you to:

  • Choreograph scenes of animation on one or more elements
  • Set animation intervals on a group of elements to get smooth sequential effects
  • Trigger animation scenes based on whether the elements are in or partially in the viewport
  • Provides a small animation library, with the option to create your own

Before you get creating slick animation sequences

It's important to remember that the Web Animation API is not quite fully supported by all browsers. Choreo has a dependency on the web-animation-next polyfill to solve that. Make sure you include it: https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.2.2/web-animations-next.min.js

Usage

Create as many scenes as you like using the createScene method, as shown below:

import createScene from 'choreo';

createScene({
  sceneDelay: 300,                          
  elements: ['.element', '.element2'],     
  animationType: 'fadeUpIn',               
  interval: 50,                            
  trigger: 'onlyWhenInView'                                                  
})

Configuration Options

sceneDelay: Scene delay (ms) sets a global animation delay by overriding the animations delay (specified in animationType) elements: Pass in an array of classes as strings, in order that you'd like them to execute animationType: Either use the built in animations by passing in string names, or define your own animation objects like this:

let fadeUpIn = {
  keyframes: [
    { transform: 'translateY(-100%)', opacity: 0 },
    { transform: 'translateY(0)', opacity: 1 }
  ],
  timing: {
      duration: 500,
      delay: 0, // This is overridden by sceneDelay in your createScene object
      easing: 'cubic-bezier(.4,0,0,1)',
      fill: 'both'
  }
}

Read up on the Web Animation API documentation for more specific information on defining custom keyframes & timing.

interval: Defines the delay between each element animating to get smooth sequential motion effects trigger: Takes either 'onlyWhenInView' or 'onlyWhenInPartialView' - These allow animation to be triggered when the element is either fully in the viewport or partially shown.

Roadmap

If I get the time, these are a few pointers for the roadmap:

  • Allow elements in a scene to take their own animationType
  • Provide an executeScene() method to wrap scenes and pass triggers or mouse events/other interactions