Skip to content
AnimationsInteractive playground

AnimatedText

Text that appears by word or character while remaining accessible.

Preparing the playground…
Text and Markdown example
AnimatedText · Example
1function Example() { 2 const [replay, setReplay] = useState(0); 3 return <div style={{ display: "grid", gap: 20 }}> 4 <h2><AnimatedText split="words" preset="fade-up" duration={400} stagger={80} replayKey={replay}>Your next idea, in motion.</AnimatedText></h2> 5 <Button type="button" variant="outline" onClick={() => setReplay(replay + 1)}>Replay animation</Button> 6 </div>; 7}
Read documentation in Markdown

How to use it

children must be a string. split="words" is the default; stagger sets the timing offset in milliseconds. Use replayKey to replay. The complete sentence is exposed to accessibility while visual fragments are hidden from screen readers.

Character splitting uses Unicode code points, not graphemes. Use words for compound emoji or scripts with ligatures. Keep a semantic heading or paragraph around the component.

Import

React / Next.js
1import { AnimatedText } from "@kivora/nextjs";

Interactive examples run inside a component with "use client". The playground's Copy button includes the imports needed for the current example.

API reference 0.3.0

Types from the installed published version, including component properties and common HTML attributes. “Optional” does not imply a default value; omitting a property lets the component decide.

PropertyTypeDescription
childrenRequiredstringContent or child elements of the component.
aria-labelstringAccessible name of the control.
classNamestringAdditional CSS classes to customize the element.
defaultCheckedbooleanInitial selection of the control.
defaultValuestring | number | readonly string[]Initial value when the component manages its own state.
delaynumberDelay before the entrance, in milliseconds.
disabledbooleanDisable control interaction or animation motion.
durationnumberAnimation duration in milliseconds.
idstringElement identifier; associates labels and descriptions.
onChangeChangeEventHandler<HTMLSpanElement, Element>Change event. Check the type: some controls return an object, others a DOM event.
onClickMouseEventHandler<HTMLSpanElement>Action performed when the element is activated.
onSubmitSubmitEventHandler<HTMLSpanElement>Form submission event.
preset"fade" | "fade-up" | "fade-down" | "scale"Entrance effect: fade, fade-up, fade-down, or scale.
replayKeystring | numberChange this value to replay the entrance animation.
roleAriaRoleSemantic role of the element. Keep the default role unless a change is justified.
split"words" | "characters"Split text into words or Unicode code points.
staggernumberTiming offset between text fragments, in milliseconds.
styleCSSPropertiesReact inline styles.
tabIndexnumberKeyboard focus order and availability.
titlestringTitle or supplementary information.

TypeScript definition

Review each component's properties and published declaration. Native and accessibility attributes are inherited from the element specified by its type.

AnimatedText20 properties
AnimatedText · TypeScript
1declare function AnimatedText({ children, split, preset, stagger, duration, delay, replayKey, disabled, ...props }: AnimatedTextProps): React.JSX.Element;
API generated from @kivora/nextjs 0.3.0View package