react-spinner-loader provides simple React.js spinner component which can be implemented for async wait operation before data load to the view.
Simple, lightweight React SVG spinner components
Perfect for async operations and loading states
npm install react-loader-spinner
Or using yarn:
yarn add react-loader-spinner
import { Audio } from 'react-loader-spinner'
function App() {
return (
<Audio
height="80"
width="80"
color="#4fa94d"
ariaLabel="audio-loading"
wrapperStyle={{}}
wrapperClass="wrapper-class"
visible={true}
/>
)
}
Visit our complete documentation for:
import { Oval } from 'react-loader-spinner'
;<Oval
height={80}
width={80}
color="#4fa94d"
visible={true}
ariaLabel="oval-loading"
secondaryColor="#4fa94d"
strokeWidth={2}
strokeWidthSecondary={2}
/>
import { ThreeDots } from 'react-loader-spinner'
;<ThreeDots
height="80"
width="80"
radius="9"
color="#4fa94d"
ariaLabel="three-dots-loading"
wrapperStyle={{ margin: '20px' }}
wrapperClass="custom-loader"
visible={true}
/>
import { TailSpin } from 'react-loader-spinner'
function MyComponent() {
const [loading, setLoading] = useState(true)
return (
<div>
<TailSpin
height="80"
width="80"
color="#4fa94d"
ariaLabel="tail-spin-loading"
visible={loading}
/>
</div>
)
}
For optimal bundle size, import components directly:
// Direct import (better for tree-shaking)
import { Audio } from 'react-loader-spinner/dist/esm/loader/audio'
// Or use named imports (also tree-shakeable)
import { Audio, Oval, ThreeDots } from 'react-loader-spinner'
All spinner components accept these common props:
| Prop | Type | Default | Description |
|---|---|---|---|
height | string | number | "100" | Height of the spinner |
width | string | number | "100" | Width of the spinner |
color | string | "#4fa94d" | Primary color |
visible | boolean | true | Show/hide the spinner |
ariaLabel | string | Component-specific | Accessibility label |
wrapperStyle | CSSProperties | {} | Inline styles for wrapper |
wrapperClass | string | "" | CSS class for wrapper |
Note: Individual components may have additional specific props. Check the documentation for each component.
This package includes TypeScript definitions out of the box:
import { Audio } from 'react-loader-spinner'
import type { CSSProperties } from 'react'
const wrapperStyle: CSSProperties = {
display: 'flex',
justifyContent: 'center',
}
;<Audio height="80" width="80" color="blue" wrapperStyle={wrapperStyle} />
We welcome contributions! Please see our Contributing Guide for details.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)MIT © Mohan Upadhyay
Thanks goes to these wonderful people:
⭐ Star us on GitHub — it helps!