react-typing-animation
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/react-typing-animation package

1.6.2 • Public • Published

React-typing-animation

npm version Licence

A fully-featured typing animation in React that supports any valid JSX.

Motivation

There were other JS typing animations that existed when I created this, but they were all lacking in robust features. This component aims to support all of the following features:

✅ Type text from any valid JSX

✅ Preserve DOM structure/styling

✅ Change typing speed anywhere in tree

✅ Add a delay anywhere in tree

✅ Backspace animation

✅ Reset lines / full tree

✅ Loop functionality

✅ No dependencies (CSS or JS)

Demo

View the live demo

or

git clone https://github.com/adamjking3/react-typing-animation
cd react-typing-animation
npm install
npm start

Then open http://localhost:3000/ in a browser.

Feature requests and pull requests welcome

Installation

npm i --save react-typing-animation

Usage

import Typing from 'react-typing-animation';
 
const AnimatedTypingComponent = () => (
  <Typing>
    <span>This span will get typed.</span>
  </Typing>
);

Documentation

Property Type Default Required
children React node yes
className string no
cursorClassName string no
cursor React node <Cursor /> no
hideCursor boolean false no
speed number 50 (ms) no
startDelay number 0 (ms) no
loop boolean false no
onStartedTyping function () => {} no
onBeforeType function () => {} no
onAfterType function () => {} no
onFinishedTyping function () => {} no

Backspace Component

import Typing from 'react-typing-animation';
...
  <Typing>
    <span>This span will get typed, then erased.</span>
    <Typing.Backspace count={20} />
  </Typing>
Property Type Default Required Description
count number 1 false
delay number 0 false
speed number -1 false

Delay Component

import Typing from 'react-typing-animation';
...
  <Typing>
    <div>
      There will be a 1000ms delay here,
      <Typing.Delay ms={1000} />
      then this will be typed.
    </div>
  </Typing>
Property Type Default Required Description
ms number yes

Speed Component

import Typing from 'react-typing-animation';
...
  <Typing speed={50}>
    This line will be typed at 50ms/character,
    <Typing.Speed ms={200} />
    then this will be typed at 200ms/character.
  </Typing>
Property Type Default Required Description
ms number yes

Reset Component

import Typing from 'react-typing-animation';
...
  <Typing>
    <span>This line will stay.</span>
    <span>This line will get instantly removed after a 500 ms delay</span>
    <Typing.Reset count={1} delay={500} />
  </Typing>
Property Type Default Required Description
count number 0 false
delay number 0 false
speed number -1 false

Contributing

After cloning the repository and running npm install inside, you can use the following commands to develop and build the project.

# Starts a webpack dev server that hosts the demo at http://localhost:3000 
npm start
 
# Lints the code with eslint 
npm run lint
 
# Lints and builds the code, placing the result in the dist directory. 
npm run build

Pull requests are welcome!

License

MIT

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.6.2442latest

Version History

VersionDownloads (Last 7 Days)Published
1.6.2442
1.6.10
1.6.00
1.5.10
1.5.00
1.4.02
1.3.414
1.3.30
1.3.20
1.3.10
1.3.00
1.2.10
1.2.00
1.1.50
1.1.40
1.1.30
1.1.20
1.1.10
1.0.100
1.0.90
1.0.80
1.0.70
1.0.60
1.0.50
1.0.40
1.0.30
1.0.20
1.0.10
1.0.00

Package Sidebar

Install

npm i react-typing-animation

Weekly Downloads

373

Version

1.6.2

License

MIT

Unpacked Size

6.16 MB

Total Files

35

Last publish

Collaborators

  • adamjking3