What is react-spinners?
The react-spinners npm package provides a collection of loading spinner components for React applications. These spinners are customizable and can be used to indicate loading states in your application.
What are react-spinners's main functionalities?
ClipLoader
The ClipLoader is a simple circular spinner. You can customize its color, loading state, and size.
import { ClipLoader } from 'react-spinners';
function App() {
return (
<div className="App">
<ClipLoader color={"#123abc"} loading={true} size={150} />
</div>
);
}
BeatLoader
The BeatLoader consists of multiple dots that bounce. You can customize its color, loading state, size, and margin between dots.
import { BeatLoader } from 'react-spinners';
function App() {
return (
<div className="App">
<BeatLoader color={"#123abc"} loading={true} size={15} margin={2} />
</div>
);
}
BarLoader
The BarLoader is a horizontal bar that animates to indicate loading. You can customize its color, loading state, width, and height.
import { BarLoader } from 'react-spinners';
function App() {
return (
<div className="App">
<BarLoader color={"#123abc"} loading={true} width={100} height={4} />
</div>
);
}
Other packages similar to react-spinners
react-loader-spinner
react-loader-spinner provides a variety of SVG-based loading indicators for React applications. It offers more types of spinners compared to react-spinners and allows for more detailed customization of each spinner.
react-loading
react-loading is another package that offers a collection of loading indicators for React. It is simpler and has fewer customization options compared to react-spinners, but it is lightweight and easy to use.
react-content-loader
react-content-loader allows you to create SVG loading placeholders that mimic the content being loaded. It is more focused on skeleton screens rather than traditional spinners, providing a different approach to indicating loading states.
React Spinners
A collection of loading spinners with React.js based on Halogen.
This package is bootstraped using react-npm-boilerplate
Demo
Demo
Installation
npm install react-spinners --save
Usage
Each loader has their own default properties. You can overwrite the defaults by passing props into the loaders.
Each loader accepts a loading
prop as a boolean. The loader will not render anything if loading
is false
. The loading
prop defaults to true
.
import React from 'react';
import { RingLoader } from 'react-spinners';
class AwesomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
loading: true
}
}
render() {
return (
<div>
<RingLoader color={'#123abc'} loading={this.state.loading} />
</div>
)
}
}
Available Loaders, PropTypes, and Default Values
Loader | Loading:bool | color:str | size:int | height:int | width:int | radius:int | margin:int |
---|
BeatLoader | true | '#ffffff' | 15 | | | | 2 |
BounceLoader | true | '#ffffff' | 60 | | | | |
ClipLoader | true | '#ffffff' | 35 | | | | |
DotLoader | true | '#ffffff' | 60 | | | | 2 |
FadeLoader | true | '#ffffff' | | 15 | 5 | 2 | 2 |
GridLoader | true | '#ffffff' | 15 | | | | 2 |
MoonLoader | true | '#ffffff' | 60 | | | | 2 |
PacmanLoader | true | '#ffffff' | 25 | | | | 2 |
PulseLoader | true | '#ffffff' | 15 | | | | 2 |
RingLoader | true | '#ffffff' | 60 | | | | 2 |
RiseLoader | true | '#ffffff' | 15 | | | | 2 |
RotateLoader | true | '#ffffff' | 15 | | | | 2 |
ScaleLoader | true | '#ffffff' | | 35 | 4 | 2 | 2 |
SkewLoader | true | '#ffffff' | 20 | | | | |
SquareLoader | true | '#ffffff' | 50 | | | | 2 |
SyncLoader | true | '#ffffff' | 15 | | | | 2 |