Animation

Split Text

Reveals text by splitting it into chars or words and staggering each piece in from a from state to a to state when the element scrolls into view. GSAP-free port — uses IntersectionObserver + Web Animations API.

Angular adaptation of an effect by David Haz / reactbits.dev.

Import

import { WrSplitText } from 'ngwr/split-text';

Playground

Hello, ngwr!
<wr-split-text
  text="Hello, ngwr!"
  splitType="chars"
  [delay]="40"
  [duration]="1.2"
/>

Customize

Split Type
Stagger Delay (ms)
40
Duration (s)
1.2 s
Text

API

NameDescriptionTypeDefault
textrequiredText to animate.string— (required)
splitTypeSplit granularity.'chars' | 'words''chars'
delayStagger delay between pieces in ms.number50
durationAnimation duration in seconds.number1.25
easingCSS easing function.string'cubic-bezier(0.16, 1, 0.3, 1)' (~power3.out)
fromStart state for each piece. Properties: opacity, x, y (px), scale, rotate (deg).WrSplitTextMotion{ opacity: 0, y: 40 }
toEnd state for each piece. Same shape as from.WrSplitTextMotion{ opacity: 1, y: 0 }
thresholdIntersectionObserver threshold (0..1).number0.1
rootMarginIntersectionObserver rootMargin.string'-100px'
textAlignText alignment on the host.'left' | 'center' | 'right' | 'justify''center'
(animationComplete)Emitted once all pieces finish animating.EventEmitter<void>