Falling Letters
Entrance & Kinetic · Animated · pure CSS
Letters drop in from above, squash on landing and settle, staggered by index. A bouncy gravity entrance (per-letter markup).
CSS
/* Falling Letters — generated with TEXT-FX
* HTML: each character is wrapped in a <span> — see the HTML export.
* Font: 'Recursive', sans-serif (load from Google Fonts).
*/
.text-effect {
font-family: 'Recursive', sans-serif;
font-weight: 700;
letter-spacing: -1px;
text-transform: uppercase;
}
.text-effect {
color: hsl(187 75% 72%);
white-space: pre;
}
.text-effect .fx-ch {
display: inline-block;
transform-origin: 50% 100%;
animation: text-effect-fall 0.97s cubic-bezier(0.3, 0.7, 0.4, 1) both;
animation-delay: calc(var(--i) * 98ms);
}
@keyframes text-effect-fall {
0% { transform: translateY(-120%); opacity: 0; }
55% { opacity: 1; }
70% { transform: translateY(0); }
82% { transform: translateY(0) scale(1.12, 0.82); }
92% { transform: translateY(0) scale(0.96, 1.05); }
100% { transform: translateY(0) scale(1, 1); }
}
HTML
This effect needs the markup below (per-letter spans, SVG defs, or a data-text attribute).
<style>
.text-effect {
font-family: 'Recursive', sans-serif;
font-weight: 700;
letter-spacing: -1px;
text-transform: uppercase;
}
.text-effect {
color: hsl(187 75% 72%);
white-space: pre;
}
.text-effect .fx-ch {
display: inline-block;
transform-origin: 50% 100%;
animation: text-effect-fall 0.97s cubic-bezier(0.3, 0.7, 0.4, 1) both;
animation-delay: calc(var(--i) * 98ms);
}
@keyframes text-effect-fall {
0% { transform: translateY(-120%); opacity: 0; }
55% { opacity: 1; }
70% { transform: translateY(0); }
82% { transform: translateY(0) scale(1.12, 0.82); }
92% { transform: translateY(0) scale(0.96, 1.05); }
100% { transform: translateY(0) scale(1, 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
- Entrance & Kinetic
- Type
- Animated
- Browser support
- All modern browsers
- Capabilities
- perLetter