Git Product home page Git Product logo

react-loading-indicator's Introduction

react-loading-indicators

A library of well done and highly usable loading indicators to inform users that the system is working.

Built with Typescript. Compatible with react version >=16.8.0(since hooks).

A demo speaks for itself

A glimpse of what is wrapped🎁.
See DEMO.

Installation

npm install react-loading-indicators

Components

<Atom />
<Commet />
<OrbitProgress />
<GlidingBlink />
<FourSquare />
<TrophySpin />
<ThreeDot />
<LifeLine />
<Mosaic />
<Riple />
<Slab />

Heads Up πŸ“’

The following components were renamed:

  • <CircularProgress /> - <OrbitProgress />
  • <Seek /> - <ThreeDot />
  • <GlidingBlink /> - <BlinkBlur />
  • <Twist /> - <TrophySpin />
  • <Pulse /> - <LifeLine />

Examples

Importing a loading indicator

import React from "react";
import { Atom } from "react-loading-indicators";
/* 
| OR specifically pull it 😊️
| import Atom from "react-loading-indicators/Atom";
*/

const Loading = () => <Atom text="Loading..." />;

export default Loading;
Example usage
<Suspense fallback={<Loading />}>
	<Albums artistId={artist.id} />
</Suspense>

Side note: You can use suspense for data fetching other than lazy loading.

Lighter build

This library is fairly small. However, you might be aiming at making the bundle size of your project to be as small as possible.
You can only include a specific loading indicator you want to use:

import React from "react";
import OrbitProgress from "react-loading-indicators/OrbitProgress";

const Loading = () => (
	<OrbitProgress variant="track-disc" color="crimson" size="small" />
);

export default Loading;

Props

Each of these components will accept the following optional props.

Name DataType Default Value Possible Values
size string medium small, medium, large
color string or array limegreen CSS color values
style object null CSS styles(in Reactjs format)
text string or boolean false Boolean value or any string
textColor string undefined CSS color values
speedPlus number 0 Number in the range -5 through 5
easing string default ease function CSS easing function

What do these props do?

  • size - Sets the size of the loading indicator.
  • color - Sets the color of the loading indicator.
  • style - Applies CSS styles to the loading indicator
  • text - Displays message in the loading indicator.
  • textColor - Sets the color of text message in the loading indicator.
  • speedPlus - Controls speed of animation. Negative values slows down. Positive numbers speeds up animation.
  • easing - Controls the smoothness of the animation, altered with values such as linear, ease-in.

Some components accept a variant prop, Specifically <OrbitProgress /> and <ThreeDot />. This lets you choose a variation of a loading indicator that you want.

Name DataType
variant string

See DEMO to know list of variants a loading indicator supports.

How to resize

You can resize loader to fit into your needs with the size prop that accepts predefined string input.
If this is not enough, you can give a loading indicator a fontSize property via the style prop. The style prop is an object that allows you to add your own css. Including fontSize in the style object will evenly alter the animation's size, e.g

const Loading = () => <ThreeDot style={{ fontSize: "8px" }} />;

License

Distributed under the MIT License. See LICENSE for more information.

Contact

@smitterhane

react-loading-indicator's People

Contributors

hane-smitter avatar prajwalkulkarni avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.