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

typing-effect

v1.1.2

Published

Typing effect that prevents elements from jumping around when the text becomes multiline

Downloads

62

Readme

typing effect

typing-effect creates a typing effect for one or multiple elements. Other libraries usually append character by character, which causes other elements on the page to jump around, most of the times when the animated text becomes multiline. This library avoids that by keeping the text in the DOM, wrapping every character and hiding it. That way you can also center the text and every character will already be at its final position in the viewport. When the animation is done, everything will be resetted and the wrappers are removed.

Demo

https://mgrsskls.github.io/typing-effect

Installation

npm install typing-effect or add https://mgrsskls.github.io/typing-effect/typing-effect.js to your project if you don't want to use the ES6 module.

Options

{
  speed: 30,  // the typing speed
  delay: 300, // the delay between two animated elements,
  reset: true // defines if the animated text gets replaced with the original text when the animation is done
}

Usage

Include index.css from this library into your project or add the following CSS

[data-typing-effect] {
  visibility: hidden;
}

and add the data-typing-effect attribute to the elements you want to animate.

typing-effect would still work without, but you might be able to see the animated text for a small moment before the animation starts.

import typingEffect from "typing-effect"; // when not using https://mgrsskls.github.io/typing-effect/typing-effect.js

// a single element
typingEffect(document.querySelector("[data-typing-effect]"));

// multiple elements
typingEffect(Array.from(document.querySelectorAll("[data-typing-effect]")));

// passing options
typingEffect(
  Array.from(document.querySelectorAll("[data-typing-effect]"), {
    speed: 50,
    delay: 50,
    reset: false
  })
);

// doing something when the animation is done:
typingEffect(
  Array.from(document.querySelectorAll("[data-typing-effect]"))
).then(() => doSomething());

NOTE: If the text moves a bit when the animation is done, you can use { reset: false }.