Letter Flicker

Neon & Glow · Animated · pure CSS

A worn neon sign where every tube blinks on its own clock: per-letter delays and duration buckets keep the flicker desynced instead of pulsing as one word. One letter, picked from the text itself, reads as the dying tube — it stutters harder and holds a long dark dwell while the rest of the sign keeps glowing steady.

Letter Flicker

How it works

Letter Flicker is an animated neon & glow 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

Letter Flicker exposes 4 dedicated controls — Hue, Speed, Dropout and Dying Letter — 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

/* Letter Flicker — made with TEXT-FX · https://text-fx.app
 * HTML: each character is wrapped in a <span> — see the HTML export.
 * Font: 'Unbounded', sans-serif (load from Google Fonts).
 */

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

.text-effect {
  color: hsl(134 25% 95%);
  white-space: pre;
}
.text-effect .fx-ch {
  display: inline-block;
  text-shadow: 0 0 3px hsl(134 25% 95%), 0 0 9px hsl(134 70% 60%), 0 0 18px hsl(148 75% 52%), 0 0 36px hsl(162 60% 40%);
  animation: text-effect-flicker 4.3s steps(1, end) infinite;
  animation-delay: calc(var(--i) * -0.67s);
}
.text-effect .fx-ch:nth-child(3n+1) { animation-duration: 3.44s; }
.text-effect .fx-ch:nth-child(3n+2) { animation-duration: 5.07s; }
.text-effect .fx-ch:nth-child(4n) { animation-duration: 6.11s; }
.text-effect .fx-ch:nth-child(6) {
  animation: text-effect-dying 7.31s steps(1, end) infinite;
  animation-delay: calc(var(--i) * -0.31s);
}

@keyframes text-effect-flicker {
  0%, 100% { opacity: 1; }
  4% { opacity: 0.57; }
  6% { opacity: 1; }
  47% { opacity: 1; }
  49% { opacity: 0.25; }
  52% { opacity: 1; }
  91% { opacity: 1; }
  93% { opacity: 0.57; }
  95% { opacity: 1; }
}
@keyframes text-effect-dying {
  0%, 30% { opacity: 1; }
  32% { opacity: 0.02; }
  35% { opacity: 1; }
  38% { opacity: 0.02; }
  41% { opacity: .7; }
  44% { opacity: 0.02; }
  50%, 60.5% { opacity: 0.02; }
  63.5% { opacity: 1; }
  80% { opacity: 1; }
  82% { opacity: 0.02; }
  85%, 100% { opacity: 1; }
}

HTML

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

<!-- Made with TEXT-FX · https://text-fx.app -->

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

.text-effect {
  color: hsl(134 25% 95%);
  white-space: pre;
}
.text-effect .fx-ch {
  display: inline-block;
  text-shadow: 0 0 3px hsl(134 25% 95%), 0 0 9px hsl(134 70% 60%), 0 0 18px hsl(148 75% 52%), 0 0 36px hsl(162 60% 40%);
  animation: text-effect-flicker 4.3s steps(1, end) infinite;
  animation-delay: calc(var(--i) * -0.67s);
}
.text-effect .fx-ch:nth-child(3n+1) { animation-duration: 3.44s; }
.text-effect .fx-ch:nth-child(3n+2) { animation-duration: 5.07s; }
.text-effect .fx-ch:nth-child(4n) { animation-duration: 6.11s; }
.text-effect .fx-ch:nth-child(6) {
  animation: text-effect-dying 7.31s steps(1, end) infinite;
  animation-delay: calc(var(--i) * -0.31s);
}

@keyframes text-effect-flicker {
  0%, 100% { opacity: 1; }
  4% { opacity: 0.57; }
  6% { opacity: 1; }
  47% { opacity: 1; }
  49% { opacity: 0.25; }
  52% { opacity: 1; }
  91% { opacity: 1; }
  93% { opacity: 0.57; }
  95% { opacity: 1; }
}
@keyframes text-effect-dying {
  0%, 30% { opacity: 1; }
  32% { opacity: 0.02; }
  35% { opacity: 1; }
  38% { opacity: 0.02; }
  41% { opacity: .7; }
  44% { opacity: 0.02; }
  50%, 60.5% { opacity: 0.02; }
  63.5% { opacity: 1; }
  80% { opacity: 1; }
  82% { opacity: 0.02; }
  85%, 100% { opacity: 1; }
}
</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
Neon & Glow
Type
Animated
Browser support
All modern browsers
Capabilities
perLetter

Related Neon & Glow effects