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.