Icicles
Elemental & Nature · Animated · pure CSS
Frozen crystalline lettering with a band of sharp icicles hanging off the baseline: a cold blue-white gradient fills the glyphs behind a frosty stroke, while a double row of downward spikes at varied lengths reads organic rather than a perfect zigzag. A slow specular glint drifts across the ice for a quiet winter shimmer.
How it works
Icicles is an animated elemental & nature text effect rendered entirely in CSS. It works on a single element — just add the .text-effect class, with no extra HTML.
Controls
Icicles exposes 3 dedicated controls — Ice Hue, Icicle Length and Frost — 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
/* Icicles — made with TEXT-FX · https://text-fx.app
* HTML: just put the class on any element.
* Font: 'Recursive', sans-serif (load from Google Fonts).
*/
.text-effect {
font-family: 'Recursive', sans-serif;
font-weight: 700;
letter-spacing: 0px;
text-transform: uppercase;
}
.text-effect {
position: relative;
background: linear-gradient(180deg, hsl(199 45% 98%) 0%, hsl(199 72% 84%) 44%, hsl(199 82% 66%) 100%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
-webkit-text-stroke: 1.45px hsl(199 40% 100% / 0.63);
filter: drop-shadow(0 0 7.5px hsl(199 88% 78% / 0.29)) drop-shadow(0 0 3.8px hsl(199 88% 78% / 0.29));
}
.text-effect::after {
content: "";
position: absolute;
left: 0;
right: 0;
top: 100%;
margin-top: -0.12em;
height: 0.64em;
pointer-events: none;
background:
linear-gradient(100deg, transparent 42%, hsl(199 50% 100% / 0.55) 50%, transparent 58%),
linear-gradient(180deg, hsl(199 58% 95% / 0.95) 0%, hsl(199 76% 82% / 0.82) 44%, hsl(199 84% 74% / 0.12) 100%);
background-size: 260% 100%, 100% 100%;
background-repeat: no-repeat, no-repeat;
background-position: -60% 0, 0 0;
-webkit-mask-image: conic-gradient(from -20.9deg at 50% 100%, #fff 41.8deg, transparent 0), conic-gradient(from -23.9deg at 50% 100%, #fff 47.8deg, transparent 0);
mask-image: conic-gradient(from -20.9deg at 50% 100%, #fff 41.8deg, transparent 0), conic-gradient(from -23.9deg at 50% 100%, #fff 47.8deg, transparent 0);
-webkit-mask-size: 0.46em 0.64em, 0.3em 0.358em;
mask-size: 0.46em 0.64em, 0.3em 0.358em;
-webkit-mask-repeat: repeat-x, repeat-x;
mask-repeat: repeat-x, repeat-x;
-webkit-mask-position: 0 0, 0.23em 0;
mask-position: 0 0, 0.23em 0;
filter: drop-shadow(0 1px 1.4px hsl(199 85% 62% / 0.45));
animation: text-effect-glint 5s ease-in-out infinite;
}
@keyframes text-effect-glint {
0% { background-position: -60% 0, 0 0; }
32% { background-position: 165% 0, 0 0; }
100% { background-position: 165% 0, 0 0; }
}
Pure CSS — just add the .text-effect class to any element.
- Category
- Elemental & Nature
- Type
- Animated
- Browser support
- background-clip:text + masked conic-gradient icicles (all modern, -webkit- prefixed)
- Capabilities
- pure