1.0.6 • Published 6 months ago

react-shade-loader v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

React Shade Loader

React Shade Loader is a lightweight and customizable skeleton loader for React applications. It allows developers to display animated placeholders while content is loading, providing a smoother user experience during data fetching.

Features

  • 🎨 Customizable: Easily adjust the width, height, border radius, and shape of the skeleton loaders.
  • Lightweight: Minimal dependency footprint with optimized performance.
  • 💻 TypeScript Support: Comes with full TypeScript support for better development experience.
  • 💡 Accessible: Use it to improve loading state visibility in your UI.

Installation

You can install the package via npm or yarn:

npm

npm install react-shade-loader

yarn

yarn add react-shade-loader

Usage

Basic Example

Here’s how you can use the SkeletonLoader component in your React project:

import React from 'react';
import SkeletonLoader from 'react-shade-loader';

const App = () => (
  <div>
    <h1>Loading Content...</h1>
    <SkeletonLoader width="200px" height="20px" />
    <SkeletonLoader width="100%" height="50px" borderRadius="8px" />
  </div>
);

export default App;

Circle Loader Example

If you want to render a circular skeleton loader, you can use the isCircle prop:

import React from 'react';
import SkeletonLoader from 'react-shade-loader';

const AvatarLoading = () => (
  <div>
    <SkeletonLoader width="100px" height="100px" isCircle />
  </div>
);

export default AvatarLoading;

Pulse Animation Example

To enable the pulse animation, use the pulse prop:

import React from 'react';
import SkeletonLoader from 'react-shade-loader';

const PulseLoading = () => (
  <div>
    <SkeletonLoader width="200px" height="20px" pulse />
    <SkeletonLoader width="100%" height="50px" borderRadius="8px" pulse />
  </div>
);

export default PulseLoading;

Custom Styling

You can add custom class names to the component for additional styling:

import React from 'react';
import SkeletonLoader from 'react-shade-loader';
import './CustomStyles.css';

const CustomLoader = () => (
  <div>
    <SkeletonLoader width="250px" height="20px" className="my-custom-loader" />
  </div>
);

export default CustomLoader;

Props

The SkeletonLoader component accepts the following props:

PropTypeDefaultDescription
widthstring100%Sets the width of the skeleton.
heightstring20pxSets the height of the skeleton.
borderRadiusstring4pxControls the border-radius, making it easy to create rounded corners.
isCirclebooleanfalseIf true, the skeleton will be rendered as a circle (width and height should be equal).
classNamestring""Additional class names for custom styling.
pulsebooleanfalseIf true, the skeleton will animate with a pulsing effect.

Styling and Animation

The skeleton loader uses a subtle animation to indicate loading. You can customize the animation speed or background color by overriding the CSS styles in your project.

Default CSS

@keyframes skeleton-shade {
  0% {
    background-color: #e0e0e0;
  }
  50% {
    background-color: #c0c0c0;
  }
  100% {
    background-color: #e0e0e0;
  }
}

.skeleton-loader {
  display: inline-block;
  overflow: hidden;
}

Custom Pulse Animation

.pulse-animation {
  animation: pulse 1.5s infinite ease-in-out;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.8;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

Contributing

If you would like to contribute to this project, feel free to submit a pull request or open an issue for discussion.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

1.0.2

6 months ago

1.0.1

6 months ago

1.0.6

6 months ago

1.0.5

6 months ago

1.0.4

6 months ago

1.0.3

6 months ago

1.0.0

9 months ago