1.3.0 • Published 2 months ago

use-typewriter-animation v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

use-typewriter-animation

An utility hook to create typewriter animation effect in React.

Requires React >= 16

Install

yarn add use-typewriter-animation

Usage

const { ref, typewriter } = useTypewriter(options);
typewriter
  .type('Hello my name is use-typewriter-animation!')
  .pauseFor(100)
  .deleteLetters(1)
  .colorize('red')
  .type('Dogu!')
  .start();
<div ref={ref} />

Options

options accepts properties in the table below.

propertytype*default
loopbooleanoptionalfalse
typeSpeed (ms)numberoptional30
deleteSpeed (ms)numberoptional30
colorstringoptional#000

Available actions

Can be used as chained but make sure to use start at last to trigger sequence.

FunctionPurpose
type("Example")Types the given (Example) text.
deleteLetters(5)Deletes the (5) letters from the end of text.
deleteWords(2)Deletes the (2) words from the end of text.
deleteAll()Deletes all the text.
pauseFor(300)Pauses (300ms) the typing for the specified time.
colorize("red")Changes the color (red) of the text.
start()Triggers the sequence & starts the typing.
type TypewriterBaseType = {
  type: (text: string) => TypewriterBaseType;
  deleteLetters: (letterCount: number) => TypewriterBaseType;
  deleteWords: (wordCount: number) => TypewriterBaseType;
  deleteAll: () => TypewriterBaseType;
  pauseFor: (duration: number) => TypewriterBaseType;
  colorize: (color: string) => TypewriterBaseType;
  start: () => Promise<void>;
};

Example

import { useEffect } from 'react';
import { useTypewriter } from './useTypewriter';

const Typewriter = () => {
  const { ref, typewriter } = useTypewriter();

  useEffect(() => {
    typewriter
      .type('Hello, this is use-typewriter-animation hook!')
      .pauseFor(300)
      .deleteAll()
      .type('cyan magenta \n\ndarkgray')
      .pauseFor(200)
      .deleteLetters(5)
      .colorize('red')
      .type('yellow black white turquoise green')
      .deleteWords(2)
      .start();
  }, []);

  return <div ref={ref} />;
};

export default Typewriter;

License: MIT

1.3.0

2 months ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.1.0

1 year ago

0.0.3

1 year ago

0.0.1

1 year ago