Founding price: $35, then $79.99 after 23:59 UTC on 4 November, then $79.99
Get ProText that shows a blinking caret while a reply arrives, and can type out finished text at a set speed for demos and replays.
Derived from this item’s props table, because it declares no controls of its own. Changes drive the preview live.
import { StreamingText } from "@/components/ui/streaming-text"// Live: append chunks to `text` as they arrive.
<StreamingText text={reply} streaming={isStreaming} />
// Replay: reveal finished text at 60 characters per second.
<StreamingText text={savedReply} animate speed={60} />| Prop | Type | Default | Description |
|---|---|---|---|
text | string | - | The text received so far. Whitespace and newlines are preserved. |
streaming | boolean | false | True while more text is expected. Shows the caret and sets aria-busy. |
animate | boolean | false | Reveal already complete text at speed. Skipped under reduced motion. |
speed | number | 80 | Characters per second when animate is on. |
caret | boolean | true | Show the caret while streaming or revealing. |
onAnimationComplete | () => void | - | Called once animate has revealed the whole text. |
Also accepts all <div> props except children.
The caret on its own, a <span>. It blinks, and stays solid under reduced motion.
The container is aria-live="polite" and aria-busy while text is arriving, so screen readers read the reply once it settles instead of every chunk.