import React from "react"; import { cls } from "../util"; import { useInjectStyles } from "../hooks"; export type SkeletonProps = { width?: number; height?: number; className?: string; } const styles = ` @keyframes shimmer { 0% { transform: translateX(-150%); } 100% { transform: translateX(150%); } } `; export function Skeleton({ width, height, className }: SkeletonProps) { useInjectStyles("Skeleton", styles); return ` inside a 40px thumbnail // box used to render a 12px bar. The `width`/`height` props still // win over any class, since those do land inline. width === undefined ? "w-full" : undefined, height === undefined ? "h-3" : undefined, className) }> ; }