Skip to content

Progress Charts

The v2 progress surface supports concentric rings and single-ring completion states. It accepts object rows for the modern API and the legacy Chart Kit progress data shape.

Concentric Rings

import { ProgressChart } from "react-native-chart-kit/v2";

const data = [
  { metric: "Build signed", progress: 0.76, color: "#00163f" },
  { metric: "QA pass", progress: 0, color: "#2f5f9f" },
  { metric: "Rollout cap", progress: 0.42, color: "#6f88aa" }
];

<ProgressChart
  data={data}
  valueKey="progress"
  labelKey="metric"
  colorKey="color"
  width={320}
  height={260}
  preset="health"
  centerLabel={({ average }) => `${Math.round(average * 100)}%`}
/>;

Single Ring

import { ProgressRing } from "react-native-chart-kit/v2";

<ProgressRing
  value={0.76}
  label="Release readiness"
  width={320}
  height={240}
  centerLabel="76%"
/>;

Compatibility Shape

The legacy data object still works:

<ProgressChart
  data={{
    labels: ["Build signed", "QA pass", "Rollout cap"],
    data: [0.76, 0, 0.42],
    colors: ["#00163f", "#2f5f9f", "#6f88aa"]
  }}
  width={320}
  height={240}
/>

Values outside 0..1 produce normalization warnings in core and are clamped by geometry so the ring never draws broken arcs.

Zero And Missing Values

Zero and missing rings keep their background tracks and legend rows. Values above 1 are clamped visually while their source value remains available in the model.

<ProgressChart
  data={[
    { metric: "Brief approved", progress: 0 },
    { metric: "QA pass", progress: null },
    { metric: "Rollout cap", progress: 1.18 }
  ]}
  valueKey="progress"
  labelKey="metric"
  width={320}
  height={260}
/>

Props

ProgressChart

PropTypeDescription
dataProgressChartData<TData>Modern object-row data or the legacy progress data object.
valueKeykeyof TDataRow key used for ring progress values in object-row data.
labelKeykeyof TDataRow key used for ring labels in object-row data.
colorKeykeyof TDataRow key used for ring colors in object-row data.
labelsstring[]Labels used with legacy data arrays.
colorsstring[]Colors used with legacy data arrays or as fallback ring colors.
widthnumberOuter chart width in pixels.
heightnumberOuter chart height in pixels.
theme"light", "dark", "system", or CartesianChartThemeTheme mode or inline theme tokens for this chart.
presetCartesianChartPresetValueBuilt-in or registered preset name used to seed chart colors and typography.
legendboolean or ProgressChartLegendConfigShows and configures the legend.
hideLegendbooleanLegacy-style shortcut for hiding the legend.
centerLabelstring or (props) => stringText rendered in the center of the rings.
strokeWidthnumberRing stroke width in pixels.
ringGapnumberGap between concentric rings.
radiusnumberExplicit outer ring radius in pixels.
animationboolean or ProgressChartAnimationConfigEnables and configures ring entrance/update animation.
strokeLinecapProgressChartStrokeLinecapStroke cap style for progress arcs.
backgroundRingColorstringColor used for ring tracks behind progress arcs.
rendererProgressChartRendererRenderer implementation used for SVG-compatible primitives.
accessibilityLabelstringOverrides the generated accessible chart summary.
testIDstringTest identifier applied to the chart surface.
formatPercentage(value) => stringFormats percentages in labels and accessible output.

ProgressRing

PropTypeDescription
valuenumber, null, or undefinedSingle progress value for the ring, usually between 0 and 1.
labelstringLabel used for the ring and accessible output.
colorstringProgress arc color for the ring.
widthnumberOuter chart width in pixels.
heightnumberOuter chart height in pixels.
theme"light", "dark", "system", or CartesianChartThemeTheme mode or inline theme tokens for this chart.
presetCartesianChartPresetValueBuilt-in or registered preset name used to seed chart colors and typography.
legendboolean or ProgressChartLegendConfigShows and configures the legend.
hideLegendbooleanLegacy-style shortcut for hiding the legend.
centerLabelstring or (props) => stringText rendered in the ring center.
strokeWidthnumberRing stroke width in pixels.
ringGapnumberGap setting inherited from ProgressChart; only relevant when the component is wrapped or extended.
radiusnumberExplicit ring radius in pixels.
animationboolean or ProgressChartAnimationConfigEnables and configures ring entrance/update animation.
strokeLinecapProgressChartStrokeLinecapStroke cap style for the progress arc.
backgroundRingColorstringColor used for the track behind the progress arc.
rendererProgressChartRendererRenderer implementation used for SVG-compatible primitives.
accessibilityLabelstringOverrides the generated accessible chart summary.
testIDstringTest identifier applied to the chart surface.
formatPercentage(value) => stringFormats percentages in labels and accessible output.