Decode Reveal

Entrance & Kinetic · Animated · pure CSS

Each letter resolves out of a blurred, skewed, jittering state into crisp type, staggered so a decode sweep runs across the word. A pure-CSS staged glitch entrance (not a random-glyph scramble).

D e c o d e   R e v e a l

How it works

Decode Reveal is an animated entrance & kinetic text effect rendered entirely in CSS. Each character is wrapped in its own span so it can animate independently — the HTML and JSX exports include that per-letter markup.

Controls

Decode Reveal exposes 4 dedicated controls — Hue, Duration, Stagger and Glitch Tint — on top of the shared type controls (font, weight, letter-spacing and case). Open it in the generator to tune every value live, then copy the updated CSS.

CSS

/* Decode Reveal — generated with TEXT-FX
 * HTML: each character is wrapped in a <span> — see the HTML export.
 * Font: 'Bungee', cursive (load from Google Fonts).
 */

.text-effect {
  font-family: 'Bungee', cursive;
  font-weight: 700;
  letter-spacing: 8px;
  text-transform: uppercase;
}

.text-effect {
  color: hsl(9 35% 86%);
  white-space: pre;
}
.text-effect .fx-ch {
  display: inline-block;
  animation: text-effect-decode 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: calc(var(--i) * 0.09s);
}

@keyframes text-effect-decode {
  0% { filter: blur(6px); opacity: 0; transform: translateY(-0.16em) skewX(-14deg); }
  35% { filter: blur(3px); opacity: 1; transform: translateY(0.05em) skewX(10deg); }
  60% { filter: blur(1.5px); transform: translateX(0.06em) skewX(-5deg); }
  82% { filter: blur(0.4px); transform: translateX(-0.02em) skewX(2deg); }
  100% { filter: blur(0); opacity: 1; transform: none; }
}

HTML

This effect needs the markup below (per-letter spans, SVG defs, or a data-text attribute).

<style>
.text-effect {
  font-family: 'Bungee', cursive;
  font-weight: 700;
  letter-spacing: 8px;
  text-transform: uppercase;
}

.text-effect {
  color: hsl(9 35% 86%);
  white-space: pre;
}
.text-effect .fx-ch {
  display: inline-block;
  animation: text-effect-decode 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: calc(var(--i) * 0.09s);
}

@keyframes text-effect-decode {
  0% { filter: blur(6px); opacity: 0; transform: translateY(-0.16em) skewX(-14deg); }
  35% { filter: blur(3px); opacity: 1; transform: translateY(0.05em) skewX(10deg); }
  60% { filter: blur(1.5px); transform: translateX(0.06em) skewX(-5deg); }
  82% { filter: blur(0.4px); transform: translateX(-0.02em) skewX(2deg); }
  100% { filter: blur(0); opacity: 1; transform: none; }
}
</style>

<div class="text-effect">
  <span class="fx-ch" style="--i:0;--n:9;--rev:8;--mid:4">Y</span>
  <span class="fx-ch" style="--i:1;--n:9;--rev:7;--mid:4">o</span>
  <span class="fx-ch" style="--i:2;--n:9;--rev:6;--mid:4">u</span>
  <span class="fx-ch" style="--i:3;--n:9;--rev:5;--mid:4">r</span>
  <span class="fx-ch" style="--i:4;--n:9;--rev:4;--mid:4"> </span>
  <span class="fx-ch" style="--i:5;--n:9;--rev:3;--mid:4">t</span>
  <span class="fx-ch" style="--i:6;--n:9;--rev:2;--mid:4">e</span>
  <span class="fx-ch" style="--i:7;--n:9;--rev:1;--mid:4">x</span>
  <span class="fx-ch" style="--i:8;--n:9;--rev:0;--mid:4">t</span>
</div>
Category
Entrance & Kinetic
Type
Animated
Browser support
All modern browsers
Capabilities
perLetter

Related Entrance & Kinetic effects