Desktop optimized

Please maximize your browser window or use a larger screen to explore the component library.

Go to home

Fluid Typewriter

A liquid-smooth typewriter effect. A glowing cursor seamlessly glides across the text, intelligently wrapping to new lines and pausing at punctuation, while characters emerge from a deep blur.

Last Modified:Aug 17, 2026

Install

CLI

fluid-typewriter
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/fluid-typewriter.json

Or install a specific demo variant:

fluid-typewriter-headline-demo
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/fluid-typewriter-headline-demo.json

Or install a specific demo variant:

fluid-typewriter-paragraph-demo
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/fluid-typewriter-paragraph-demo.json

Manual

1. Install Dependencies

Dependencies
$pnpm add gsap @gsap/react clsx tailwind-merge

2. Add Source Code

Props

PropTypeDefaultDescription
textstringRequiredThe full string of text to type out. Supports wrapping.
asReact.ElementType"h1"The HTML tag to render as.
cursorClassNamestring"bg-primary"Tailwind class for the blinking cursor.
cursorYOffsetstring | number"0.1em"Push the cursor slightly down to account for descenders.
baseSpeednumber0.02Speed of the cursor glide per character in seconds.
variancenumber0.02Human variance applied to the typing speed for realism.
delaynumber0Delay before the typewriter begins (in seconds).
viewportOncebooleantrueRecommended to keep true to avoid reverse-deletion loops.
triggerStartstring"top 90%"Viewport threshold for when the animation should start.