Chart
Recharts inside a themed container. The config names each series and points it at a brand chart role, so the colours follow light and dark without a single hex value.
bunx --bun shadcn@4.17.0 add @waimakers/chart- npm dependencies
- recharts@3.8.0
From the registry
shadcn's Chart over Recharts, restyled to the brand. Recharts is a charting library rather than a headless primitive library, so nothing here swaps out of Radix; what the port changes is the palette. ChartContainer takes a ChartConfig keyed by series and ChartStyle writes it out as --color-<series> custom properties scoped to that one chart's data-chart attribute, so a series colour is passed in by the caller from the brand tokens and never restated here. Recharts paints its own defaults as literal hex, so the container overrides them by attribute selector: grid, polar-grid and reference lines take --border, the tooltip cursor takes --border or --muted, and the white dot and sector strokes go transparent. Axis ticks and legend labels are --text-subtle. The tooltip surface is the raised popover at the kit radius with the overlay shadow and a themed hairline, matching Popover and DropdownMenu. ChartContainer is a plain div that forwards its props, so the caller owns the accessible name: give the chart role="img" with an aria-label, or a figure with a caption.
Examples
Line
Two series over time. The second series is dashed so it reads without colour.
Bar
One series per category, on the first chart role.
With legend
A legend and tooltip from the kit, labelled from the chart config.
Loading
Hold the chart's height with a Skeleton while the numbers load.
Empty
No data yet: an EmptyState in the chart's place, at the same height.
No runs this week
The chart fills in once an agent has run.