React + MotionLoaders

Skeleton de tarjeta

Un marcador con forma de tarjeta, avatar y líneas de texto que late suavemente mientras llegan los datos.

Ajustes

40px
1.8s

Código

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 para IA

Pégalo en ChatGPT, Claude o Cursor y adaptará el bloque a tu proyecto con estos ajustes, aunque no uses React.

Más en Loaders

Dónde usarlo

Un skeleton loader enseña la forma de lo que va a llegar en vez de un hueco. Imita una fila de perfil con avatar y líneas de texto: va bien en una sección de comentarios, la lista de miembros de una app de equipo o los contactos de un CRM. La página parece más rápida aunque no lo sea.

Haz que el skeleton se parezca lo máximo posible al diseño real, para que nada salte cuando entre el contenido. Usa un tono muy suave del color del texto; con un color fuerte parece un diseño terminado.