# Streaming text animation: chunk timing and fade

> Stream a chunk of 1 to 3 words every 55 to 110 ms, and fade each word in over 200 ms. The text never moves and its layout is reserved.

Canonical: https://vawe.dev/easing/for/text-streaming
Last updated: 2026-11-04

Stream a chunk of 1 to 3 words every 55 to 110 ms, and fade each word in over 200 ms. 15 to 25 words a second. A word fades in 0.2 to 0.3 s, tinted, and settles to ink in about 0.5 s. The text never moves and its layout is reserved.

| Measure | Value |
| --- | --- |
| Job | Stream |
| Duration | 55 to 110 ms a chunk of 1 to 3 words, fade 200 ms, tint 500 ms |

## CSS

```css

```

## Web Animations

```js

```

## Measured source

Measured on ChatGPT and Vercel Analytics clips at 30 fps, read off frames, plus or minus 33 ms.

| Preset | Value | Measured |
| --- | --- | --- |
| Stream | 55 to 110 ms a chunk of 1 to 3 words, fade 200 ms, tint 500 ms | 15 to 25 words a second. A word fades in 0.2 to 0.3 s, tinted, and settles to ink in about 0.5 s. |

## Video components for this job

- [AI stream response](https://vawe.dev/video-components/ai-stream-response)

## Other jobs

- [Title or text entrance](https://vawe.dev/easing/for/title-entrance)
- [UI panel or card in](https://vawe.dev/easing/for/panel-entrance)
- [Value change (number swap)](https://vawe.dev/easing/for/number-change)
- [List stagger](https://vawe.dev/easing/for/list-stagger)
- [Small pop or notification](https://vawe.dev/easing/for/notification-pop)
- [Exit](https://vawe.dev/easing/for/exit)
- [Camera move under 2 s](https://vawe.dev/easing/for/short-camera-move)
- [Camera move of 2 s or more](https://vawe.dev/easing/for/long-camera-move)
- [Scan or wipe travel](https://vawe.dev/easing/for/scan-wipe)
- [Hold drift](https://vawe.dev/easing/for/hold-drift)
- [Send, small arrival](https://vawe.dev/easing/for/send-bubble)
- [Typing](https://vawe.dev/easing/for/typing)

## Related

- [All easing functions](https://vawe.dev/easing)
