build69
build69  /  Components  /  Charts  /  Gauge

Gauge

v1.0.9Updated 20 Oct 2026

Arc / speedometer gauge drawn with pure SVG. Shows a single value against a [min, max] range as a coloured arc with a centre readout. Supports arbitrary start / end angles, colour-band thresholds, tick segments, an optio

Preview

Live · 11 stories
DefaultOpen ↗
▸Why this is recommendedgaugemeterarcspeedometer+5

The default, out-of-the-box Gauge.

Recommended for+14
  • ✓KPI / score dials
  • ✓Speedometer-style indicators
  • ✓Utilisation / capacity gauges with colour zones
  • ✓Single-value goal meters
Tags+6
gaugemeterarcspeedometerdialkpidata-vizsvgdefault
Features+4
  • Pure SVG arc with rounded / butt caps
  • Arbitrary startAngle / endAngle (semicircle, full sweep, etc.)
  • Threshold colour bands (tones switch as the value crosses each band)
  • Tick segments around the arc
  • Optional needle pointer (speedometer style)
  • Background track toggle
  • Centre value readout with custom valueFormatter + label caption
  • Tones: primary / success / warning / danger / info / muted
  • Animated stroke-dasharray fill (respects prefers-reduced-motion)
Not recommended for−2
  • ✕Multi-metric comparison (use BarChart)
  • ✕Time-series (use LineChart)
  • ✕Concentric ring progress (use RadialChart)

Install

Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.

get_registry_item({ name: "Gauge" })

Usage

import { Gauge } from '@/components/data-viz/gauge';

<Gauge
  value={72}
  thresholds={[{ value: 50, tone: 'success' }, { value: 80, tone: 'warning' }, { value: 100, tone: 'danger' }]}
  label="Utilisation"
/>

Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.

Props

PropTypeRequired
value

Current value

numberyes
min

Range floor (default 0)

number—
max

Range ceiling (default 100)

number—
startAngle

Arc start angle in deg (default 180)

number—
endAngle

Arc end angle in deg (default 0)

number—
thickness

Arc stroke width in px (default 14)

number—
size

Square size in px (default 200)

number—
tone

Base arc colour when no thresholds apply

GaugeTone—
thresholds

Colour bands (value upper-bound + tone)

GaugeThreshold[]—
segments

Number of tick marks around the arc

number—
showValue

Show centre numeric readout (default true)

boolean—
valueFormatter

Format the centre value label

(value: number) => string—
label

Small caption under the value

ReactNode—
needle

Draw a needle pointer (default false)

boolean—
track

Show the faint background arc (default true)

boolean—
rounded

Round the arc caps (default true)

boolean—
animate

Animate the fill (default true)

boolean—

Every tonal component shares the same tone × emphasis API, so the pair looks identical across Button, Badge, Alert and more.

Related