Ideasthatfeelnatural

React + MotionText & scroll

Word by word headline

Each word of the headline comes into focus in turn, rising slightly as the blur clears.

Settings

0.08s

Code

import { motion } from "framer-motion";

const spring = { type: "spring" as const, stiffness: 300, damping: 30 };

interface WordRevealProps {
  text?: string;
  /** Segundos entre palabra y palabra. */
  delay?: number;
}

export default function WordReveal({
  text = "Ideas that feel natural",
  delay = 0.08,
}: WordRevealProps) {
  return (
    <h2 className="max-w-lg text-center text-2xl font-semibold text-[#1d1d1f] dark:text-[#f5f5f7] sm:text-3xl">
      {text.split(" ").map((word, i) => (
        <motion.span
          key={`${word}-${i}`}
          className="mr-2 inline-block"
          initial={{ opacity: 0, filter: "blur(10px)", y: 10 }}
          animate={{ opacity: 1, filter: "blur(0px)", y: 0 }}
          transition={{ ...spring, delay: i * delay }}
        >
          {word}
        </motion.span>
      ))}
    </h2>
  );
}

Prompt for AI

Paste it into ChatGPT, Claude or Cursor and it will adapt the block to your project with these settings, even if you don’t use React.

More in Text & scroll

Where to use it

Apple keynotes made this reveal famous, and it still works for the one sentence you want people to actually read: the hero line of a product launch, the opening of an event page or the manifesto on an agency’s home page. The text animation plays word by word, so the reader’s eye follows it naturally.

Use it once per page, on a short headline of four to eight words. Long paragraphs take ages to appear and become annoying. An interval near 0.08 seconds keeps the rhythm lively without making anyone wait.