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.

Icicles

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

Related Elemental & Nature effects