Glin UI
Primitive / Moleculebeta

Streaming Text

Progressive text reveal with caret and completion callback, instant under reduced motion.

Edit on GitHub

Q3 revenue review

Glin assistant, 3 sources

Online
MK
Summarize how Q3 went compared with Q2.
q3-revenue.csv47 KB
board-notes.pdf1.1 MB
G
Revenue grew 12% quarter over quarter, driven mostly by the Pro plan. Churn stayed flat at 1.8%, so the gain came from expansion rather than new logos.
MK
Which regions grew fastest?
G
Europe led with 19% growth, followed by North America at 11%. APAC was flat after the pricing change in August.
G
Thinking...

Installation

Install from
pnpm dlx @glinui/cli@latest add streaming-text

Prefer the package?

Usage

The fourth turn streams in with a caret; reduced motion shows it instantly.

Accessibility

  • The full text is present immediately in a visually hidden node, so screen readers do not hear character-by-character noise.
  • The animated copy and caret are aria-hidden.
  • Under reduced motion the text renders instantly and onDone still fires.

Reduced Motion

Reveal is skipped and the caret blink is disabled.

Affected properties

text revealcaret blink

API Reference

PropTypeRequiredDefaultDescription
textstringYes-Full target text. Extending it keeps streaming from the current position.
speednumberNo24Milliseconds per character.
instantbooleanNofalseSkip the animation.
caretbooleanNotrueBlinking caret while revealing.
onDone() => voidNo-Fires once per completed text.

Source

Import directly from the package or browse the source on GitHub. Click any file to view it.

Import

import { StreamingText } from "@glinui/ui"

Dependencies

@glinui/ui

Generated API Snapshot

Beta

Auto-extracted from TypeScript source in packages/ui/src/components/streaming-text.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.

Generated: 2026-10-08T01:41:21.546Z · Full index: /docs/api-metadata

Primary Props Type

StreamingTextProps

StreamingTextProps

PropTypeRequiredDefaultDescription
caretbooleanNotrueShow a blinking caret while revealing.
instantbooleanNofalseSkip the animation and render everything at once.
onDone() => voidNo-Called once each time the full text has been revealed.
speednumberNo24Milliseconds per character.
textstringYes--