Text Animations

Lumen

Copy that lights up as you read it — words ahead sit dim and unfocused, and stay lit once you pass them.

Install

bun add motion clsx tailwind-merge

Then copy 2 files into your project:

  • components/registry/lumen/lumen.tsx
  • lib/utils.ts

Props

PropTypeDefaultDescription
dimOpacitynumber0.15Opacity of words that haven't been reached yet.
fadeSpannumber6Width of the reading band — words mid-transition at once.
blurAmountnumber4Blur on a word that hasn't been reached.
startOffsetnumber0.15Point in the scroll pass where the first word brightens.
endOffsetnumber0.6Point by which the last word is fully lit.
highlightColorstring (hex)"#a855f7"Amethyst bloom on the leading edge.

What It Demonstrates

Scroll-driven animation
An animation whose progress is tied directly to scroll position.
Scroll reveal
Elements fade or slide into place as they enter the viewport.
Stagger
Animate several items one after another with a small delay between each, creating a cascade.
Interpolation / Tween
Generating all the in-between frames between a start and end value, so motion is continuous.
Blur
A blur filter used to soften an element or mask tiny imperfections.
Purposeful animation
Motion should serve a function — orient, give feedback, show relationships — not just decorate.

Related Components

Appears In