File size: 703 Bytes
9b72f0d db78b1a 9b72f0d db78b1a 9b72f0d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import cn from "@utils/classnames.ts";
type LoaderSize = "xs" | "sm" | "md" | "lg";
interface LoaderProps {
className?: string;
size?: LoaderSize;
}
const sizeClasses: Record<LoaderSize, string> = {
xs: "h-3 w-3 border-2",
sm: "h-4 w-4 border-2",
md: "h-8 w-8 border-4",
lg: "h-12 w-12 border-[5px]",
};
export default function Loader({ className = "", size = "md" }: LoaderProps) {
return (
<div className={cn(className, "flex items-center justify-center")}>
<div
className={cn(
"animate-spin rounded-full border-gray-300 border-t-yellow-500 dark:border-gray-600 dark:border-t-yellow-400",
sizeClasses[size]
)}
/>
</div>
);
}
|