Blur Text

A text animation that reveals words or letters with a blur-in effect using Framer Motion

Preview
Source Code

Hello World

Overview

BlurText animates text by splitting it into words or individual letters, then revealing each segment with a smooth blur-to-clear transition. Supports customizable direction, delay, easing, and multi-step keyframe animations.

Features

  • Animate by words or letters — choose your split granularity
  • IntersectionObserver — triggers only when visible in viewport
  • Multi-step keyframes — blur → semi-blur → clear with configurable steps
  • Custom easing — pass any Framer Motion easing function

Usage

import BlurText from '@/components/blur-text'

<BlurText
  text="Hello World"
  delay={150}
  animateBy="words"
  direction="top"
  className="text-4xl font-bold"
/>

Props

PropTypeDefaultDescription
textstring''The text content to animate
delaynumber200Delay between each word/letter animation (ms)
animateBy'words' | 'letters''words'Split text by words or individual letters
direction'top' | 'bottom''top'Direction of the blur-in entrance
thresholdnumber0.1IntersectionObserver visibility threshold
classNamestring''CSS class for the container
stepDurationnumber0.35Duration of each animation step (seconds)
onAnimationComplete() => voidCallback when animation finishes

On this page