Skip to content

text-fade

The fade family splits the element into characters and animates the opacity of each one. text-fade is plain. text-fade-up, -down, -left, -right add a directional offset. text-fade-30 / text-fade-10 start at 30% / 10% opacity instead of 0 — pair them with aa-scrub to dim a paragraph as it enters view.

VariantStarts atOffset
text-fadeopacity 0none
text-fade-upopacity 0translateY from below
text-fade-downopacity 0translateY from above
text-fade-leftopacity 0translateX from the right
text-fade-rightopacity 0translateX from the left
text-fade-30opacity 0.3none — pair with aa-scrub for a dim
text-fade-10opacity 0.1none — pair with aa-scrub for a dim
AttributeDefaultNotes
aa-animate(required)One of the variants above.
aa-splitcharsOverride split mode (chars, words, lines).
aa-stagger0.02Seconds between parts.
aa-duration(init)Seconds.
aa-delay0Seconds.
aa-distance1Multiplier on offset variants.
aa-ease(init)Any GSAP ease.
aa-scrub(off)true or seconds — bind progress to scroll.

gsap, ScrollTrigger, SplitText (chars fall back to a regex splitter when SplitText is missing).

text-fade

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.

text-fade-up

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.

text-fade-down

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.

text-fade-left

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.

text-fade-right

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.

text-fade-30

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.

text-fade-10

A short hero line

A two-line subhead that wraps onto a second line to show per-line behaviour.

A three-line paragraph of body copy so we can see how the animation reads at a longer scale, with several lines of text wrapping naturally across the page width.

scrubbed (aa-scrub="1")

Tied to scroll.
Watch the easing.
Feel each beat.