Components

Radar Chart

Compare two product profiles across six dimensions on a shared numeric scale.

Loading chart…

Product research scores out of 100
DimensionStudioField
Speed8862
Quality7691
Value6384
Support9268
Reach5889
Trust8174

Usage

Compare measures on a shared radial scale with one RadarSeries per profile.

Composition
<Chart.Root config={config}>
  <Chart.Legend />
  <Chart.ResponsiveContainer width="100%" height={280}>
    <Chart.RadarChart data={data} animate outerRadius="68%" aria-label="Product research scores out of 100">
      <Chart.PolarGrid radialLines={false} />
      <Chart.PolarAngleAxis dataKey="period" />
      <Chart.PolarRadiusAxis domain={[0, 100]} ticks={[25, 50, 75, 100]} />
      <Chart.RadarSeries dataKey="studio" fillOpacity={0.18} />
      <Chart.RadarSeries dataKey="field" fillOpacity={0.18} />
      <Chart.Tooltip />
    </Chart.RadarChart>
  </Chart.ResponsiveContainer>
</Chart.Root>

Use comparable units and a fixed domain across spokes. These research scores share a 0–100 scale.

Center-out motion

animate reveals the polygon from its center. Interaction or data/layout changes finish it; reduced motion skips it. Custom shapes, masks, filters or transforms can bypass the reveal.

Series selection

Click a polygon or press Enter/Space on its series control to select it. Repeat to clear; Escape clears selection. Values and visibility stay unchanged.

Loading chart…

Product research scores out of 100
DimensionStudioField
Speed8862
Quality7691
Value6384
Support9268
Reach5889
Trust8174

Enable selection="series". Omit selectedSeries for local state, or pair it with onSelectedSeriesChange for controlled selection.

Selection dims paint, not spoke tooltip values. Keep Root emphasis at "auto"; visibility and persistent selection remain separate.

SVG series controls expose labels and pressed state, but provide no arrow-key spoke navigation. Keep the accessible data alternative and verify support in your target assistive technologies.

Materials

Choose plain, paper, clay or glow. Glow’s exterior halo is decorative, not a score boundary.

Loading chart…

Product research scores out of 100
DimensionStudioField
Speed8862
Quality7691
Value6384
Support9268
Reach5889
Trust8174

Custom shape, filter or style.filter overrides the finish. Dots and labels retain native rendering. See material support.

API reference

Focused props for explicit Radar composition; upstream links cover native geometry.

RadarChart

Use inside Root and a sized ResponsiveContainer.

PropTypeDefaultDescription
dataRow[]—Category rows used by explicit axes and series.
animateboolean | RadarAnimationfalseCenter-out entrance for default polygons; respects reduced motion.
selection"none" | "series""none"Opts in to persistent series controls.
selectedSeriesstring | nullLocal stateControlled selection when supplied; requires a callback.
onSelectedSeriesChange(next: string | null) => void—User toggle/reset requests; does not control visibility.
cx / cynumber | string"50%"Native polar center.
outerRadiusnumber | string"80%"Plot radius; these components reserve label space with "68%".
aria-label / aria-labelledbystring—Accessible plot name; does not add spoke keyboard inspection.
childrenReactNode—Explicit polar axes, grid, series and tooltip.

Entrance runs once per mount. Unavailable uncontrolled selections clear without a callback; controlled values remain consumer-owned and show no selected paint while unavailable.

RadarAnimation accepts revealDurationMs (default 1000), revealEasing (default "easeOut") and hoverTransition (shared spring). See Recharts RadarChart.

RadarSeries

String dataKey values identify config entries. Use seriesKey for numeric keys or accessors with visibility or selection.

PropTypeDefaultDescription
dataKeystring | number | ((row: Row) => unknown)—Value field or native accessor; supplied for both profiles here.
seriesKeystringString dataKeyMetadata, visibility and selection identity.
material"plain" | "paper" | "clay" | "glow""plain"Finish on default polygons; consumer rendering takes precedence.
stroke / fillstringConfig colorOverride outline or fill independently.
fillOpacitynumberSVG default 1These overlapping profiles explicitly use 0.18.
dotboolean or native dot props / rendererfalseOptional native category marks.
activeDotboolean or native dot props / rendererKind active markerNative inspected-category marker; independent of selection.
hidebooleanfalseHides the series; Root visibility also applies.
shapeNative element or rendererKind default polygonConsumer-owned shape bypasses material and center-out masking.

Per-series animation is disabled. Recharts exposes no Radar series component ref; attach refs to custom marks. See Recharts Radar.

Shared components

Root, SeriesConfig, Axes and grid, Legend, Tooltip, ResponsiveContainer.