react-spinner-loader
provides simple React SVG spinner component which can be implemented for async await operation before data loads to the view.
Installation
Using NPM:
$ npm install react-loader-spinner --save
Using yarn
$ yarn add react-loader-spinner
Import required css
import "react-loader-spinner/dist/loader/css/react-spinner-loader.css";
Demo
[View in page]
Usage
import Loader from "react-loader-spinner";
export default class App extends React.Component {
//other logic
render() {
return (
<Loader
type="Puff"
color="#00BFFF"
height={100}
width={100}
timeout={3000} //3 secs
/>
);
}
}
If webpack throws issue with css. (For older version of this package)
Change webpack config as: test: /\.scss$/ to test: /\.s?css$/
Newer version just import css file from node modules to app.js
Types of Spinner
react-loader-spinner component has the following types of spinners.
Spinner Type | Implementation |
---|---|
Audio | <Loader type="Audio" color="#00BFFF" height={80} width={80} /> |
Ball-Triangle | <Loader type="BallTriangle" color="#00BFFF" height={80} width={80} /> |
Bars | <Loader type="Bars" color="#00BFFF" height={80} width={80} /> |
Circles | <Loader type="Circles" color="#00BFFF" height={80} width={80}/> |
Grid | <Loader type="Grid" color="#00BFFF" height={80} width={80} /> |
Hearts | <Loader type="Hearts" color="#00BFFF" height={80} width={80} /> |
Oval | <Loader type="Oval" color="#00BFFF" height={80} width={80} /> |
Puff | <Loader type="Puff" color="#00BFFF" height={80} width={80} /> |
Rings | <Loader type="Rings" color="#00BFFF" height={80} width={80} /> |
TailSpin | <Loader type="TailSpin" color="#00BFFF" height={80} width={80} /> |
ThreeDots | <Loader type="ThreeDots" color="#00BFFF" height={80} width={80} /> |
There are more. View [demo] to see the full list.
PropTypes Available
react-loader-spinner component accepts the following props. Instructions on how to use them are below.
name | types | default | Detail |
---|---|---|---|
visible | String or boolean | false | Show/ Hide the loader as required. |
type | String | "Audio" | Type of spinner you want to display. View the type in Types of Spinner section. |
height | Number | 80 | Height props define the height of the svg spinner. Default height is 80px. |
width | Number | 80 | Width props define the width of the spinner. |
color | String | "Blue" | color props is add color to the spinner |
secondaryColor | String | "Grey" | secondaryColor props for now is available on Plane and MutatingDots loaders |
timeout | Number | 0 | Duration in miliseconds after which spinner is disabled |
radius | Number | value varies | Set radius if the loader has a circle element in it |
Here are the list of the task for which we want PR:
- Optimize css implementation
- Add support for Typescript.
- Optimization for multiple color support.
License
MIT
[svg-loader]: <https://github.com/SamHerbert/SVG-Loaders>
[here]: <http://samherbert.net/svg-loaders>
[View in page]: https://mhnpd.github.io/react-loader-spinner/
[storybook]: https://mhnpd.github.io/react-loader-spinner/