suiss/ui · Chart
Radial Chart Interactive
A weekly activity view where picking a day animates three large rings and updates each ring's totals.
Radial 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.
An activity summary with a strip of seven day buttons, each showing mini rings, and large Move, Exercise and Stand rings that fill to the selected day's values. Totals and goal progress for each ring update next to it. Use it as a pattern for daily goals that readers browse day by day.
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
-
Add the pieces it builds on: Card, Toggle Group.
-
Copy the source into
components/charts/radial-chart-interactive.tsx:
- Update the import paths to match your project.
Usage
Replace WEEK with your own days and values, one number per ring in the same order as RINGS. Edit RINGS to change labels, units, goals and colors. Set the initially selected day in the selected state.
Notes
The rings are plain SVG rather than a Recharts chart, so there is no tooltip. Values beyond the goal show a full ring, while the text still reports the real percentage. Day buttons are fully keyboard accessible, the totals are announced through a live region, and the fill animation respects reduced motion.

A Card with a ToggleGroup of seven days, each showing small rings, above a large ring view and per-ring totals. The rings are drawn with Svg circles colored through ChartPalette; RINGS sets each label, unit, goal and color, and WEEK holds three values per day. Picking a day updates the large rings and the totals, which show the value, goal and percentage, with a note when a goal is met.
Installation
The CLI also adds what it builds on: Card, Chart, Text, Toggle Group.
Manual
- Install the dependencies:
-
Add the pieces it builds on: Card, Chart, Text, Toggle Group.
-
Copy the source into
components/charts/radial-chart-interactive.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Card, Chart, Text, Toggle Group.
-
Copy the source into
components/charts/radial-chart-interactive.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Card, Chart, Text, Toggle Group.
-
Copy the source into
components/charts/radial-chart-interactive.tsx:
- Update the import paths to match your project.
-
Target iOS 17 or later.
-
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 WEEK with your daily values and adjust the goals, units and colors in RINGS. The component takes no props.
