Nusa UINusa UI

A loading indicator for asynchronous operations.

registry/examples/spinner-demo.tsx
import { Spinner } from "@/registry/ui/spinner"

export default function SpinnerDemo() {

Installation

pnpmnpmyarnbun
pnpm dlx shadcn@latest add https://nusa-ui.vercel.app/r/spinner.json

Usage

import { Spinner } from "@/components/ui/spinner"
<Spinner />

Examples

Sizes

Use the className prop to adjust the size.

registry/examples/spinner-sizes.tsx
import { Spinner } from "@/registry/ui/spinner"

export default function SpinnerSizes() {

Button with Loading State

registry/examples/spinner-button.tsx
"use client"

import * as React from "react"

API Reference

Spinner

PropTypeDefaultDescription
classNamestring-Additional CSS classes
aria-labelstring"Loading"Accessible label

All standard SVG props are also supported.

Accessibility

  • Uses role="status" for screen readers
  • Includes aria-label="Loading" for context