Radial Chart

Progress toward a goal as rings: radial bars for a few items, or a gauge for one value.
Beta
Web
iOS
Android
@advui/charts
Source

Radial bars

Funding received, by sectorPercent of the 2026 requirement

Installation

pnpm
pnpm add @advui/charts
npm
npm install @advui/charts

Usage

import { RadialChart } from '@advui/charts'

<RadialChart
  title="Funding received"
  data={[{ label: 'Food', value: 72 }, { label: 'Health', value: 58 }]}
  max={100}
/>

Examples

Gauge

Appeal funded$412M of $640M received

API reference

RadialChart

PropTypeDefaultDescription
title requiredstring—Names the chart: its heading and accessible name.
descriptionstring—Muted line under the title (units, period).
data required{ label: string; value: number }[]—One ring each, from the outside in, in color order (`chart1`…`chart8`). Up to five rings stay readable.
maxnumber—The value that fills a ring, such as 100 for percentages. By default the largest value, rounded up. Larger values fill the ring and no more.
variant'bars' | 'gauge''bars'`bars` draws a three-quarter ring per item, named at its start. `gauge` draws a wider arc with the first value and label in the middle; more than one item adds a legend.
text{ label, value, percent }—Table headings, for translation.
valueFormatter(value: number) => string—Formats the values in the middle, the legend, the tooltip and the table.
heightnumber240Pixels.
widthnumber—Fixed width. By default it fills its container.
labelsPartial<ChartLabels>—"Show table", "Hide table" and the keyboard hint, for translation.

Accessibility

  • The chart is a figure named by its title. The plot is one focusable image whose name gives the title, description and a hint; the arrow keys (Home / End too) step through the rings from the outside in, and a polite live region reads each value and its percent of max.
  • Every chart has a table view ("Show table") with the same values, so nothing depends on seeing colors or hovering.
  • Identity never relies on color alone: radial bars are named at the start of each ring, a lone gauge in its middle, and several gauges get a legend with their values.
  • Colors come from the chart1…chart8 theme keys, a palette checked for color-blind separation in light and dark mode.
Keyboard interactions
KeyAction
TabFocuses the plot, then the table button.
Arrow keys / Home / EndMove between rings and read them.
EscapeHides the tooltip.

Responsive behavior

The rings fit the smaller of the width and height; ring names are cut when the chart is too narrow for them.

Platform notes

Web
SVG in the page. Hover a ring to show its tooltip; the arrow keys work once the plot has focus.
iOS
Drawn with react-native-svg. Tap a ring to show its tooltip. VoiceOver and TalkBack read the title and description, without the arrow-key hint; Show table lists every value.
Android
Same as iOS.
Since v0.14.0Last updated Nov 2, 2026Edit this page on GitHub