Weight Ripple

Interactive & Advanced · Static · pure CSS

Hovering sends a wave of boldness sweeping through the letters via per-letter variable-font weight transitions — a ripple of weight, no JavaScript.

W e i g h t   R i p p l e

How it works

Weight Ripple is a static interactive & advanced 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

Weight Ripple exposes 2 dedicated controls — Hue and Stagger — 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

/* Weight Ripple — 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: -2px;
  text-transform: none;
}

.text-effect {
  color: hsl(87 55% 80%);
  white-space: pre;
  cursor: pointer;
}
.text-effect .fx-ch {
  display: inline-block;
  font-variation-settings: 'wght' 700;
  transition: font-variation-settings 0.32s ease;
  transition-delay: calc(var(--i) * 38ms);
}
.text-effect:hover .fx-ch {
  font-variation-settings: 'wght' 1000;
}

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: -2px;
  text-transform: none;
}

.text-effect {
  color: hsl(87 55% 80%);
  white-space: pre;
  cursor: pointer;
}
.text-effect .fx-ch {
  display: inline-block;
  font-variation-settings: 'wght' 700;
  transition: font-variation-settings 0.32s ease;
  transition-delay: calc(var(--i) * 38ms);
}
.text-effect:hover .fx-ch {
  font-variation-settings: 'wght' 1000;
}
</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
Interactive & Advanced
Type
Static
Browser support
Variable-font wght ripples through letters on :hover (per-letter delay) — static preview is the resting weight.
Capabilities
perLetter

Related Interactive & Advanced effects