Examples
- Basic Usage
- Custom Duration
- Multi-Line
Properties
Required
String
required
The string to display. When this value changes, each character animates out from the old string and in from the new one with staggered scale, slide, and blur motion.
Content
TextStyle
Text style for the rendered string. Merges with
DefaultTextStyle — omitting this uses the ambient style.int
Maximum number of lines to render. Mirrors the
Text widget’s maxLines parameter.TextOverflow
How to handle text that exceeds
maxLines or the available width. Defaults to .clip.bool
Whether to wrap text at soft line breaks. Defaults to
true.TextAlign
Horizontal alignment of the text within its bounding box.
TextDirection
Reading direction. Defaults to the ambient
Directionality.Layout
bool
default:"false"
When
true, the widget holds the wider of the old and new text widths during the animation, preventing layout jumps when surrounding content is sensitive to size changes. When false (default), the width interpolates smoothly from old to new.Styling
Duration
Override the animation duration. Defaults to
theme.durations.long.Best Practices
- Set
useMaxWidthDuringTransition: truewhen a width change during the animation would move siblings.
Behavior
- A
TextStylebuilt inline inbuildrestarts the animation on every rebuild, even when the string is unchanged. UseuseMemoizedor aconststyle. - Screen readers announce
data, not the characters in motion. - It measures itself like a
Textof the string. - Digits use tabular figures.
NeoButton,NeoToast,NeoDropdownField, andNeoBadgeanimate their labels withNeoFluidText.

