Snippets Animation

CSS Animated Text Effects for Bootstrap 5

Six looping animated headline effects, from a gradient shimmer and letter wave to neon glow and bouncing letters, all in pure CSS.

Bootstrap 5 No jQuery Sep 2019 2.2K views

<section class="txt-section wdw-stage"><div class="container">
<header class="text-center mb-5"><span class="wdw-eyebrow mb-3">CSS text effects</span><h1 class="h2 wdw-heading mb-2">Animated text styles</h1><p class="text-body-secondary mb-0">Six looping headline effects built with plain CSS keyframes. Copy the CSS for any of them.</p></header>
<div class="row g-4"><div class="col-md-6 col-lg-4"><div class="card wdw-card border-0 h-100 txt-card"><div class="card-body txt-stage" role="img" aria-label="Web Designer, animated with the gradient shimmer effect"><p class="txt-demo mb-0" aria-hidden="true"><span class="txt-shimmer-t">Web Designer</span></p></div><div class="card-footer bg-transparent border-0 px-4 pb-4 pt-0 d-flex justify-content-between align-items-center gap-2"><span class="fw-semibold text-body-emphasis">Gradient shimmer</span><button type="button" class="btn btn-sm btn-outline-primary rounded-pill px-3 txt-copy" data-effect="shimmer" aria-label="Copy CSS for gradient shimmer effect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5v-2a1.5 1.5 0 00-1.5-1.5H4A1.5 1.5 0 002.5 3.5V9A1.5 1.5 0 004 10.5h1.5"/></svg><span class="txt-copy-label">Copy CSS</span></button></div></div></div><div class="col-md-6 col-lg-4"><div class="card wdw-card border-0 h-100 txt-card"><div class="card-body txt-stage" role="img" aria-label="Web Designer, animated with the wave effect"><p class="txt-demo mb-0" aria-hidden="true"><span class="txt-wave-w"><span style="--i:0">W</span><span style="--i:1">e</span><span style="--i:2">b</span><span class="txt-sp" style="--i:3"> </span><span style="--i:4">D</span><span style="--i:5">e</span><span style="--i:6">s</span><span style="--i:7">i</span><span style="--i:8">g</span><span style="--i:9">n</span><span style="--i:10">e</span><span style="--i:11">r</span></span></p></div><div class="card-footer bg-transparent border-0 px-4 pb-4 pt-0 d-flex justify-content-between align-items-center gap-2"><span class="fw-semibold text-body-emphasis">Wave</span><button type="button" class="btn btn-sm btn-outline-primary rounded-pill px-3 txt-copy" data-effect="wave" aria-label="Copy CSS for wave effect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5v-2a1.5 1.5 0 00-1.5-1.5H4A1.5 1.5 0 002.5 3.5V9A1.5 1.5 0 004 10.5h1.5"/></svg><span class="txt-copy-label">Copy CSS</span></button></div></div></div><div class="col-md-6 col-lg-4"><div class="card wdw-card border-0 h-100 txt-card"><div class="card-body txt-stage" role="img" aria-label="Web Designer, animated with the blur focus effect"><p class="txt-demo mb-0" aria-hidden="true"><span class="txt-blur-w"><span style="--i:0">W</span><span style="--i:1">e</span><span style="--i:2">b</span><span class="txt-sp" style="--i:3"> </span><span style="--i:4">D</span><span style="--i:5">e</span><span style="--i:6">s</span><span style="--i:7">i</span><span style="--i:8">g</span><span style="--i:9">n</span><span style="--i:10">e</span><span style="--i:11">r</span></span></p></div><div class="card-footer bg-transparent border-0 px-4 pb-4 pt-0 d-flex justify-content-between align-items-center gap-2"><span class="fw-semibold text-body-emphasis">Blur focus</span><button type="button" class="btn btn-sm btn-outline-primary rounded-pill px-3 txt-copy" data-effect="blur" aria-label="Copy CSS for blur focus effect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5v-2a1.5 1.5 0 00-1.5-1.5H4A1.5 1.5 0 002.5 3.5V9A1.5 1.5 0 004 10.5h1.5"/></svg><span class="txt-copy-label">Copy CSS</span></button></div></div></div><div class="col-md-6 col-lg-4"><div class="card wdw-card border-0 h-100 txt-card txt-neon" data-bs-theme="dark"><div class="card-body txt-stage" role="img" aria-label="Web Designer, animated with the neon glow effect"><p class="txt-demo mb-0" aria-hidden="true"><span class="txt-neon-t">Web Designer</span></p></div><div class="card-footer bg-transparent border-0 px-4 pb-4 pt-0 d-flex justify-content-between align-items-center gap-2"><span class="fw-semibold text-body-emphasis">Neon glow</span><button type="button" class="btn btn-sm btn-outline-primary rounded-pill px-3 txt-copy" data-effect="neon" aria-label="Copy CSS for neon glow effect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5v-2a1.5 1.5 0 00-1.5-1.5H4A1.5 1.5 0 002.5 3.5V9A1.5 1.5 0 004 10.5h1.5"/></svg><span class="txt-copy-label">Copy CSS</span></button></div></div></div><div class="col-md-6 col-lg-4"><div class="card wdw-card border-0 h-100 txt-card"><div class="card-body txt-stage" role="img" aria-label="Web Designer, animated with the bounce effect"><p class="txt-demo mb-0" aria-hidden="true"><span class="txt-bounce-w"><span style="--i:0">W</span><span style="--i:1">e</span><span style="--i:2">b</span><span class="txt-sp" style="--i:3"> </span><span style="--i:4">D</span><span style="--i:5">e</span><span style="--i:6">s</span><span style="--i:7">i</span><span style="--i:8">g</span><span style="--i:9">n</span><span style="--i:10">e</span><span style="--i:11">r</span></span></p></div><div class="card-footer bg-transparent border-0 px-4 pb-4 pt-0 d-flex justify-content-between align-items-center gap-2"><span class="fw-semibold text-body-emphasis">Bounce</span><button type="button" class="btn btn-sm btn-outline-primary rounded-pill px-3 txt-copy" data-effect="bounce" aria-label="Copy CSS for bounce effect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5v-2a1.5 1.5 0 00-1.5-1.5H4A1.5 1.5 0 002.5 3.5V9A1.5 1.5 0 004 10.5h1.5"/></svg><span class="txt-copy-label">Copy CSS</span></button></div></div></div><div class="col-md-6 col-lg-4"><div class="card wdw-card border-0 h-100 txt-card"><div class="card-body txt-stage" role="img" aria-label="Web Designer, animated with the spaced reveal effect"><p class="txt-demo mb-0" aria-hidden="true"><span class="txt-track-t">Web Designer</span></p></div><div class="card-footer bg-transparent border-0 px-4 pb-4 pt-0 d-flex justify-content-between align-items-center gap-2"><span class="fw-semibold text-body-emphasis">Spaced reveal</span><button type="button" class="btn btn-sm btn-outline-primary rounded-pill px-3 txt-copy" data-effect="track" aria-label="Copy CSS for spaced reveal effect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5v-2a1.5 1.5 0 00-1.5-1.5H4A1.5 1.5 0 002.5 3.5V9A1.5 1.5 0 004 10.5h1.5"/></svg><span class="txt-copy-label">Copy CSS</span></button></div></div></div></div><p class="visually-hidden" role="status" id="txtCopyStatus"></p></div></section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.

Free to use in personal and commercial projects under the MIT license.