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