<dt-text kind="headline" :size="600"> <dt-motion-text text="Welcome to Dialtone Motion Text" animation-mode="shimmer" :auto-start="true" loop /> </dt-text>
The Motion Text component provides beautiful text animations with zero configuration required. Simply pass text and let it animate automatically.
The component supports six different animation modes:
<dt-text kind="headline" :size="600"> <dt-motion-text text="Welcome to Dialtone Motion Text" :animation-mode="{mode}" /> </dt-text>
<dt-text kind="headline" :size="600"> <dt-motion-text text="Welcome to Dialtone Motion Text" animation-mode="shimmer" :speed="{speed}" :auto-start="true" loop /> </dt-text>
Take full control of the animation lifecycle:
<dt-button @click="$refs.textRef.start()">Start</dt-button> <dt-button @click="$refs.textRef.pause()">Pause</dt-button> <dt-button @click="$refs.textRef.resume()">Resume</dt-button> <dt-button @click="$refs.textRef.reset()">Reset</dt-button> <dt-button @click="$refs.textRef.skipToEnd()">Skip to End</dt-button> <dt-motion-text ref="textRef" text="Welcome to Dialtone Motion Text" animation-mode="shimmer" :auto-start="false" />
Perfect for attention-grabbing headers or hero sections:
<dt-motion-text
text="Continuous animation"
animation-mode="slide-in"
:loop="true"
:speed="200"
/>You can also use the default slot instead of the text prop:
<dt-motion-text animation-mode="fade-in"> <span>Animated </span> <strong>text</strong> </dt-motion-text>
The Motion Text component is built with accessibility as a core principle.
Automatically respects the user's prefers-reduced-motion system setting. When enabled, animations are skipped and text appears instantly.
<dt-motion-text
text="Respects user preferences"
:respects-reduced-motion="true"
/>
Provide alternative text for screen readers:
<dt-motion-text
text="🎉 Congratulations!"
screen-reader-text="Congratulations"
/>
The component automatically includes proper ARIA attributes:
aria-live="polite" during animationaria-label when screen reader text is providedaria-hidden for animated content while animating200 for short text, 400 for longer passagesgradient-in, while body text might be better with fade-inimport { DtMotionText } from '@dialpad/dialtone-vue';
Name
|
Type
|
|---|---|
default |
Name
|
Default
|
Type
|
|---|---|---|
animationMode | 'gradient-in' |
"gradient-in"
|
"fade-in"
|
"slide-in"
|
"gradient-sweep"
|
"shimmer"
|
"none"
The animation mode to use for the text reveal. |
autoStart | true |
"true"
|
"false"
Whether to start animation automatically when component is mounted. |
loop | false |
"true"
|
"false"
Whether to loop the animation continuously. |
respectsReducedMotion | true |
"true"
|
"false"
Whether to respect the user's prefers-reduced-motion system setting. |
screenReaderText | '' | string Alternative text for screen readers. If provided, this will be announced
instead of the animated text. |
speed | 300 |
"100"
|
"200"
|
"300"
|
"400"
|
"500"
Animation speed. |
text | '' | string The text content to animate. |
Name
|
Type
|
|---|---|
complete | Emitted when the animation completes. |
pause | Emitted when the animation is paused. |
progress | { wordsComplete: number, totalWords: number, progress: number } Emitted during animation progress. |
resume | Emitted when the animation resumes. |
start | Emitted when the animation starts. |
Motion Text documentation last updated Friday, September 4, 2026
fix/popover-modal-zindex-scope