react-circular-gauge
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

React Circular Gauge

A React gauge component for visualizing numbers.

  • Rendered using SVG
  • Out of the box support for animation using react-spring
  • Expressive and consistent API with sensible defaults
  • Written in TypeScript

Demo

Installation

npm i react-circular-gauge

Usage

import { Gauge } from 'react-circular-gauge'
import chroma from 'chroma-js'

const Speedometer = () => (
  <Gauge
    value={25}
    minValue={0}
    maxValue={100}
    renderBottomLabel="km/h"
    arcColor={({ normValue }) => chroma.scale(['green', 'red'])(normValue).css()}
  />
)

Check out the demo source code for additional usage examples.

Reference

Gauge

Gauge accepts the following props, all of which are optional.

Name Type Default Description
value number 0 Gauge value, clamped between minValue and maxValue
minValue number 0 Minimum possible value
maxValue number 100 Maximum possible value
startValue number minValue Value between minValue and maxValue where the arc should be drawn from. Arc will draw in reverse from this point if value < startValue
startAngle number 0 Angle corresponding to minValue, measured in degrees clockwise from the positive y axis
endAngle number 0 Angle corresponding to maxValue, measured in degrees clockwise from the positive y axis
direction 'cw' | 'ccw' 'cw' Direction of the arc from startAngle to endAngle, 'cw' for clockwise or 'ccw' for counterclockwise
renderValue RenderableString ({ fmtValue }) => fmtValue A string or a function from RenderableStringArgs to a string for displaying the value
renderTopLabel RenderableString undefined A string or a function from RenderableStringArgs to a string for displaying a label above the value
renderBottomLabel RenderableString undefined A string or a function from RenderableStringArgs to a string for displaying a label below the value
renderContent RenderableNode undefined ReactNode or a function from RenderableNodeArgs to ReactNode for displaying the gauge content, overrides the render props above if passed
roundDigits number 0 Number of decimal places to round fmtValue to as provided by RenderableStringArgs and RenderableNodeArgs
arcWidth number 0.1 Arc width as a fraction of the gauge radius
trackWidth number 0.1 Track width as a fraction of the gauge radius
arcCornerRadius number 0.5 Arc corner radius as a fraction of the arc width
trackCornerRadius number 0.5 Track corner radius as a fraction of the track width
arcColor RenderableString 'black' A CSS color value or a function from RenderableStringArgs to a CSS color value
trackColor string 'transparent' A CSS color value
valueStyle CSSProperties undefined Styles applied to the value
topLabelStyle CSSProperties undefined Styles applied to the top label
bottomLabelStyle CSSProperties undefined Styles applied to the bottom label
animated boolean true Whether to animate changes in value
springConfig Partial<AnimationConfig> undefined Spring configuration passed to react-spring

RenderableString

RenderableString is defined as string | ((args: RenderableStringArgs) => string). The function form should be used for a string that animates based on the gauge value. RenderableStringArgs is an object with the following properties.

Name Type Description
value number The current value of the animation as interpolated between the previous and current gauge value
fmtValue string value converted to a string and with rounding applied
normValue number value normalized to the range [0, 1]
rawValue number The current value provided to the gauge, not animated

RenderableNode

RenderableNode is defined as ReactNode | ((args: RenderableNodeArgs) => ReactNode). The function form should be used for a ReactNode that animates based on the gauge value. RenderableNodeArgs is an object with the following properties.

Name Type Description
value SpringValue<number> The current value of the animation as interpolated between the previous and current gauge value
fmtValue Interpolation<number, string> value converted to a string and with rounding applied
normValue Interpolation<number, number> value normalized to the range [0, 1]
rawValue number The current value provided to the gauge, not animated

Package Sidebar

Install

npm i react-circular-gauge

Weekly Downloads

61

Version

1.1.1

License

MIT

Unpacked Size

88.7 kB

Total Files

6

Last publish

Collaborators

  • arcturus3