Skip to main content
Formula Won Labs

Text animations

Line-mask reveals, word rise, character cascades, typewriters, decrypt effects.

31 blocks
Staggered blur word-reveal headline
Staggered blur word-reveal headline

Load-triggered reveal, each word blurs in on a stagger. Re-trigger on route change by toggling a class rather than replaying automatically, replaying every scroll gets annoying fast.

pattern · linear.appview →
Blur-in text animation
Blur-in text animation

Character, word, or line-level reveal with a dozen animation presets (blurInUp, slideUp, scaleUp, etc). Use `once` so it does not replay on every scroll re-entry. Good default for section headlines, avoid stacking more than one per screen.

MIT · magicuiview →
Typewriter typing animation
Typewriter typing animation

Classic character-by-character typewriter effect with a blinking cursor, supports looping through multiple phrases. Works well for a rotating value-prop line under a hero headline. Keep phrases short, long strings make the loop feel slow.

MIT · magicuiview →
Aurora gradient text accent
Aurora gradient text accent

Wraps one word in a shifting multicolor gradient to draw the eye in a hero headline. Pass a custom `colors` array to match brand palette instead of the default rainbow. Use on one word max per headline, more reads as noisy.

MIT · magicuiview →
Animated gradient announcement pill
Animated gradient announcement pill

Small rounded pill with a slow-moving gradient border, standard pattern for a 'what's new' announcement above a hero headline. Pairs naturally with a chevron icon and a link to a changelog or release note.

MIT · magicuiview →
Scramble-in hover text
Scramble-in hover text

Scrambles random characters before settling on the real text, triggers on hover by default or on scroll-into-view with startOnView. Good for a nav label or a small interactive detail, overkill for body copy or long headlines.

MIT · magicuiview →
Vertical word rotator
Vertical word rotator

Vertically swaps one word at a time inside a fixed headline, common for '[Verb] your business [rotating word]' hero patterns. Keep words the same rough length so layout does not jump between swaps.

MIT · magicuiview →
Sparkling highlight text
Sparkling highlight text

Continuous small star sparkles appear and fade around the text, best used sparingly on one badge-like word (e.g. 'Featured', 'New'). Pass a `colors` object to match the sparkle color to brand accent.

MIT · magicuiview →
Morphing word sequence
Morphing word sequence

Liquid letter-morph transition between words in a fixed sequence, more fluid than a hard swap like Word Rotate. Reads as premium/techy, good for a SaaS hero, skip for a local-service business site.

MIT · magicuiview →
Scroll-triggered text reveal
Scroll-triggered text reveal

Pins the section and fades in words one by one as the user scrolls past it, a common long-scroll storytelling pattern. Needs enough vertical scroll room to breathe, do not use inside a short section.

MIT · magicuiview →
Multi-language code block with typing animation
Multi-language code block with typing animation

Dark code card with a language tab switcher, the code types itself in on load and on tab change with a blinking caret, no syntax highlighter dependency, just monospace color and a caret pseudo-element. Great for a developer-facing product page, skip it entirely for local-business or non-technical clients.

pattern · stripe.comview →
Hero ignite (Nav)
Hero ignite (Nav)

Nav's full opener: eyebrow rises, headline lines lift out of masks, orange sweep lands under the emphasis word, sub fades in, CTA cascades, ring pulses. One choreography, ~2.5s.

by FWONview →
Line-mask reveal
Line-mask reveal

Nav's headline signature, ported without SplitText. Each line sits inside its own overflow-hidden mask; a 15-line vanilla splitter measures wraps at layout time so it survives resize.

by FWONview →
Sweep highlight
Sweep highlight

Orange bar sweeps under a keyword to punctuate a headline. Nav uses it under 'THIS IS THE FIX' — a full-stop for the eye.

by FWONview →
CTA ring pulse
CTA ring pulse

Draws the eye to the button after the hero settles: soft ring expands and fades, button bumps 4% in size. One breath, then quiet.

by FWONview →
Card stagger
Card stagger

Group of siblings rises together at 60ms offsets. Use it for stat rows, feature grids, list items entering on scroll.

by FWONview →
Word rise
Word rise

Each word fades in and lifts 14px, 60ms apart. Softer than line-mask — good for body-copy leads and sub-heads.

by FWONview →
Character cascade
Character cascade

Every letter rises 12px with a tiny rotation, 25ms apart. Reserve for short headings (5-8 words max) — it gets busy fast.

by FWONview →
Blur-in reveal
Blur-in reveal

Words come from blur(12px). Feels cinematic without much travel. Cheap on the compositor if you keep the blur below 16px.

by FWONview →
Typewriter with caret
Typewriter with caret

Types out one character per ~50ms with a blinking bar. Slow-feeling — use only when the effect itself IS the moment (product name reveal, hero code sample).

by FWONview →
Decrypt / scramble
Decrypt / scramble

Characters shuffle through random glyphs, then land. Great for numbers, product codes, dashboard headers. Locks left-to-right by default.

by FWONview →
Underline draw on hover
Underline draw on hover

Link underline sweeps in from the left on hover. Nav uses this pattern on nav items — one of those details you notice only when it's not there.

by FWONview →
Highlighter sweep
Highlighter sweep

A soft translucent bar sweeps behind a phrase, like a yellow marker. Slower and softer than the sweep-highlight bar — good inside body copy.

by FWONview →
Glitch text
Glitch text

RGB-split with a stuttering clip. Reserve for one moment — logo reveal, 404 page, a single H1. Any more and it reads as broken.

by FWONview →
Word flip-in (3D)
Word flip-in (3D)

Words rise out of masks with a 40deg X-axis rotation — more cinematic than a flat lift. Nav uses this for the /yeg hero H1. Give it perspective on the parent or the rotation looks flat.

by FWONview →
Ping dot
Ping dot

The 'live now / just shipped' dot. One CSS keyframe. Nav uses it on eyebrows and inside the prompt-receipt header. Best paired with a monospace uppercase label — it inherits the pulse the eye reads as 'active.'

by FWONview →
Ping-dot chip
Ping-dot chip

Chip 23 + a pill wrapper. Slot for status labels above the H1 ('Claude 101 · Edmonton · Sept 17') or category tags. Nav's exact eyebrow pattern.

by FWONview →
Glow border pulse
Glow border pulse

Border color oscillates between two accent tints on a 3s ease-in-out. Perfect for an eyebrow that should catch a scanning eye without motion in position — feels 'alive' without moving.

by FWONview →
Card pop-in
Card pop-in

Cards scale from .92 to 1 with a fade — softer than a Y-lift because there's no vertical travel. Nav's default on stat tiles and score cards. Good for image grids where an upward push would shove things around.

by FWONview →
Breathing dot
Breathing dot

Different from ping (card 23): this pulses opacity + scale together instead of expanding a shadow ring. Softer, slower — 'live now' rather than 'just shipped'. Nav uses it on the /live seat-count chip.

by FWONview →
Dark code card with file tree and typing line
Dark code card with file tree and typing line

Dark editor-style card: window chrome dots, a mock file tree, and a terminal line that types a command on a loop with a blinking block caret. Good as a floating visual next to feature copy; keep the file list to 3-4 rows so it stays legible at card size.

pattern · vercel.comview →

Want your site’s text animations to look this good?

We build full sites with blocks like these.