DevExtreme v26.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Your search did not match any results.

React Gauges - Different Value Indicator Types

This demo illustrates all the available value indicator types for the CircularGauge.

Backend API
import React from 'react'; import { CircularGauge, ValueIndicator, Scale, Label, Geometry, } from 'devextreme-react/circular-gauge'; function customizeText({ valueText }: { valueText: string }): string { return `${valueText} %`; } function App() { return ( <div> <div className="long-title"> <h3>Power of Engines</h3> </div> <div id="gauge-demo"> <CircularGauge id="rectangleNeedle" value={75} > <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <ValueIndicator type="rectangleNeedle" color="#9B870C" ></ValueIndicator> <Geometry startAngle={180} endAngle={0}> </Geometry> </CircularGauge>&nbsp; <CircularGauge id="twoColorNeedle" value={80} > <ValueIndicator type="twoColorNeedle" color="#779ECB" secondColor="#734F96" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0}> </Geometry> </CircularGauge>&nbsp; <CircularGauge id="triangleNeedle" value={65} > <ValueIndicator type="triangleNeedle" color="#8FBC8F" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0}> </Geometry> </CircularGauge> <CircularGauge id="rangebar" value={90} > <ValueIndicator type="rangeBar" color="#f05b41" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0}> </Geometry> </CircularGauge>&nbsp; <CircularGauge id="textCloud" value={70} > <ValueIndicator type="textCloud" color="#483D8B" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0}> </Geometry> </CircularGauge>&nbsp; <CircularGauge id="triangleMarker" value={85} > <ValueIndicator type="triangleMarker" color="#e0e33b" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0}> </Geometry> </CircularGauge> </div> </div> ); } export default App;
import React from 'react'; import { CircularGauge, ValueIndicator, Scale, Label, Geometry, } from 'devextreme-react/circular-gauge'; function customizeText({ valueText }) { return `${valueText} %`; } function App() { return ( <div> <div className="long-title"> <h3>Power of Engines</h3> </div> <div id="gauge-demo"> <CircularGauge id="rectangleNeedle" value={75} > <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <ValueIndicator type="rectangleNeedle" color="#9B870C" ></ValueIndicator> <Geometry startAngle={180} endAngle={0} ></Geometry> </CircularGauge> &nbsp; <CircularGauge id="twoColorNeedle" value={80} > <ValueIndicator type="twoColorNeedle" color="#779ECB" secondColor="#734F96" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0} ></Geometry> </CircularGauge> &nbsp; <CircularGauge id="triangleNeedle" value={65} > <ValueIndicator type="triangleNeedle" color="#8FBC8F" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0} ></Geometry> </CircularGauge> <CircularGauge id="rangebar" value={90} > <ValueIndicator type="rangeBar" color="#f05b41" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0} ></Geometry> </CircularGauge> &nbsp; <CircularGauge id="textCloud" value={70} > <ValueIndicator type="textCloud" color="#483D8B" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0} ></Geometry> </CircularGauge> &nbsp; <CircularGauge id="triangleMarker" value={85} > <ValueIndicator type="triangleMarker" color="#e0e33b" ></ValueIndicator> <Scale startValue={0} endValue={100} tickInterval={50} > <Label customizeText={customizeText}></Label> </Scale> <Geometry startAngle={180} endAngle={0} ></Geometry> </CircularGauge> </div> </div> ); } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.tsx'; ReactDOM.render( <App />, document.getElementById('app'), );
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.js'; ReactDOM.render(<App />, document.getElementById('app'));
<!DOCTYPE html> <html lang="en"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/26.1.5/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="./bundle.css" /> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> <script src="bundles/vendor/react.vendor.js"></script> <script src="./bundle.js"></script> </body> </html>
#chart-demo { width: 100%; } #rectangleNeedle, #twoColorNeedle, #triangleNeedle, #rangebar, #textCloud, #triangleMarker { display: inline-block; } #rectangleNeedle, #twoColorNeedle, #triangleNeedle { width: 33%; } #rangebar, #triangleMarker { width: 32%; } #textCloud { width: 35%; vertical-align: bottom; } .long-title h3 { font-family: 'Segoe UI Light', 'Helvetica Neue Light', 'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana; font-weight: 200; font-size: 28px; text-align: center; margin-bottom: 20px; }