Spinner
Loading spinner component with variants, sizes and smooth animations for indicating loading states
Installation
Install the Spinner component using the nocta-ui CLI:
npx nocta-ui add spinner
Then import the component:
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...
DefaultLoading...
PrimaryLoading...
SecondarySizes
Three size options are available: sm
, md
, and lg
. The default size is md
.
Loading...
SmallLoading...
MediumLoading...
LargeUsage 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:
<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 readersaria-label="Loading"
to describe the loading state- Hidden "Loading..." text for screen readers via
sr-only
Props
Prop | Type | Default | Description |
---|---|---|---|
size | 'sm' | 'md' | 'lg' | 'md' | Spinner size |
variant | 'default' | 'primary' | 'secondary' | 'default' | Spinner style variant |
className | string | '' | Additional CSS classes |
The Spinner component also accepts all standard HTML div attributes.