Skip to content

Repository files navigation

React Router Topbar

Top Loading Bar component for React Router v6, that just works.

  • made using NProgress.
  • supports data route with loader
  • supports future.v7_startTransition

See the demo for detail.

NPMNPM Downloads

Install

npm install react-router-topbar
pnpm install react-router-topbar
yarn add react-router-topbar

Usage

Place the topbar component inside your router's root component.

import{createBrowserRouter,RouterProvider}from"react-router-dom";importReactRouterTopbarfrom"react-router-topbar";functionApp(){return(<RouterProviderfuture={{v7_startTransition: true}}router={router}/>);}exportdefaultApp;constrouter=createBrowserRouter([{path: "/",element: <Root/>,children: [
...
],},]);functionRoot(){return(<><ReactRouterTopbar/>
...
</>);}

Default Configuration

If no props are passed to <ReactRouterTopbar />, below is the default configuration applied.

<ReactRouterTopbarcolor="#2299DD"initialPosition={0.08}crawlSpeed={200}height={3}crawl={true}showSpinner={true}easing="ease"speed={200}shadow="0 0 10px #2299DD,0 0 5px #2299DD"template='<div class="bar" role="bar"><div class="peg"></div></div>  <div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'zIndex={1600}showAtBottom={false}/>
  • color: to change the default color of TopLoader.
  • initialPosition: to change initial position for the TopLoader in percentage, : 0.08 = 8%.
  • crawlSpeed: increment delay speed in ms.
  • speed: animation speed for the TopLoader in ms
  • easing: animation settings using easing (a CSS easing string).
  • height: height of TopLoader in px.
  • crawl: auto incrementing behavior for the TopLoader.
  • showSpinner: to show spinner or not.
  • shadow: a smooth shadow for the TopLoader. (set to false to disable it)
  • template: to include custom HTML attributes for the TopLoader.
  • zIndex: defines zIndex for the TopLoader.
  • showAtBottom: To show the TopLoader at bottom. (increase height for the TopLoader to ensure it's visibility at the mobile devices)

ReactRouterTopbarProps (props passed to the TopLoader)

NameTypeDefault Value
colorstring"#2299DD"
initialPositionnumber0.08
crawlSpeednumber200
heightnumber3
crawlbooleantrue
showSpinnerbooleantrue
easingstring"ease"
speednumber200
shadowstring | false"0 0 10px #2299DD,0 0 5px #2299DD"
templatestring"<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>"
zIndexnumber1600
showAtBottombooleanfalse

License

MIT.

Basic structure from Nextjs Toploader.

About

A React Router Top Loading Bar component made using nprogress, compatible with React transition and router loaders.

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages