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