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

laufsteg

v0.0.18

Published

Easy to use infinite moving div

Readme

Features

  • 💈 Endless horizontal scrolling in both directions
  • 🤖 Automatic scrolling (with adjustable speed) & User scrolling
  • ⚡️ Optimized for Performance (efficient reordering & CPU/GPU Usage)
  • 🧈 Buttery smooooooooth
  • 📱 Support for Touch-Devices
  • 🙏🏽 Framework agnostic (Works with React, Vue, Svelte & even with Vanilla JS/TS)
  • 🎁 Many more little things that make developers happy

Open TODOs / Currently not supported

If you want to help us with this, please have a look at our Contribution section

  • 📏 Variable cell sizes
  • 🔥 Updating options after initializing

Relevant Links

Installation

Vanilla JS/TS

# pnpm
pnpm add laufsteg

# npm
npm i laufsteg

CDN

<script src="https://unpkg.com/laufsteg"></script>

This exposes laufsteg globally via window.laufsteg

React

# pnpm
pnpm add laufsteg-react

# npm
npm i laufsteg-react

Vue

# pnpm
pnpm add laufsteg-vue

# npm
npm i laufsteg-vue

Usage

The concrete usage depends on on the framework you are using.

For further information please have a look at the concrete adapters:

If you want to use laufsteg without any framework, or want to write an adapter on your own, you only have to do two simple things:

1. Use this DOM Structure

<div id="laufsteg-sample-1" className="laufsteg-container">
  <div className="laufsteg-trolley">
    <div className="laufsteg-cell">Your cell content goes here</div>
  </div>
</div>

There can be as many cells, as you want (with the same size). If there are not enough cells to fill the whole screen, laufsteg will automatically duplicate cells.

2. Call createLaufsteg()

import { createLaufsteg } from 'laufsteg'
...
const options: laufstegOptions = {...}
const container = document.getElementById("laufsteg-sample-1")
const laufsteg = createLaufsteg(container, options)
...

Motivation

We wanted to have a library with which we could easily create an infinite carousel in both directions. On the one hand, this should be able to scroll automatically, but the users should also be able to interact with it.

It was also very important to us to have a really smooth user experience, for which not least a great performance is necessary. Because we couldn't find a library that could offer us exactly that, we decided to write our own.

Support us

Contributing

If you want to contribute to Laufsteg, please either open a PR directly, or send a short email with your plans to [email protected]

We are sure that Laufsteg can be improved a lot and we are looking forward to your ideas!

Sponsoring

If you appreciate our work, we would of course be very proud if you supported us with a small donation:

Crew

This project is initiated and maintained by the crew behind smunzl: a service to send unique digital greeting cards.

License

This project is licensed under the MIT license. Feel free to edit and distribute this template as you like.

See LICENSE for more information.