Radial Bar

Progress of one or several items as concentric rings over a track — goals, quotas, completion. Drawn as SVG by the component, rendered on the server and themed by the design tokens.

Part of @tectra-ng/charts (npm install @tectra-ng/charts, also included in tectra-ng).

Features12APIThemingAccessibility

Basic

One ring per item, from the outside in, each filled up to its share of max (100). The centre shows the average under totalLabel; hover a ring to see its own share.

Arrow keys move between values
Sprint progress by stage. Radial bar chart, 1 series, 4 values: Design 92%, Build 68%, Review 45%, Release 20%
CategoryValueShare
Design9292%
Build6868%
Review4545%
Release2020%

Single

A single item fills one ring and always shows its share in the centre. Its own max sets the full ring; hole widens the centre.

Arrow keys move between values
Storage used. Radial bar chart, 1 series, 1 value: Storage used 64%
CategoryValueShare
Storage used64064%

Horseshoe

startAngle and endAngle turn the rings into any arc — here a horseshoe open at the bottom. The chart fits the arc into its box.

Arrow keys move between values
Quarter goals. Radial bar chart, 1 series, 3 values: Revenue 84%, New clients 61%, Retention 93%
CategoryValueShare
Revenue8484%
New clients6161%
Retention9393%

Center

centerValue="value" puts the value instead of the share in the centre, formatted by valueFormat. Each item has its own max; legendValues adds the value and the share to the legend.

Arrow keys move between values
Steps towards the daily goal. Radial bar chart, 1 series, 3 values: Steps 74.2%, Active minutes 63.3%, Floors 90%
CategoryValueShare
Steps7.4K74.2%
Active minutes3863.3%
Floors990%

Legend

The stat legend shows the values in large type with the share under them and replaces the tooltip. A click on a legend item hides its ring.

Arrow keys move between values
Plan completion by team. Radial bar chart, 1 series, 3 values: Platform 76%, Mobile 58%, Web 89%
CategoryValueShare
Platform7676%
Mobile5858%
Web8989%

Events

barClick reports the clicked ring with its value and share; barToggle reports legend changes.

Arrow keys move between values
Release checklist. Radial bar chart, 1 series, 3 values: Tests 96%, Docs 70%, Translations 35%
CategoryValueShare
Tests9696%
Docs7070%
Translations3535%

Click a ring or a legend item.

Loading and empty

loading keeps the size with a skeleton; empty items (or only null values) show "No data".

No data

Live

New items redraw in place — every ring slides to its new length and the centre follows.

Arrow keys move between values
Daily goals. Radial bar chart, 1 series, 3 values: Move 15%, Exercise 44%, Stand 76%
CategoryValueShare
Move1515%
Exercise4444%
Stand7676%

Accessibility

Tab to the chart: the arrow keys walk the rings, Home / End jump to the outer and inner ring, Escape clears the focus. Each ring is announced with its value and share; screen readers also get a summary and a hidden data table.

Arrow keys move between values
Course completion. Radial bar chart, 1 series, 3 values: Videos 80%, Quizzes 55%, Project 30%
CategoryValueShare
Videos8080%
Quizzes5555%
Project3030%

Design tokens

dt sets the ring thickness (share of each slot), the track colour, the centre text and the palette of one chart.

Arrow keys move between values
Tasks done and open. Radial bar chart, 1 series, 2 values: Done 72%, In review 18%
CategoryValueShare
Done7272%
In review1818%

Pass through

pt reaches the parts — track, bar, center, legend, plot, tooltip and more. Here the track is dotted.

Arrow keys move between values
Budget used. Radial bar chart, 1 series, 2 values: Marketing 64%, Hiring 41%
CategoryValueShare
Marketing6464%
Hiring4141%

Unstyled

unstyled removes the tectra styles: no tokens, no motion — the rings, the round ends, the tooltip and the keyboard stay, ready for your own CSS.

Arrow keys move between values
Unstyled chart. Radial bar chart, 1 series, 2 values: A 70%, B 35%
CategoryValueShare
A7070%
B3535%