Spinner
Spinner displays an animated loading indicator with a visually hidden “Loading” label for accessibility.
Basic Usage
Loading
import { Spinner } from "@paramanu/feedback-react"
export default function App() {return <Spinner />}<div class="pm-spinner pm-spinner--md pm-spinner--primary" role="status"><span class="sr-only">Loading</span></div>Sizes
import { Spinner } from "@paramanu/feedback-react"
export default function App() {return ( <div style={{ display: "flex", gap: "16px", alignItems: "center" }}> <Spinner size="xs" /> <Spinner size="sm" /> <Spinner size="md" /> <Spinner size="lg" /> <Spinner size="xl" /> </div>)}<div style="display: flex; gap: 16px; align-items: center;"><div class="pm-spinner pm-spinner--xs pm-spinner--primary" role="status"></div><div class="pm-spinner pm-spinner--sm pm-spinner--primary" role="status"></div><div class="pm-spinner pm-spinner--md pm-spinner--primary" role="status"></div><div class="pm-spinner pm-spinner--lg pm-spinner--primary" role="status"></div><div class="pm-spinner pm-spinner--xl pm-spinner--primary" role="status"></div></div>Accessibility
- Uses
role="status"for live region announcements - Contains visually hidden “Loading” text for screen readers
Best Practices
- Use inside buttons during loading states
- Match spinner size with its context (xs for inline, lg for full-page)
- Use neutral variant on colored backgrounds
React Props
| Prop | Type | Default | Description |
|---|---|---|---|
size | "xs" | "sm" | "md" | "lg" | "xl" | "md" | Spinner diameter |
variant | "primary" | "neutral" | "primary" | Color variant |