mhnpd/react-loader-spinner(opens in a new tab)
Language: TypeScript
Collection sets of a spinners for async operations for ReactJS
- stars
- 1,040
- watchers
- 8
- forks
- 150
- open issues
- 11
- Last updated
- 01/15/2026
Language: TypeScript
Collection sets of a spinners for async operations for ReactJS
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!