suiss/ui · Chart
Radar Chart Interactive
A phone model comparison where toggle chips show up to three models, which grow in and out of the radar.
Radar Chart Interactive is an open-source chart from suiss/ui for React, React Native, SwiftUI and Jetpack Compose. The @esuiss/ui CLI copies its source into your project, so you own the code.
A phone comparison where chips select up to three models; their shapes grow into or shrink out of the radar, and side cards show each model's overall score or the score on the hovered axis. Use it as a template for comparing a handful of items across shared criteria.
Installation
CLI
Works in any project with a components.json. See Installation for the one-line registry setup. Or use the suiss/ui CLI:
Manual
- Install the dependencies:
-
Copy the source into
components/charts/radar-chart-interactive.tsx:
- Update the import paths to match your project.
Usage
Replace AXES with your criteria and SCORES with one array per item in the same order, then add each item's label and color to chartConfig. Change MAX_SELECTED to allow more or fewer items at once and the initial selected state to pick which ones start visible.
Notes
The scale is fixed from 0 to 100, so rescale your scores or change the radius axis domain. Selecting past the limit drops the oldest selection, and the last model can't be turned off. The score cards are a live region, and the grow animation is skipped when reduced motion is preferred.

A Card with a row of Toggle chips, a RadarChart and a summary card per model. Scores live in SCORES, one array per model, in the order of AXES. Up to three models can be selected; picking a fourth drops the oldest, and the last one cannot be cleared. Pressing an axis bolds its label and switches each summary from the overall average to that axis score; a tooltip lists the values. Each radar sets isAnimationActive={false} and draws without the enter animation.
Installation
The CLI also adds what it builds on: Card, Chart, Text, Toggle.
Manual
-
Target iOS 17 or later.
-
Add the Swift package to your app:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Add the files to your app target.
- Set
minSdkto 24 or higher and add the dependencies:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Update the
com.esuiss.uipackage names to match your project.
Usage
Replace AXES and SCORES with your attributes and items, and add a matching entry to chartConfig and SWATCH for each. Change MAX_SELECTED to allow more series. The component takes no props.
