Una pausa, justo aquí.

Este contenido aparece al entrar en el área visible.

React + MotionTexte et défilement

Apparition au défilement

Une section qui apparaît en fondu et remonte doucement en entrant à l’écran.

Réglages

28px

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

Où 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.