React + MotionLoaders

Skeleton de alojamiento

Un marcador con forma de anuncio de alojamiento: foto, título, zona y precio, con un brillo que cruza la imagen.

Ajustes

1.6s

Código

import { motion } from "framer-motion";

interface StaySkeletonProps {
  /** Segundos que tarda el brillo en cruzar la foto. */
  speed?: number;
}

export default function StaySkeleton({
  speed = 1.6,
}: StaySkeletonProps) {
  return (
    <div aria-busy="true" className="w-full max-w-64 space-y-3">
      <div className="relative aspect-[4/3] overflow-hidden rounded-2xl bg-black/5 dark:bg-white/10">
        <motion.div
          className="absolute inset-0 bg-[linear-gradient(90deg,transparent,rgba(29,29,31,0.08),transparent)] bg-[length:200%_100%] dark:bg-[linear-gradient(90deg,transparent,rgba(245,245,247,0.08),transparent)]"
          animate={{ backgroundPosition: ["200% 0", "-200% 0"] }}
          transition={{ duration: speed, repeat: Infinity, ease: "linear" }}
        />
      </div>
      <div className="h-3 w-4/5 rounded-full bg-black/5 dark:bg-white/10" />
      <div className="h-3 w-2/5 rounded-full bg-black/5 dark:bg-white/10" />
      <div className="h-3 w-1/3 rounded-full bg-black/5 dark:bg-white/10" />
    </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

Las webs de reservas y los marketplaces viven de rejillas de anuncios, y esas fotos tardan un momento en cargar. Este skeleton reproduce la ficha típica de un apartamento turístico, un hotel o un piso en venta: una imagen grande y debajo las líneas de título, zona y precio. Llena la rejilla con ellos y la página conserva su forma.

Enseña tantos skeletons como resultados esperas, no solo uno, para que el diseño no se recoloque después. El brillo pasa solo por la foto a propósito; con las líneas de texto quietas, la rejilla resulta más tranquila.