Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-simple-typewriter

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-simple-typewriter

A simple react component for adding a nice typewriter effect to your project.

  • 5.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
15K
increased by0.87%
Maintainers
1
Weekly downloads
 
Created
Source

React Simple Typewriter

A simple react component for adding a nice typewriter effect to your project.

NPM JavaScript Style Guidenpm bundle sizeGitHub

screenshot

Install

npm
npm i react-simple-typewriter
Yarn
yarn add react-simple-typewriter

Usage

There are two ways to Typewriter:

1. Component

import React from 'react'
import { Typewriter } from 'react-simple-typewriter'

const MyComponent = () => {
  return (
    <div className='App'>
      <Typewriter {/* Props */} />
    </div>
  )
}

Component Props

PropTypeOptionsDescriptionDefault
wordsarrayRequiredArray of strings holding the words['Hello', '...']
typeSpeednumberOptionalCharacter typing speed in Milliseconds80
deleteSpeednumberOptionalCharacter deleting speed in Milliseconds50
delaySpeednumberOptionalDelay time between the words in Milliseconds1500
loopnumber | booleanOptionalControl how many times to run. 0 | false to run infinitely1
cursorbooleanOptionalShow / Hide a cursorfalse
cursorStyleReactNodeOptionalChange the cursor style available if cursor is enabled|
cursorBlinkingbooleanOptionalEnable cursor blinking animation|
onLoopDonefunctionOptionalCallback function that is triggered when loops are completed. available if loop is > 0-
onTypefunctionOptionalCallback function that is triggered while typing with typed words count passed-
onDelayfunctionOptionalCallback function that is triggered on typing delay-
onDeletefunctionOptionalCallback function that is triggered while deleting-

Usage Example

import React from 'react'
import { Typewriter } from 'react-simple-typewriter'

const MyComponent = () => {

  const handleType = (count: number) => {
    // access word count number
    console.log(count)}
  }

  const handleDone = () => {
    console.log(`Done after 5 loops!`)
  }

  return (
    <div className='App'>
      <h1 style={{ paddingTop: '5rem', margin: 'auto 0', fontWeight: 'normal' }}>
        Life is simple{' '}
        <span style={{ color: 'red', fontWeight: 'bold' }}>
          {/* Style will be inherited from the parent element */}
          <Typewriter
            words={['Eat', 'Sleep', 'Code', 'Repeat!']}
            loop={5}
            cursor
            cursorStyle='_'
            typeSpeed={70}
            deleteSpeed={50}
            delaySpeed={1000}
            onLoopDone={handleDone}
            onType={handleType}
          />
        </span>
      </h1>
    </div>
  )
}

2. Hook

BREAKING CHANGES v5.0.0 Hook now returns text along with some useful flags:

PropTypeDescription
isTypebooleanCheck if currently typing
isDeletebooleanCheck if currently deleting
isDelaybooleanCheck if currently on delay
isDonebooleanCheck if all running loops are done
import { useTypewriter } from 'react-simple-typewriter'

const MyComponent = () => {
  /**
   * @returns
   * text: [string] typed text
   * NEW helper: {} helper flags
   */
  const [text, helper] = useTypewriter({
    /* Config */
  })

  /* Hook helper */
  const { isType, isDelete, isDelay, isDone } = helper

  return (
    <div className='App'>
      <span>{text}</span>
    </div>
  )
}

Hook Config

PropTypeOptionsDescriptionDefault
wordsarrayRequiredArray of strings holding the words['Hello', '...']
typeSpeednumberOptionalCharacter typing speed in Milliseconds80
deleteSpeednumberOptionalCharacter deleting speed in Milliseconds50
delaySpeednumberOptionalDelay time between the words in Milliseconds1500
loopnumber | booleanOptionalControl how many times to run. 0 | false to run infinitely1
onLoopDonefunctionOptionalCallback function that is triggered when loops are completed. available if loop is > 0-
onTypefunctionOptionalCallback function that is triggered while typing-
onDeletefunctionOptionalCallback function that is triggered while deleting-
onDelayfunctionOptionalCallback function that is triggered on typing delay-

Hook Usage Example

import React from 'react'
import { useTypewriter } from 'react-simple-typewriter'

const MyComponent = () => {
  const [text] = useTypewriter({
    words: ['Hello', 'From', 'Typewriter', 'Hook!'],
    loop: 0
  })

  return (
    <div className='App'>
      <span>{text}</span>
    </div>
  )
}

Hook with Cursor

If you like to have the Cursor effect, you can import it as a separate Component

import React from 'react'
import { useTypewriter, Cursor } from 'react-simple-typewriter'

const MyComponent = () => {
  const [text] = useTypewriter({
    words: ['Hello', 'From', 'Typewriter', 'Hook!'],
    loop: 3,
    onLoopDone: () => console.log(`loop completed after 3 runs.`)
  })

  return (
    <div className='App'>
      <span>{text}</span>
      <Cursor cursorColor='red' />
    </div>
  )
}

Cursor Component Props

PropTypeOptionsDescriptionDefault
cursorStyleReactNodeOptionalChange cursor style|
cursorColorStringOptionalChange cursor colorinherit
cursorBlinkingBooleanOptionaldisable cursor blinking animationtrue

Demo


Edit react-simple-typewriter

License

MIT © awran5

Keywords

FAQs

Package last updated on 19 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc