Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

react-top-loading-bar

> 前端框架
Open source

A very simple, highly customisable youtube-like react loader component.

748 stars0 likes0 views
WebsiteGitHub

About

A very simple, highly customisable youtube-like react loader component.

react-top-loading-bar

Install

  • using npm
npm install --save react-top-loading-bar
  • using yarn
yarn add react-top-loading-bar
  • CDN
https://unpkg.com/react-top-loading-bar

Usage

Using hooks

import { useLoadingBar } from "react-top-loading-bar";

const App = () => {
  const { start, complete } = useLoadingBar({
    color: "blue",
    height: 2,
  });

  return (
    

  );
};

Wrap the app with LoadingBarContainer

import { LoadingBarContainer } from "react-top-loading-bar";

const Parent = () => {
  return (
    
      
    
  );
};

With ref

import { useRef } from "react";
import LoadingBar, { LoadingBarRef } from "react-top-loading-bar";

const App = () => {
  // prettier-ignore
  const ref = useRef(null);

  return (
    

  );
};

With state

import { useState } from "react";
import LoadingBar from "react-top-loading-bar";

const App = () => {
  const [progress, setProgress] = useState(0);

  return (
    

  );
};

Demo

Click here for demo

Built-in Methods

Methods Parameters Descriptions
start(loaderType?) continuous (default) or static Starts the loading indicator. If type is "static" it will start the static bar otherwise it will start the animated continuous bar.
continuousStart(startingValue, refreshRate) Number (optional), Number(optional) Starts the loading indicator with a random starting value between 20-30, then repetitively after an refreshRate, increases it by a random value between 2-10. This continues until it reaches 90% of the indicator's width.
staticStart(startingValue) Number (optional) Starts the loading indicator with a random starting value between 30-50.
complete() Makes the loading indicator reach 100% of his width and then fade.
increase(value) Number Adds a value to the loading indicator.
decrease(value) Number Decreases a value to the loading indicator.
getProgress() Get the current progress value.

Properties

Property Type Default Description
progress Number 0 The progress/width indicator, progress prop varies from 0 to 100.
color String red The color of the loading bar, color take values like css property background: do, for example red, #000 rgb(255,0,0) etc.
shadow Boolean true Enables / Disables shadow underneath the loader.
height Number 2 The height of the loading bar in pixels.
background String transparent The loader parent background color.
style CSSProperties The style attribute to loader's div
containerStyle CSSProperties The style attribute to loader's container
shadowStyle CSSProperties The style attribute to loader's shadow
transitionTime Number 300 Fade transition time in miliseconds.
loaderSpeed Number 500 Loader transition speed in miliseconds.
waitingTime Number 1000 The delay we wait when bar reaches 100% before we proceed fading the loader out.
className String You can provide a class you'd like to add to the loading bar to add some styles to it
containerClassName String You can provide a class you'd like to add to the loading bar container to add some css styles
onLoaderFinished Function This is called when the loading bar completes, reaches 100% of his width.

Migrate from V.1

  • Replace onRef prop with 'ref', assign it to a react ref. Access methods with reactRef.current.xxx

Migrate from V.2

  • Replace ref.current.continuousStart() with ref.current?.start()
  • Replace ref.current.staticStart() with ref.current?.start("static")

License

MIT © Klendi Goci | klendi.dev | GitHub @klendi

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScriptloadingloading-barloading-indicatorpreloader

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category前端框架
PricingOpen source

> Related tools

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架