Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

loadease-v2

rashaduldev675MIT1.0.4

A customizable loading component for React

react, loading, spinner, loader, progress, skeleton, component, ui, ux, custom-loader, react-loader, react-loading, loading-screen, react-component, react-spinner

readme

🚀 LoadEase – Beautiful Loading Indicators & Skeleton Screens

NPM Version License Downloads GitHub Repo Live Demo NPM Link

LoadEase is a lightweight and customizable package for displaying beautiful loading spinners, skeleton screens, and full-page loaders in React.js, Next.js, Vue.js, Nuxt.js, Laravel, and vanilla JavaScript apps.


🎯 Features

  • Simple & Lightweight – Minimal impact on performance
  • Custom Loaders – Includes spinners, progress bars, and animated skeleton screens
  • Framework Agnostic – Works with React, Vue, Next.js, Nuxt.js, Laravel, and plain JavaScript
  • Easy Customization – Customize colors, sizes, durations, and animations
  • API-Aware Loaders – Hide loaders automatically after fetch/axios requests
  • Responsive & Accessible – Mobile-friendly and keyboard/screen-reader compatible

🚀 Usage (Basic Example)


⚛️ React

import React from "react";
import { LoaderSpinner } from "loadease-v2";

function App() {
  return (
    <div>
      <h1>My App</h1>
      <LoaderSpinner color="#14AE88" size={40} speed={800} />
    </div>
  );
}

🔮 Vue 3

<template>
  <div>
    <h1>My Vue App</h1>
    <LoaderSpinner :color="'#14AE88'" :size="40" :speed="800" />
  </div>
</template>

<script>
import { LoaderSpinner } from "loadease-v2";

export default {
  components: { LoaderSpinner },
};
</script>

🧱 Laravel (Blade + JS)

<!-- resources/views/welcome.blade.php -->
<div id="app">
  <h1>Laravel Loader Example</h1>
  <div id="loader"></div>
</div>

<script src="https://cdn.jsdelivr.net/npm/loadease-v2/dist/index.umd.js"></script>
<script>
  const loader = LoadEase.LoaderSpinner({
    color: "#14AE88",
    size: 40,
    speed: 1000,
  });

  document.getElementById("loader").appendChild(loader);
</script>

⚙️ Vanilla JavaScript (Raw Project)

<div id="loader-container"></div>

<script src="https://cdn.jsdelivr.net/npm/loadease-v2/dist/index.umd.js"></script>
<script>
  const loader = LoadEase.LoaderSpinner({
    color: "#3490dc",
    size: 50,
  });

  document.getElementById("loader-container").appendChild(loader);
</script>

🌈 Tailwind CSS Example

import { LoaderSpinner } from "loadease-v2";

export default function TailwindApp() {
  return (
    <div className="flex items-center justify-center min-h-screen bg-gray-100">
      <LoaderSpinner color="#14AE88" size={60} />
    </div>
  );
}

🎨 Bootstrap Example

<div class="d-flex justify-content-center align-items-center" style="height: 100vh;">
  <div id="bootstrap-loader"></div>
</div>

<script src="https://cdn.jsdelivr.net/npm/loadease-v2/dist/index.umd.js"></script>
<script>
  const loader = LoadEase.LoaderSpinner({ color: "#0d6efd", size: 50 });
  document.getElementById("bootstrap-loader").appendChild(loader);
</script>

🧪 Axios/Fetch Loader Handling

With fetch API

import React, { useEffect, useState } from "react";
import { LoaderSpinner } from "loadease-v2";

function FetchExample() {
  const [loading, setLoading] = useState(true);
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch("https://jsonplaceholder.typicode.com/posts/1")
      .then(res => res.json())
      .then(json => {
        setData(json);
        setLoading(false);
      });
  }, []);

  return (
    <div>
      {loading ? (
        <LoaderSpinner color="#14AE88" size={40} />
      ) : (
        <pre>{JSON.stringify(data, null, 2)}</pre>
      )}
    </div>
  );
}

With axios

import React, { useEffect, useState } from "react";
import axios from "axios";
import { LoaderSpinner } from "loadease-v2";

function AxiosExample() {
  const [loading, setLoading] = useState(true);
  const [post, setPost] = useState(null);

  useEffect(() => {
    axios.get("https://jsonplaceholder.typicode.com/posts/1").then(res => {
      setPost(res.data);
      setLoading(false);
    });
  }, []);

  return (
    <div>
      {loading ? <LoaderSpinner size={40} color="#14AE88" /> : <p>{post.title}</p>}
    </div>
  );
}

🌍 CDN (for HTML, Laravel, WordPress, etc.)

<script src="https://cdn.jsdelivr.net/npm/loadease-v2/dist/index.umd.js"></script>

<div id="loader"></div>
<script>
  const loader = LoadEase.LoaderSpinner({ color: "#14AE88", size: 50 });
  document.getElementById("loader").appendChild(loader);
</script>

🛡️ TypeScript Support (React)

import React, { useState } from "react";
import { LoaderSpinner } from "loadease-v2";

const TSComponent: React.FC = () => {
  const [loading, setLoading] = useState<boolean>(true);

  return (
    <div>
      {loading ? (
        <LoaderSpinner size={40} color="#14AE88" speed={1000} />
      ) : (
        <p>Loaded!</p>
      )}
    </div>
  );
};

export default TSComponent;

📦 Installation

Install using npm or yarn:

`bash npm install loadease-v2

or

yarn add loadease-v2