Una pausa, justo aquí.
Este contenido aparece al entrar en el área visible.
Apparition au défilement
Une section qui apparaît en fondu et remonte doucement en entrant à l’écran.
Réglages
Code
import { motion } from "framer-motion";
const spring = { type: "spring" as const, stiffness: 300, damping: 30 };
interface ScrollRevealProps {
distance?: number;
/** true: caja de demo con scroll propio. false: solo la sección, que aparece con el scroll de la página. */
contained?: boolean;
}
export default function ScrollReveal({
distance = 28,
contained = true,
}: ScrollRevealProps) {
// whileInView observa el viewport y tiene en cuenta el recorte del contenedor, así sirve en ambos modos.
const section = (
<motion.div
initial={{ opacity: 0, y: distance }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: false, amount: 0.6 }}
transition={spring}
className="rounded-[22px] bg-white dark:bg-[#1c1c1e] p-6 text-[#1d1d1f] dark:text-[#f5f5f7] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)]"
>
<h3 className="text-lg font-semibold sm:text-xl">Une pause, juste ici.</h3>
<p className="mt-2 text-sm text-[#86868b]">Ce contenu apparaît lorsqu’il entre dans la zone visible.</p>
</motion.div>
);
if (!contained) return section;
return (
<div className="h-60 w-full overflow-y-auto rounded-2xl bg-black/5 p-5 dark:bg-white/10">
<div className="h-24" />
{section}
<div className="h-32" />
</div>
);
}
Prompt pour l’IA
Collez-le dans ChatGPT, Claude ou Cursor : le bloc sera adapté à votre projet avec ces réglages, même sans React.
Plus dans Texte et défilement
Voir tout : Texte et défilementOù l’utiliser
Une apparition douce au scroll donne du rythme aux pages longues, comme si chaque partie arrivait au moment où on l’atteint. Elle convient aux étapes d’un « Comment ça marche », aux témoignages d’un site de coaching ou aux chapitres d’une longue page de vente. Utilisée avec cette discrétion, une animation fade-in au défilement accompagne la lecture au lieu de la couper.
Gardez une petite distance, 20 à 30 pixels ; au-delà, on croirait que la page charge en retard. N’animez pas chaque paragraphe mais des sections entières, et laissez le premier écran immobile pour que rien ne soit caché à l’ouverture.