Mots qui se retournent et cyclent avec animation slide. Ideal pour les headlines dynamiques.
"use client";
import { useState, useEffect } from "react";
const words = ["beautiful", "modern", "amazing", "creative"];
export default function FlipWords() {
const [index, setIndex] = useState(0);
const [animating, setAnimating] = useState(false);
useEffect(() => {
const timer = setInterval(() => {
setAnimating(true);
setTimeout(() => {
setIndex((i) => (i + 1) % words.length);
setAnimating(false);
}, 300);
}, 3000);
return () => clearInterval(timer);
}, []);
return (
<span style={{
display: "inline-block",
transform: animating ? "translateY(-20px)" : "translateY(0)",
opacity: animating ? 0 : 1,
transition: "transform 0.3s, opacity 0.3s",
}}>
{words[index]}
</span>
);
}Les mots cyclent avec un slide vertical + fade. Ajustez l'intervalle (3000ms), la vitesse de transition (0.3s) et le translateY (-20px). Passez les mots en props pour rendre le composant reutilisable.