Concrete
data
Component

Donut chart

Part-to-whole ring summary with controlled center metric and thickness.

Donut chart works best for a small number of stable segments. It should summarize, not explain an entire distribution.

Workload split

ready
64%Router
Router52Memory38Tools44Eval31
Playground

Props in the URL.

Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.

Loading playground.
States

Rendered matrix.

Every state maps to the same component render route through the `state` query param.

Workload split

ready
64%Router
Router52Memory38Tools44Eval31
Default

Medium ring with center label.

/render state

Workload split

ready
64%Router
Router52Memory38Tools44Eval31
Thin

Thin ring for quiet summaries.

/render state

Workload split

ready
64%Router
Router52Memory38Tools44Eval31
Thick

Thick ring for primary scorecards.

/render state

Workload split

ready
Router52Memory38Tools44Eval31
Plain

Ring without center label.

/render state
Props

Public contract.

NameTypeDefaultDescription
title *string-Chart title.
descriptionstring-Muted supporting copy.
segmentsreadonly DataPoint[][]Part-to-whole segments.
centerLabelstring-Optional center metric override.
showCenterLabelbooleantrueShows the center metric and leading segment label.
thickness'thin' | 'medium' | 'thick'mediumRing stroke thickness.
state'ready' | 'loading' | 'empty' | 'error'readyAsync data state.
heightnumber220Plot stage height.
legendbooleantrueShows derived legend indicators.
surface'raised' | 'sunken' | 'transparent'raisedPlot stage surface.