Animations/Blur Text Reveal

Blur Text Reveal

Texte qui se revele en deblurrant caractere par caractere. Effet cinematique.

scrollCSStextrevealblur
Trigger: Scroll (IntersectionObserver)
CSS requis: Non
Difficulte: easy

Preview live

Code

"use client";
// Texte qui se deblurre caractere par caractere

{text.split("").map((char, i) => (
  <span key={i} style={{
    display: "inline-block",
    filter: visible ? "blur(0px)" : "blur(12px)",
    opacity: visible ? 1 : 0,
    transition: `filter 0.4s ease ${i * 15}ms, opacity 0.4s ease ${i * 15}ms`,
  }}>
    {char === " " ? "\u00A0" : char}
  </span>
))}

// Trigger avec IntersectionObserver
useEffect(() => {
  const obs = new IntersectionObserver(([e]) => {
    if (e.isIntersecting) setVisible(true);
  }, { threshold: 0.3 });
  obs.observe(ref.current);
}, []);

Instructions

Chaque caractere commence avec blur(12px) + opacity 0. Le delay stagger (15ms par char) cree l'effet en cascade. Declenche par IntersectionObserver. Ajustez le blur, la duree (0.4s) et le stagger.