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 🙏

© 2024 – Pkg Stats / Ryan Hefner

sequin-js

v0.0.2

Published

Easily add animations to your pages by specifying regular classes using semantic method chaining.

Downloads

6

Readme

Sequin.js

Sequin allows you to create animations easily using CSS classes. Transition durations are set automatically and all you need to concern yourself with is how each state differs via your classes.

Example

Since Sequin's syntax reads like a book, a good example of how to use it is through the syntax itself.

  • Element by class to interact with: sequin.with('first');
  • Add/remove the following classes: .add('pink');
  • After 500 milliseconds: .after(500);
  • Finish animation in 750 milliseconds: .within(750);
  • Run the animation process: .run();

Put all together using Sequin's method chaining, you end up with:

sequin.with('first').add('pink').after(500).within(750).run();

Whilst the simplest way to configure Sequin is by using individual nodes, it also supports concurrent animations. Each and every method accepts an array of values as well.

sequin  .with(['first', 'second'].add(['red', 'blue']).after([500, 1000])
        .within([1000, 2000]).run();

You can even omit values and the last value will be used. If for instance you wanted to apply the class orange to five separate elements, there's no need to specify the class name six times.

sequin.with(['first', 'second', 'third', 'fourth', 'fifth']).add('orange');

Sequin also supports the concept of the promise pattern style then.

sequin  .with('first').add('blue').after(250).within(100)
        .then()
        .with('first').remove('blue').after(250).within(4000)
        .run();

Whereby the above adds the class name blue to the first element quickly, and then slowly removes the class afterwards.

It's worth noting that after values are relative to its predecessor. Therefore in the above example, the second animation would happen 250 milliseconds after the first one completed.

  • First animation begins after 250 milliseconds;
  • Second animation occurs 250 milliseconds afterwards (500ms from start to end, excluding transitions);

If you didn't want the second animation to start before the blue had been completely applied, then your second animation should take place after 350 milliseconds (after(250) + within(100)).