Docs Charts Core charts

RadarChart

React example follows below.
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>
);
}
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>
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;
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>
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
axes
string[]
—
required
series
ChartRadarSeries[]
—
required
rings
number | undefined
—
optional
renderer
ChartRenderer | undefined
—
optional
className
string | undefined
—
optional
theme
import("@grassroot/theme").PartialChartTheme | undefined
—
optional
animation
import("@grassroot/theme").ChartAnimationInput | undefined
—
optional
title
string | undefined
—
optional
description
string | undefined
—
optional
ariaLabel
string | undefined
—
optional
keyboardNavigation
boolean | undefined
—
optional
Prop
axes
Type
string[]
Default
—
Requirement
required
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
axes
readonly string[]
—
required
series
readonly RadarSeriesDatum[]
—
required
rings
number | undefined
4
optional
width
number | undefined
—
optional
height
number | undefined
—
optional
max
number | undefined
—
optional
ariaLabel
string | undefined
—
optional
renderer
ChartRenderer | undefined
—
optional
theme
PartialChartTheme | undefined
—
optional
animation
ChartAnimationInput | undefined
—
optional
title
string | undefined
—
optional
description
string | undefined
—
optional
keyboardNavigation
boolean | undefined
—
optional
className
string | 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
axes
readonly string[]
—
required
series
readonly RadarSeriesDatum[]
—
required
rings
number
4
optional
width
number
—
optional
height
number
—
optional
max
number
—
optional
ariaLabel
string
—
optional
renderer
ChartRenderer
—
optional
theme
PartialChartTheme
—
optional
animation
ChartAnimationInput
—
optional
title
string
—
optional
description
string
—
optional
keyboardNavigation
boolean
—
optional
className
string
—
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
axes
readonly string[]
—
required
series
readonly RadarSeriesDatum[]
—
required
rings
number
4
optional
width
number
—
optional
height
number
—
optional
max
number
—
optional
ariaLabel
string
—
optional
renderer
ChartRenderer
—
optional
theme
PartialChartTheme
—
optional
animation
ChartAnimationInput
—
optional
title
string
—
optional
description
string
—
optional
keyboardNavigation
boolean
—
optional
class
string
—
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
axes
readonly string[]
—
required
series
readonly RadarSeriesDatum[]
—
required
rings
number
4
optional
width
number
—
optional
height
number
—
optional
max
number
—
optional
ariaLabel
string
—
optional
class
string
—
optional
renderer
ChartRenderer
—
optional
theme
PartialChartTheme
—
optional
animation
ChartAnimationInput
—
optional
title
string
—
optional
description
string
—
optional
keyboardNavigation
boolean
—
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