- Prop
axes- Type
string[]- Default
- —
- Requirement
- required
RadarChart
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- surface
- —
- marks
- —
- size
- —
- value
- —
ts
import { RadarChart } from "@grassroot/charts-react"; const radarSeries = [ { name: "Target", values: [ 0.9, 0.85, 0.9, 0.85, 0.8, 0.75, 0.88, 0.7, ], dashed: true, color: "var(--vs-neutral-400)", }, { name: "Current", values: [ 0.94, 0.78, 0.88, 0.82, 0.73, 0.69, 0.81, 0.64, ], color: "var(--accent)", }, { name: "Prior quarter", values: [ 0.91, 0.74, 0.84, 0.76, 0.71, 0.62, 0.77, 0.58, ], color: "var(--vs-info)", },]; export default function RadarChartDemo() { return ( <div> <RadarChart animation={{ durationMs: 560, staggerMs: 44 }} axes={[ "Availability", "Latency", "Security", "Recovery", "Cost", "Carbon", "Compliance", "Developer experience", ]} series={radarSeries} ariaLabel="Platform readiness versus target and the prior quarter across eight operational dimensions, Q2 2026" /> </div> );}- surface
- —
- marks
- —
- size
- —
- value
- —
ts
<script setup lang="ts">import { RadarChart } from "@grassroot/charts-vue"; const radarSeries = [ { name: "Target", values: [ 0.9, 0.85, 0.9, 0.85, 0.8, 0.75, 0.88, 0.7, ], dashed: true, color: "var(--vs-neutral-400)", }, { name: "Current", values: [ 0.94, 0.78, 0.88, 0.82, 0.73, 0.69, 0.81, 0.64, ], color: "var(--accent)", }, { name: "Prior quarter", values: [ 0.91, 0.74, 0.84, 0.76, 0.71, 0.62, 0.77, 0.58, ], color: "var(--vs-info)", },];</script> <template> <div> <RadarChart :animation="{ durationMs: 560, staggerMs: 44 }" :axes="[ 'Availability', 'Latency', 'Security', 'Recovery', 'Cost', 'Carbon', 'Compliance', 'Developer experience', ]" :series="radarSeries" aria-label="Platform readiness versus target and the prior quarter across eight operational dimensions, Q2 2026" /> </div></template>- surface
- —
- marks
- —
- size
- —
- value
- —
ts
import { ChangeDetectionStrategy, Component } from "@angular/core";import { GrassrootRadarChart } from "@grassroot/charts-angular"; @Component({ selector: "app-radar-chart-chart-demo", standalone: true, imports: [GrassrootRadarChart], changeDetection: ChangeDetectionStrategy.OnPush, host: { style: "display:block" }, template: `<div> <grassroot-radar-chart style="display:contents" [animation]="{ durationMs: 560, staggerMs: 44 }" [axes]="[ 'Availability', 'Latency', 'Security', 'Recovery', 'Cost', 'Carbon', 'Compliance', 'Developer experience', ]" [series]="radarSeries" ariaLabel="Platform readiness versus target and the prior quarter across eight operational dimensions, Q2 2026" /> </div>`,})export class RadarChartDemoComponent { readonly radarSeries = [ { name: "Target", values: [ 0.9, 0.85, 0.9, 0.85, 0.8, 0.75, 0.88, 0.7, ], dashed: true, color: "var(--vs-neutral-400)", }, { name: "Current", values: [ 0.94, 0.78, 0.88, 0.82, 0.73, 0.69, 0.81, 0.64, ], color: "var(--accent)", }, { name: "Prior quarter", values: [ 0.91, 0.74, 0.84, 0.76, 0.71, 0.62, 0.77, 0.58, ], color: "var(--vs-info)", }, ];} export default RadarChartDemoComponent;- surface
- —
- marks
- —
- size
- —
- value
- —
ts
<script lang="ts"> import { RadarChart } from "@grassroot/charts-svelte"; const radarSeries = [ { name: "Target", values: [ 0.9, 0.85, 0.9, 0.85, 0.8, 0.75, 0.88, 0.7, ], dashed: true, color: "var(--vs-neutral-400)", }, { name: "Current", values: [ 0.94, 0.78, 0.88, 0.82, 0.73, 0.69, 0.81, 0.64, ], color: "var(--accent)", }, { name: "Prior quarter", values: [ 0.91, 0.74, 0.84, 0.76, 0.71, 0.62, 0.77, 0.58, ], color: "var(--vs-info)", }, ];</script> <div> <RadarChart animation={{ durationMs: 560, staggerMs: 44 }} axes={[ "Availability", "Latency", "Security", "Recovery", "Cost", "Carbon", "Compliance", "Developer experience", ]} series={radarSeries} ariaLabel="Platform readiness versus target and the prior quarter across eight operational dimensions, Q2 2026" /></div>- surface
- —
- marks
- —
- size
- —
- value
- —
ts
/** @jsxImportSource solid-js */import { RadarChart } from "@grassroot/charts-solid"; const radarSeries = [ { name: "Target", values: [ 0.9, 0.85, 0.9, 0.85, 0.8, 0.75, 0.88, 0.7, ], dashed: true, color: "var(--vs-neutral-400)", }, { name: "Current", values: [ 0.94, 0.78, 0.88, 0.82, 0.73, 0.69, 0.81, 0.64, ], color: "var(--accent)", }, { name: "Prior quarter", values: [ 0.91, 0.74, 0.84, 0.76, 0.71, 0.62, 0.77, 0.58, ], color: "var(--vs-info)", },]; export default function RadarChartDemo() { return ( <div> <RadarChart animation={{ durationMs: 560, staggerMs: 44 }} axes={[ "Availability", "Latency", "Security", "Recovery", "Cost", "Carbon", "Compliance", "Developer experience", ]} series={radarSeries} ariaLabel="Platform readiness versus target and the prior quarter across eight operational dimensions, Q2 2026" /> </div> );}Installation
API Reference
Import
import { RadarChart } from "@grassroot/charts-react";
Props
Prop
Type
Default
Requirement
axesstring[]—
required
seriesChartRadarSeries[]—
required
ringsnumber | undefined—
optional
rendererChartRenderer | undefined—
optional
classNamestring | undefined—
optional
themeimport("@grassroot/theme").PartialChartTheme | undefined—
optional
animationimport("@grassroot/theme").ChartAnimationInput | undefined—
optional
titlestring | undefined—
optional
descriptionstring | undefined—
optional
ariaLabelstring | undefined—
optional
- Prop
series- Type
ChartRadarSeries[]- Default
- —
- Requirement
- required
- Prop
rings- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer | undefined- Default
- —
- Requirement
- optional
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
theme- Type
import("@grassroot/theme").PartialChartTheme | undefined- Default
- —
- Requirement
- optional
- Prop
animation- Type
import("@grassroot/theme").ChartAnimationInput | undefined- Default
- —
- Requirement
- optional
- Prop
title- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
description- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
ariaLabel- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean | undefined- Default
- —
- Requirement
- optional
Content regions
dataSummary
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { RadarChart } from "@grassroot/charts-vue";
Props
Prop
Type
Default
Requirement
axesreadonly string[]—
required
seriesreadonly RadarSeriesDatum[]—
required
ringsnumber | undefined4optional
widthnumber | undefined—
optional
heightnumber | undefined—
optional
maxnumber | undefined—
optional
ariaLabelstring | undefined—
optional
rendererChartRenderer | undefined—
optional
themePartialChartTheme | undefined—
optional
animationChartAnimationInput | undefined—
optional
titlestring | undefined—
optional
descriptionstring | undefined—
optional
classNamestring | undefined—
optional
- Prop
axes- Type
readonly string[]- Default
- —
- Requirement
- required
- Prop
series- Type
readonly RadarSeriesDatum[]- Default
- —
- Requirement
- required
- Prop
rings- Type
number | undefined- Default
4- Requirement
- optional
- Prop
width- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
height- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
max- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
ariaLabel- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer | undefined- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme | undefined- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput | undefined- Default
- —
- Requirement
- optional
- Prop
title- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
description- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
Content regions
dataSummary
Import
import { ChangeDetectionStrategy, Component } from "@angular/core";
import { GrassrootRadarChart } from "@grassroot/charts-angular";
Props
Prop
Type
Default
Requirement
axesreadonly string[]—
required
seriesreadonly RadarSeriesDatum[]—
required
ringsnumber4optional
widthnumber—
optional
heightnumber—
optional
maxnumber—
optional
ariaLabelstring—
optional
rendererChartRenderer—
optional
themePartialChartTheme—
optional
animationChartAnimationInput—
optional
titlestring—
optional
descriptionstring—
optional
classNamestring—
optional
- Prop
axes- Type
readonly string[]- Default
- —
- Requirement
- required
- Prop
series- Type
readonly RadarSeriesDatum[]- Default
- —
- Requirement
- required
- Prop
rings- Type
number- Default
4- Requirement
- optional
- Prop
width- Type
number- Default
- —
- Requirement
- optional
- Prop
height- Type
number- Default
- —
- Requirement
- optional
- Prop
max- Type
number- Default
- —
- Requirement
- optional
- Prop
ariaLabel- Type
string- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput- Default
- —
- Requirement
- optional
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
description- Type
string- Default
- —
- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Content regions
dataSummary
Import
import { RadarChart } from "@grassroot/charts-svelte";
Props
Prop
Type
Default
Requirement
axesreadonly string[]—
required
seriesreadonly RadarSeriesDatum[]—
required
ringsnumber4optional
widthnumber—
optional
heightnumber—
optional
maxnumber—
optional
ariaLabelstring—
optional
rendererChartRenderer—
optional
themePartialChartTheme—
optional
animationChartAnimationInput—
optional
titlestring—
optional
descriptionstring—
optional
classstring—
optional
- Prop
axes- Type
readonly string[]- Default
- —
- Requirement
- required
- Prop
series- Type
readonly RadarSeriesDatum[]- Default
- —
- Requirement
- required
- Prop
rings- Type
number- Default
4- Requirement
- optional
- Prop
width- Type
number- Default
- —
- Requirement
- optional
- Prop
height- Type
number- Default
- —
- Requirement
- optional
- Prop
max- Type
number- Default
- —
- Requirement
- optional
- Prop
ariaLabel- Type
string- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput- Default
- —
- Requirement
- optional
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
description- Type
string- Default
- —
- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean- Default
- —
- Requirement
- optional
- Prop
class- Type
string- Default
- —
- Requirement
- optional
Content regions
dataSummary
Import
import { RadarChart } from "@grassroot/charts-solid";
Props
Prop
Type
Default
Requirement
axesreadonly string[]—
required
seriesreadonly RadarSeriesDatum[]—
required
ringsnumber4optional
widthnumber—
optional
heightnumber—
optional
maxnumber—
optional
ariaLabelstring—
optional
classstring—
optional
rendererChartRenderer—
optional
themePartialChartTheme—
optional
animationChartAnimationInput—
optional
titlestring—
optional
descriptionstring—
optional
- Prop
axes- Type
readonly string[]- Default
- —
- Requirement
- required
- Prop
series- Type
readonly RadarSeriesDatum[]- Default
- —
- Requirement
- required
- Prop
rings- Type
number- Default
4- Requirement
- optional
- Prop
width- Type
number- Default
- —
- Requirement
- optional
- Prop
height- Type
number- Default
- —
- Requirement
- optional
- Prop
max- Type
number- Default
- —
- Requirement
- optional
- Prop
ariaLabel- Type
string- Default
- —
- Requirement
- optional
- Prop
class- Type
string- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput- Default
- —
- Requirement
- optional
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
description- Type
string- Default
- —
- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean- Default
- —
- Requirement
- optional
Content regions
dataSummary