RadarChart
A spoke chart for comparing series across categories. Library scores below are honest sample data, rendered as a static SVG with no scripts.
Library comparison
- astro-ink
- baseline
<RadarChart categories={compareCats} series={compareSeries} />With explicit max
Pass max to fix the scale; values above it clamp to the outer ring (Team Atlas scores 9 of 8 on Design).
- Team Atlas
- Team Beacon
<RadarChart label="Release readiness" categories={readinessCats} series={readinessSeries} max={8} size={240} />Props
| Prop | Type | Default | Description |
|---|---|---|---|
categories | string[] | - | Spoke labels, clockwise from the top. |
series | Array<{ name: string; values: number[] }> | - | One polygon per series (1–3 supported); second and third series use success and info tones. |
max | number | data max | Scale ceiling; values clamp into 0..max. |
size | number | 260 | viewBox edge; the SVG scales to 100%. |
label | string | "Radar chart" | Chart name; opens the auto-summary. |
class | string | - | Style passthrough. |
Static honesty
Static SVG, no scripts. Polygon points are computed in frontmatter (one angle per category, radius scaled by value over max). Three ring guides sit at one-third, two-thirds, and full radius with spokes per category. Values outside 0..max clamp to the ring edges; with no explicit max the ceiling is the data max. A multi-series chart prints a real <ul> legend with swatch and name.
Accessibility
- The chart is an image (
role="img") with an auto-summary label:"{Label}, {n} categories, {series names}". - A
<title>repeats the summary and a<desc>describes the reading direction and scale. - Every polygon carries a
<title>with its per-category values; every category label exists as text.