TypeScript MIT

react-loader-spinner

Collection sets of a spinners for async operations for ReactJS

M

mhnpd

Dernière activité 14 janv. 2026
mhnpd/react-loader-spinner

1 k

étoiles

150

forks

11

issues ouvertes

loaderreactreact-componentreact-spinnersspinnerspinner-animationsspinner-componentsspinner-hintspinner-iconspinnersspinners-reactsvg-loadersvg-spinner

Ce README est souvent en anglais.

React Loader Spinner

React Loader Spinner

npm version downloads stars release last publish issues license

Simple, lightweight React SVG spinner components
Perfect for async operations and loading states

📚 Documentation • 🎨 Live Demo • 💻 CodeSandbox


✨ Features

  • 🎯 35+ Beautiful Spinners - Wide variety of loading animations
  • 🎨 Fully Customizable - Colors, sizes, and styles
  • 📦 Lightweight - Zero dependencies (except React)
  • 🌲 Tree-shakeable - Import only what you need
  • 💪 TypeScript - Full type definitions included
  • ⚡ React 17, 18 & 19 - Compatible with all modern React versions
  • 🎭 No CSS Required - Pure SVG animations
  • ♿ Accessible - ARIA labels and semantic HTML

📦 Installation

npm install react-loader-spinner

Or using yarn:

yarn add react-loader-spinner

🚀 Quick Start

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}
    />
  )
}

📖 Documentation

Visit our complete documentation for:

🎨 Available Spinners

View all 35+ spinners
  • Audio
  • Ball Triangle
  • Bars
  • Blocks
  • Circles
  • Circles With Bar
  • Circular Progress
  • Color Ring
  • Comment
  • Discuss
  • DNA
  • Falling Lines
  • Fidget Spinner
  • Grid
  • Hearts
  • Hourglass
  • Infinity Spin
  • Line Wave
  • Magnifying Glass
  • Mutating Dots
  • Oval
  • Progress Bar
  • Puff
  • Radio
  • Revolving Dot
  • Rings
  • Rotating Lines
  • Rotating Square
  • Rotating Triangles
  • Tail Spin
  • Three Circles
  • Three Dots
  • Triangle
  • Vortex
  • Watch

💡 Usage Examples

Basic Usage

import { Oval } from 'react-loader-spinner'
;<Oval
  height={80}
  width={80}
  color="#4fa94d"
  visible={true}
  ariaLabel="oval-loading"
  secondaryColor="#4fa94d"
  strokeWidth={2}
  strokeWidthSecondary={2}
/>

With Custom Styling

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}
/>

Conditional Rendering

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>
  )
}

Tree-shaking with Direct Imports

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'

🎯 Common Props

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.

🔧 TypeScript Support

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} />

🌐 Browser Support

  • ✅ Chrome (latest)
  • ✅ Firefox (latest)
  • ✅ Safari (latest)
  • ✅ Edge (latest)
  • ✅ Modern mobile browsers

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

MIT © Mohan Upadhyay

🙏 Contributors

Thanks goes to these wonderful people:


Made with ❤️ by Mohan Upadhyay

⭐ Star us on GitHub — it helps!

Projets similaires

A collection of loading spinner components for react

TypeScriptcomponentloaderloading
Ddavidhu2000
3,4 k étoiles283

Lightweight SVG/CSS spinners for React

TypeScriptcssloaderloaders
Aadexin
449 étoiles26

A collection of loading spinners with React.js

JavaScriptjavascriptloadersloading-spinners
Ddmitrymorozoff
259 étoiles38