Typewriter

Pro

Animated typewriter effect that cycles through a list of words with configurable typing, deleting, and pause speeds.

Text · primitive · basic · css · zero dependencies

typewriter Text·preview

Prompts for

Stop rewriting

typingSpeed 90 / 70 · pause 1.6s / 2.2s · loops

Typewriter

Animated typewriter effect that cycles through a list of words with configurable typing, deleting, and pause speeds.

Pro component

Join the waitlist to unlock all 14 components at launch.

Join the Pro waitlistor join free for 5 components at launch
Use it for
  • hero headline cycling through value props
  • job board rotating role text
  • product tagline animation
  • search placeholder cycling suggestions
Props
Prop Type Default Description
words string[] — List of words or phrases to cycle through.
className string — Additional classes for the text wrapper.
typingSpeed number 80 Milliseconds between each typed character.
deletingSpeed number 40 Milliseconds between each deleted character.
pauseDuration number 1800 Milliseconds to pause after a word finishes typing before it starts deleting.
cursorClassName string — Additional classes for the blinking cursor.
loop boolean true Cycles back to the first word after the last one; set false to stop after one pass.
FAQ
Does Typewriter work with Next.js App Router?

Yes. It's a "use client" React component that uses useState and useEffect, and works as a client component in the App Router.

Are there any dependencies to install?

None. It's built with React state and native browser timers — no external packages required.

Is it responsive?

Yes. It renders inline text sized entirely by your own typography classes via className, with no fixed widths.

Does it respect prefers-reduced-motion?

Not automatically. Typing, deleting, and cursor blinking all run on fixed timers regardless of the OS motion setting. To respect it, check window.matchMedia('(prefers-reduced-motion: reduce)') and render the final word statically instead of mounting the animation.