0.6.5 • Published 6 years ago

react-circular-multi-progressbar v0.6.5

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

React Circular Multi Progressbar

This is a fork of Kevin Qi's react-circular-progressbar that adds support for multiple bars within a single progressbar ring.

Multibar usage

<CircularProgressbar percentage={0} stackPercentages={[10, 20, 70]} />

Original README follows

A circular progress indicator component, built with SVG. Easily customizable with CSS. See a live demo.

npm version Build Status

react-circular-progressbar animated gif

Installation

Install the npm module:

npm install react-circular-progressbar

Important: you'll also need to copy src/styles.css into your repo to use the default styling!

Usage

Import the component:

import CircularProgressbar from 'react-circular-progressbar';

..and use the component in your JSX:

<CircularProgressbar percentage={60} />

For more in-depth examples, take a look at the demo code to see JSX for the live demo page.

Props

NameDescription
percentageNumeric percentage to display, from 0-100. Required.
classNameClasses to apply to the svg element
strokeWidthWidth of circular line as a percentage relative to total width of component. Default: 8.
backgroundWhether to display background color. Default: false.
backgroundPaddingPadding between background and edge of svg as a percentage relative to total width of component. Default: 0.
initialAnimationToggle whether to animate progress starting from 0% on initial mount. Default: false.
counterClockwiseToggle whether to rotate progressbar in counterclockwise direction. Default: false.
classForPercentageFunction which returns an additional class to apply to top-level svg element, which can be used for coloring/styling percentage ranges differently. Example: (percent) => percent < 100 ? 'incomplete' : 'complete'.
textForPercentageFunction which returns text to display, can be configured based on percentage. Example: (pct) => `${pct}%`.
classesObject mapping to override classNames of each svg element (root, trail, path, text, background). Enables styling with react-jss. See this PR for more detail.

Customizing styles

Use plain CSS to customize the styling - the default CSS is a good starting point, but you can modify it as needed.

CSS hooks

There are CSS hooks for the path, trail, text, and background of the progressbar which you can customize, e.g.:

.CircularProgressbar-path       { stroke: red; }
.CircularProgressbar-trail      { stroke: gray; }
.CircularProgressbar-text       { fill: yellow; }
.CircularProgressbar-background { fill: green; }

Using multiple themes

You can use the className prop to add different classes to the top-level SVG element, and then use that to add different themes to different instances, e.g.:

<CircularProgressbar percentage={25} className="progressbar-red" />
<CircularProgressbar percentage={25} className="progressbar-blue" />
.progressbar-red .CircularProgressbar-path { stroke: red; }
.progressbar-blue .CircularProgressbar-path { stroke: blue; }

Advanced usage

A lot of use cases can be covered with CSS. A few examples:

Development

To run demo locally on localhost:8080:

yarn install
yarn start

Keep tests passing by running yarn test and yarn run lint.

0.6.5

6 years ago

0.6.4

6 years ago

0.6.3

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago