Spinner
An indicator that can be used to show a loading state.
Demo
Loading...
Loading...
Loading...
Dependencies
clsxtailwind-merge
Props
This is a base primitive. It accepts standard HTML attributes plus className for styling via cn().
Source
import { cn } from "@/lib/utils";
export interface SpinnerProps {
size?: "sm" | "md" | "lg";
className?: string;
}
const sizeMap = {
sm: "h-4 w-4 border",
md: "h-6 w-6 border-2",
lg: "h-8 w-8 border-2",
};
export function Spinner({ size = "md", className }: SpinnerProps) {
return (
<div
className={cn(
"animate-spin rounded-full border-gray-200 border-t-gray-900",
sizeMap[size],
className,
)}
role="status"
aria-label="Loading"
>
<span className="sr-only">Loading...</span>
</div>
);
}
CLI
npx genui add spinner