SnowballSH Foundation UI

Spinner

Pick a framework. Both use the same recipe, so the styling matches exactly.

LoadingLoadingRespects reduced motion.
Spinner props for React
PropTypeDefaultDescription
size"sm" | "md"mdDiameter.
labelstringLoadingScreen reader text.

Also takes className and children. Anything else passes through to the span.

spinner.demo.tsx
import { Spinner } from "../react/index.js";

export default function SpinnerDemo() {
  return (
    <div className="flex items-center gap-6">
      <Spinner size="sm" />
      <Spinner size="md" />
      <span className="text-sm text-ink-secondary">
        Respects reduced motion.
      </span>
    </div>
  );
}