CSS text animations

Reveals, shimmers, glitches and per-letter staggers.

Text animation is the effect most likely to hurt: it delays the one thing on the page somebody came to read. The ones worth using either finish inside about 600ms or apply to a heading nobody is mid-sentence on. Everything here keeps the text in the DOM as text — no images, no canvas — so it stays selectable, translatable and readable by a screen reader.

43 matching43 effectsFree to copy

Bold heading text filled with a flowing five-color gradient that scrolls continuously.

Glitch Text

Featured

Cyberpunk-style distorted text with two clip-pathed colored ghosts that shift independently.

Typewriter

Featured

Mono-spaced text that types itself out character by character with a blinking caret, then re-types.

White text surrounded by layered cyan shadows that flicker like an old neon sign.

Shimmer Text

Featured

Subtle slate text with a bright gold highlight band that sweeps across continuously.

Bold white text built up from six magenta shadow layers, creating a chunky retro 3D extrusion that lifts on hover.

Each letter bounces up and down with a staggered delay, producing a rolling wave across the word.

Text filled with a multi-color gradient that pans across the letters and pauses, then sweeps back to repeat.

Bold text filled with an indigo-to-pink gradient, lifted off the page by a soft colored drop-shadow.

ASCII Rain

Featured

A noise field resolved as monospace glyphs, ordered by ink coverage, with per-column drops falling through it. Canvas 2D, so the ramp is a string you can edit.

Static ocean gradient text via background-clip.

Text filled with an animated ocean gradient that flows horizontally.

Blue text with a layered glow halo.

Link text whose ocean gradient underline grows in from the left on hover.

Hero headline with light travelling through the letters — background-clip: text over a moving ocean gradient.

Blue headline that resolves out of a blur while its tracking tightens — the current default for hero copy.

Muted type that floods with blue left-to-right on hover, by animating background-size behind clipped text.

Inline link whose blue rule draws in from the left. Responds to keyboard focus as well as hover.

Gradient-clipped headline whose letters drop in one at a time and lift individually on hover.

Width stepped in whole characters with `steps()` and a caret blinking on its own cycle, so the cursor keeps ticking while the text is paused.

A stack of words rolled behind a one-line window, holding on each long enough to read before the next snaps up.

Translucent bar swept behind a real `<mark>`, sitting slightly proud of the baseline so it reads as ink rather than a background box.

Hollow display type with a filled copy in `::after` reading the same string from `data-text`, wiped in on hover so the two never disagree.

Characters riding one sine on a fixed phase offset, so the word ripples continuously instead of bouncing as a block.

Showing 24 of 43. Search the rest →

Questions about css text animations

How do the per-letter ones work without JavaScript?
The markup wraps each letter in a span with an incrementing custom property, and the CSS uses it as an `animation-delay` multiplier. You do have to split the text — either in your template or with one line of JS — but nothing about the animation itself needs a runtime.
Will a reveal animation hurt my LCP?
It can. If the heading is your largest contentful paint, an animation that starts at `opacity: 0` delays LCP by its full duration. Animate a transform from a nearly-visible state instead, or leave the hero heading alone and animate what follows it.
Are these css text animations free to use?
All 43 are free to copy and use in your own projects, including commercial ones. A Pro licence exists for redistribution — shipping them inside a product other people buy — and the full terms are on the licence page.
How do I add one to my project?
Copy the CSS and the markup from the artifact's page — there is nothing to install, no runtime and no build step. The CLI (`npx hoverlab add`) is there for the component tiers above these, where a file gets written rather than pasted.