Hollow neon tubes light up one letter at a time, hold, then switch off in the same order, like a casino marquee. Stroke-only letters get their glow from drop-shadow filters.
Also known as: neon outline text css, hollow neon letters, neon letters lighting up.
<div class="txt-neon-outline-chase" aria-label="ARCADE"><span style="--i: 0">A</span><span style="--i: 1">R</span><span style="--i: 2">C</span><span style="--i: 3">A</span><span style="--i: 4">D</span><span style="--i: 5">E</span></div>
.txt-neon-outline-chase {
--c: var(--txt-color, #3b82f6);
font-size: var(--txt-size, 32px);
font-family: system-ui, sans-serif;
font-weight: 700;
line-height: 1.2;
font-weight: 800;
letter-spacing: 0.1em;}
.txt-neon-outline-chase span {
display: inline-block;
color: transparent;
-webkit-text-stroke: 0.035em color-mix(in srgb, var(--c) 75%, #fff);
filter: drop-shadow(0 0 0.06em var(--c)) drop-shadow(0 0 0.18em var(--c));
opacity: 0.3;
animation: txt-neon-outline-chase-light 3.2s steps(1, end) infinite;
animation-delay: calc(var(--i) * 0.14s);
}
@keyframes txt-neon-outline-chase-light {
0%, 10%, 62%, 100% { opacity: 0.3; }
6%, 12% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
.txt-neon-outline-chase, .txt-neon-outline-chase *, .txt-neon-outline-chase::before, .txt-neon-outline-chase::after, .txt-neon-outline-chase *::before, .txt-neon-outline-chase *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}--txt-color on the element or a parent.
Currently previewing #3b82f6.--txt-size. Every other dimension is in
em, so the whole thing scales together. Currently previewing 40px.transition or animation
shorthand. Staggered delays are relative, so they keep their rhythm.