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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@saschati/tape-slider

v2.0.0

Published

This is a small library that will allow the elements of your tape to move in a given direction at different speeds, and with some effects

Readme

NPM version npm download

This is a small library that will allow the elements of your tape to move in a given direction at different speeds, and with the effect of teleportation, with the ability to specify timing function for motion like on the Bezier curve. Read the documentation and demo.

Before use:

  • This plugin does not style the tape container and its internal blocks, but only makes them move.
  • For the teleportation effect, the plugin creates a copy of the element, which simulates the element from the other end, after the full passage of the tape, the original element is moved to the place of copy.
  • Due to the fact that the plugin calculates the distances for the path, you need to follow some style rules for the correct use of the plugin, which are described below.
  • If you need a simple slider, it is better to choose another plugin.

Install:

npm i @saschati/tape-slider

Usage:

import Tape from "@saschati/tape-slider";

// This event is required for the plugin to work correctly
window.addEventListener('load', function () {
   // By default, the ribbon moves to the right
   const tape = new Tape({wrapper: document.querySelector('.tape')});

   tape.run();
});

Advanced:

// Tape direction classes, they implement methods for calculating and distance to the desired point
import Right from "@saschati/tape-slider/src/direction/right";
import Left from "@saschati/tape-slider/src/direction/left";
import Up from "@saschati/tape-slider/src/direction/up";
import Down from "@saschati/tape-slider/src/direction/down";
// Offset classes, these classes are responsible for reproducing the movement of the object in the tape
import ShiftY from "@saschati/tape-slider/src/direction/shift/shift-y";
import ShiftX from "@saschati/tape-slider/src/direction/shift/shift-x";
// A linear function for calculating how progress should be calculated
import linage from "@saschati/tape-slider/src/animate/timing/linage";
// The class of the tape itself
import Tape from "@saschati/tape-slider";

// This event is required for the plugin to work correctly
window.addEventListener('load', function () {
    const tape = new Tape({
        wrapper: document.querySelector('.tape'), // The wrapper field must be a DOM Element object
        direction: Right, // "Right | Left | Up | Down" The field responsible for the direction currently has 4 directions, by default Right
        options: {
            shift: ShiftX, // "ShiftX | ShiftY" The field responsible for the movement of the ribbon for horizontal is ShiftX and vertical ShiftY
            duration: 20000, // The field responsible for the scroll speed of the tape, the default is 20000
            timing: linage, // This field is responsible for linear functions for which time will be calculated according to the example of cubic-bezier from css
            insert: 'append', // The field responsible for the method of adding clones to the tape is required in some cases which will be described below
            elasticDistance: true, // This field indicates that you need to calculate the size of the tape, taking into account also the size of its elements, the default is true
            To optimize the work of the plugin, when the option is active, an observer will be thrown on the tape object relative to the window, when the user is not looking at the tape, it will not move, the default is true.
            optimize: true,
        }
    });

    // Run tape
    tape.run();
    // Pause tape
    tape.pause();
    // Resume tape
    tape.resume();
    // Destroy tape
    tape.destroy();
});

You can find documentation and examples of usage at the link.

worth to know:

Before using the plugin, you should know some of its behavior/bugs that may be the reason for not using this library at this time. Problems will be solved as a way is found, and the author has free time. If there is a problem in this section, then it has not been solved yet :) You can view the list at the link.