Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Cycle through a sequence of strings based on progress. textSequence emits both the current string (`text`) and its position in the array (`index`, float). Authors pick any number of output targets via `channels`: `from: "text"` routes the string to any DOM string target (textContent, aria-label, CSS var, title, data-*, etc.), `from: "index"` routes the position float to any numeric CSS property (opacity gating, slide offset, step-in indicator). Compound: expands into `textSequence + one domPoseWrite + N domStringWrites` at load time — no runtime class.
Inputs
| Port | Type | Description |
|---|---|---|
progress | float | Progress |
Outputs
| Port | Type | Description |
|---|---|---|
| - | - | No ports declared. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
selector | elementSelector | "" | Target Selector |
texts | string | [] | Text Sequence |
mode | enum | "round" | How progress maps to the active item index. **Round** (default) centers item i at p=i/(N-1) with flips at midpoints — pair with a counterAnimation that uses `min: 1, max: N, decimals: 0` to keep counter and image flips in lockstep. **Floor** gives equal-width buckets; item 0 active for [0, 1/N), item 1 for [1/N, 2/N), etc. — natural for streamed timelines (typewriter / video-like). options round, floor |
channels | textSequenceChannels | {"textContent":{"from":"text","propertyName":"textContent","writeMode":"textContent"}} | Channels |
Envelope
Use textSequenceAnimation as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-text/