React + MotionLoaders

Skeleton de carte

Un espace réservé en forme de carte, avec avatar et lignes de texte, qui pulse doucement pendant le chargement.

Réglages

40px
1.8s

Code

import { motion } from "framer-motion";

interface SkeletonCardProps {
  color?: string;
  /** Tamaño del avatar en px. */
  size?: number;
  /** Duración de un pulso en segundos. */
  speed?: number;
}

export default function SkeletonCard({
  color = "#86868b",
  size = 40,
  speed = 1.8,
}: SkeletonCardProps) {
  return (
    <motion.div
      aria-busy="true"
      className="w-56 rounded-3xl bg-white p-4 shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)] dark:bg-[#1c1c1e]"
      animate={{ opacity: [1, 0.4, 1] }}
      transition={{ duration: speed, repeat: Infinity, ease: "easeInOut" }}
    >
      <div className="flex items-center gap-3">
        <div
          className="rounded-full"
          style={{ width: size, height: size, backgroundColor: color }}
        />
        <div className="flex-1 space-y-2">
          <div className="h-2.5 rounded-full" style={{ backgroundColor: color, width: "70%" }} />
          <div className="h-2.5 rounded-full" style={{ backgroundColor: color, width: "40%" }} />
        </div>
      </div>
      <div className="mt-4 space-y-2">
        <div className="h-2.5 rounded-full" style={{ backgroundColor: color }} />
        <div className="h-2.5 rounded-full" style={{ backgroundColor: color, width: "85%" }} />
        <div className="h-2.5 rounded-full" style={{ backgroundColor: color, width: "60%" }} />
      </div>
    </motion.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 Loaders

Où l’utiliser

Un skeleton loader montre la forme de ce qui arrive au lieu d’un vide. Celui-ci imite une ligne de profil avec un avatar et quelques lignes de texte : il convient à un espace de commentaires, à la liste des membres d’une appli d’équipe ou aux contacts d’un CRM. La page paraît plus rapide, même quand elle ne l’est pas.

Calquez le skeleton sur la mise en page réelle autant que possible, pour que rien ne saute à l’arrivée du contenu. Choisissez une teinte très claire de la couleur du texte ; trop soutenue, elle ressemble à un design fini.