sigilUI

Loading Spinner

An animated loading indicator using token-driven colors, sizes, and durations. SVG-based with reduced-motion support.

@sigil-ui/componentsReact

Preview

Live preview Interactive

Import

import { LoadingSpinner } from "@sigil-ui/components";

Usage

<LoadingSpinner />

Sizes

<LoadingSpinner size="sm" />
<LoadingSpinner size="md" />
<LoadingSpinner size="lg" />

Custom color

<LoadingSpinner color="var(--s-primary)" />
<LoadingSpinner color="var(--s-text-muted)" />
<LoadingSpinner color="white" />

Inside a button

<Button disabled>
  <LoadingSpinner size="sm" color="currentColor" />
  Saving...
</Button>

Full-page loading

<div className="flex items-center justify-center min-h-dvh">
  <Stack gap={16} align="center">
    <LoadingSpinner size="lg" />
    <p className="text-[var(--s-text-muted)]">Loading...</p>
  </Stack>
</div>

Token integration

CSS VariableUsed for
--s-primaryDefault spinner color
--s-duration-slowRotation cycle duration
--s-ease-defaultRotation easing

Props

PropTypeDefaultDescription
size"sm" | "md" | "lg""md"Spinner diameter
colorstringvar(--s-primary)Stroke color
classNamestring—Additional CSS classes

Accessibility

  • Renders with role="status" and aria-label="Loading"
  • prefers-reduced-motion replaces animation with a static opacity pulse