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

https://github.com/katerinalupacheva/react-progress-bar

Simple React progress bar component
https://github.com/katerinalupacheva/react-progress-bar

custom-component progress-bar react typescript

Last synced: 11 months ago
JSON representation

Simple React progress bar component

Awesome Lists containing this project

README

          

# @ramonak/react-progress-bar

> Progress Bar React Component

[![NPM](https://img.shields.io/npm/v/@ramonak/react-progress-bar.svg)](https://www.npmjs.com/package/@ramonak/react-progress-bar) ![npm bundle size](https://img.shields.io/bundlephobia/min/@ramonak/react-progress-bar)![GitHub](https://img.shields.io/github/license/katerinalupacheva/react-progress-bar)![npm](https://img.shields.io/npm/dw/@ramonak/react-progress-bar)

---

![demo](https://i.ibb.co/Fgh0BsD/animated-demo.gif)

---

[Playground / Code Generator](https://katerinalupacheva.github.io/react-progress-bar/)

---

## Install

```bash
npm install --save @ramonak/react-progress-bar
```

## Usage

```jsx
import React from "react";

import ProgressBar from "@ramonak/react-progress-bar";

const Example = () => {
return ;
};
```

## Examples

### Label without "%" at the end

![example1](./images/example1.png)

```jsx

```

### Max completed value is greater than 100

![example1](./images/example2.png)

```jsx

```

### Custom Label

![example1](./images/example3.png)

```jsx

```

### Custom class names

![example1](./images/example4.png)

```css
//styles.scss

.wrapper {
border: 3px solid blue;
}

.container {
background-color: pink;
}

.barCompleted {
background-color: lightblue;
width: 80%;
}

.label {
font-size: 20px;
color: green;
}
```

```jsx
import './styles.scss'

...

```

## Props

| Name | Type | Default | Description |
| -------------------------- | -------------------------------------------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `completed` (required) | `Number or string` | | Percentage of completed progress bar value.
If a string, the "%" won't be added to the label. See [Examples](#examples) |
| `maxCompleted` | `number` | `100` | Max possible value of the `completed` prop |
| `customLabel` | `string` | undefined | Custom label |
| `bgColor` | `string` | `#6a1b9a` | Color of the completed bar |
| `height` | `string` | `20px` | Height of the bar |
| `width` | `string` | `100%` | Width of the bar |
| `margin` | `string` | | Margin |
| `padding` | `string` | | Padding |
| `borderRadius` | `string` | `50px` | Border radius of the bar |
| `baseBgColor` | `string` | `#e0e0de` | Color of the "non-completed" bar |
| `labelAlignment` | `string:`
`left, center, right, outside` | `right` | Position of the label inside the completed bar or outside bar |
| `labelColor` | `string` | `#fff` | Color of the label text |
| `labelSize` | `string` | `15px` | Font-size of the label text |
| `isLabelVisible` | `boolean` | `true` | Visibility of the label |
| `transitionDuration` | `string` | `1s` | Duration of the width transition |
| `transitionTimingFunction` | `string:`
`ease, linear, ease-in, ease-out, ease-in-out` | `ease-in-out` | Timing function of the width transition |
| `animateOnRender` | `boolean` | false | Should the bar width be animated on the first render |
| `initCompletedOnAnimation` | `string or number` | 0 | Initial completed value (e.g. the width of the completed bar) on animation start (applies only when `animateOnRender` is true) |
| `className` | `string` | | Add a `className` to the parent `div` (see [example](#custom-class-names)) |
| `barContainerClassName` | `string` | | Add a `className` to the container `div` (see [example](#custom-class-names)) |
| `completedClassName` | `string` | | Add a `className` to the completed part of the bar (see [example](#custom-class-names)) |
| `labelClassName` | `string` | | Add a `className` to the bar label (see [example](#custom-class-names)) |
| `dir` | `string:`
`ltr, rtl, auto` | `ltr` | Progressbar HTML direction |
| `ariaValuemin` | `number` | `0` | accessibility: Defines the minimum allowed value for a range |
| `ariaValuemax` | `number` | `100` | accessibility: Defines the maximum allowed value for a range |
| `ariaValuetext` | `number` | `null` | accessibility: Defines the human readable text alternative of aria-valuenow (defaults to completed if not passed) |
| `customLabelStyles` | CSS.Properties | | custom CSS properties for a label |
| `isIndeterminate` | boolean | `false` | indeterminate progress bar |

## License

MIT © [KaterinaLupacheva](https://github.com/KaterinaLupacheva)