react-customizable-progressbar

Customizable circular SVG progress bar component for React

Usage no npm install needed!

<script type="module">
  import reactCustomizableProgressbar from 'https://cdn.skypack.dev/react-customizable-progressbar';
</script>

README

react-customizable-progressbar

Customizable circular SVG progress bar component for React



Check examples or generator to play around with all props

Installation

npm install --save react-customizable-progressbar

or

yarn add react-customizable-progressbar

Usage

import ProgressBar from 'react-customizable-progressbar'

<ProgressBar
    progress={60}
    radius={100}
/>

Props

Name Type Default Description
radius (required) number 100 Progress bar radius
progress (required) number 0 Progress value (out of steps)
steps number 100 Total steps
cut number 0 Angle of the circle sector
rotate number -90 Progress rotation
strokeWidth number 20 Stroke width
strokeColor string 'indianred' Stroke color
strokeLinecap string 'round' Stroke line cap
transition string '0.3s ease' Transition
trackStrokeWidth number 20 Track stroke width
trackStrokeColor string '#e6e6e6' Track stroke color
trackStrokeLinecap string 'round' Track stroke line cap
trackTransition string '1s ease' Track transition
pointerRadius number 0 Pointer radius
pointerStrokeWidth number 20 Pointer stroke width
pointerStrokeColor string 'indianred' Pointer stroke color
pointerFillColor string 'white' Pointer fill color
initialAnimation bool false Initial animation
initialAnimationDelay number 0 Initial animation delay
inverse bool false Inverse
counterClockwise bool false Counter-clockwise
children node null Children - pass anything to show inside progress bar
className string '' Progress bar class name

Styles

.RCP {}
.RCP__track {}
.RCP__progress {}
.RCP__pointer {}

You can use these default indicator styles to center it both horizontally and vertically:

.your-indicator {
    display: flex;
    justify-content: center;
    text-align: center;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    margin: 0 auto;
    user-select: none;
}

Run examples locally

npm install
npm run dev