Statement

Animated text with inline product controls.

0:00 / 0:01

Customize

Installation

pnpm odori add component statement

Edit the source in videos/components/statement/. Use odori diff to compare upstream changes and odori update to apply updates.

Timing contract

Use these durations and content limits when composing a scene. Run odori test to check your video.

Family
Typography
Recommended duration
120 frames · 4s
Minimum duration
54 frames · 1.8s
Entrance
30 frames
Exit
10 frames
Reduced motion
every part appears together, and a swap cuts
Requires
sans font
Content limits
parts ≤ 9, partLength ≤ 44, chipLabel ≤ 14

Props

PropTypeDefaultRequired
partsThe sentence, in order. A string is a word; an object is a chip.Array<string | StatementChip>—Yes
revealWhat arrives at a time. Characters read as someone typing, words as someone talking, and `none` puts the whole line up at once."characters" | "words" | "none""words"—
motionHow a part arrives. `rise` lifts and fades it in; `cut` switches it on. A cut is not a lesser rise: a video built entirely of hard cuts has a rhythm that any easing softens away."rise" | "cut""rise"—
staggerFrames between one unit and the next.number——
alignWhere the sentence sits."left" | "center""left"—
themeLight page or dark page. Chips and text follow it."light" | "dark""light"—
swapA chip that replaces the last chip in place.StatementChip——
swapAtThe frame the swap happens on.number——

Related components

All components