NOCTA UI

Spinner

Loading spinner component with variants, sizes and smooth animations for indicating loading states

Installation

Install the Spinner component using the nocta-ui CLI:

Terminal
npx nocta-ui add spinner

Then import the component:

Import
import { Spinner } from '@/components/ui/spinner';

Basic Usage

Default Spinner

Loading...

Primary Spinner

Loading...

Secondary Spinner

Loading...

Variants

The Spinner component supports three variants: default, primary, and secondary.

Loading...
Default
Loading...
Primary
Loading...
Secondary

Sizes

Three size options are available: sm, md, and lg. The default size is md.

Loading...
Small
Loading...
Medium
Loading...
Large

Usage Examples

Loading Button

Inline Spinner

Loading...
Processing your request...

Customization

Custom Colors

Loading...
Loading...
Loading...
Loading...
Loading...

Custom Styling

The Spinner component accepts a className prop for custom styling:

Custom Styling
<Spinner className="w-10 h-10 border-4" />

<Spinner className="text-indigo-600 animate-pulse" />

<Spinner className="border-gradient-to-r from-purple-400 to-pink-400" />

Accessibility

The Spinner component includes proper accessibility attributes:

  • role="status" for screen readers
  • aria-label="Loading" to describe the loading state
  • Hidden "Loading..." text for screen readers via sr-only

Props

PropTypeDefaultDescription
size'sm' | 'md' | 'lg''md'Spinner size
variant'default' | 'primary' | 'secondary''default'Spinner style variant
classNamestring''Additional CSS classes

The Spinner component also accepts all standard HTML div attributes.