An open API service indexing awesome lists of open source software.

https://github.com/impeterk/remix-toploader

A Remix/React Router Top Loading Bar based on NProgress -- inspired by nextjs-toploader
https://github.com/impeterk/remix-toploader

progressbar react-router react-router-v7 remix remix-run toploader

Last synced: 11 months ago
JSON representation

A Remix/React Router Top Loading Bar based on NProgress -- inspired by nextjs-toploader

Awesome Lists containing this project

README

          

# Remix / React Router TopLoader

- A Remix and React Router Top Loading bar Component **heavily** inspired by [Next.js TopLoader](https://github.com/TheSGJ/nextjs-toploader). Based on [NProgress](https://www.npmjs.com/package/nprogress)

> :exclamation: This is my first package. Contributions are welcomed 👍

![Remix/Router v7 Top Loader](https://github.com/user-attachments/assets/99723ebb-c35b-4d47-b14c-577aeaa5aa22)

## Install

using npm:

```bash
npm install remix-toploader
```

using yarn:

```bash
yarn add remix-toploader
```

using pnpm:

```bash
pnpm add remix-toploader
```

## Usage

import using:

```js
// in Remix v2
import RemixTopLoader from "remix-toploader";
// or
import { RemixTopLoader } from "remix-toploader";

// in React Router v7
import { RouterTopLoader } from "remix-toploader";
```

Navigate to `root.tsx` of your app and add `` to the `` tag.

```js
export function Layout({ children }) {
return (








{/* in Remix v2 */}

{/* in React Router v7 */}

{children}




);
}
```

### Default Configuration

Default styles and configuration without any props passed

```jsx

```

- `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)

#### `RemixTopLoaderProps`

| **Name** | **Type** | **Default Value** |
| ------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `color` | `string` | `"#2299DD"` |
| `initialPosition` | `number` | `0.08` |
| `crawlSpeed` | `number` | `200` |
| `height` | `number` | `3` |
| `crawl` | `boolean` | `true` |
| `showSpinner` | `boolean` | `true` |
| `easing` | `string` | `"ease"` |
| `speed` | `number` | `200` |
| `shadow` | `string \| false` | `"0 0 10px #2299DD,0 0 5px #2299DD"` |
| `template` | `string` | `"

"` |
| `zIndex` | `number` | `1600` |
| `showAtBottom` | `boolean` | `false` |
| `showForHashAnchor` | `boolean` | `true` |