OdysseyUI

Text Shimmer Wave

3D wave shimmer effect that ripples a color flash through each character sequentially with perspective transforms.

Loading...

Installation

Usage

import { TextShimmerWave } from '@/components/odysseyui/text-shimmer-wave';

export default function Page() {
  return (
    <TextShimmerWave
      color="#a1a1aa"
      shimmerColor="#ffffff"
      duration={1}
      spread={1}
      className="text-4xl font-semibold"
    >
      Odyssey UI
    </TextShimmerWave>
  );
}

How It Works

  • Each character is wrapped in an individual motion.span that animates on its own staggered delay.
  • The wave is created by offsetting each character's animation start by (i * duration) / (text.length * spread).
  • spread controls how many wave cycles fit across the full text at once — higher values compress the wave.
  • zDistance, xDistance, and yDistance define the 3D translation peak at the top of each character's wave.
  • scaleDistance briefly scales up the character at the shimmer peak.
  • rotateYDistance tilts the character on its Y axis for a 3D flip feel.
  • The color and shimmerColor animate between base and highlight at the same cadence.

API Reference

TextShimmerWave

PropTypeDefault
children
string
-
as?
React.ElementType
"p"
className?
string
-
color?
string
"#a1a1aa"
shimmerColor?
string
"#ffffff"
duration?
number
1
zDistance?
number
10
xDistance?
number
2
yDistance?
number
-2
spread?
number
1
scaleDistance?
number
1.1
rotateYDistance?
number
10
transition?
Transition
-

Built by Shr3kx & iam-sahil. The source code is available on GitHub.

Last updated: 3/26/2026