DonutChart

Donut or pie chart with optional center label, legend, and per-slice percentage tooltip. Built on recharts.

Usage

tsx
import { DonutChart } from 'fxui-core';

const data = [
  { label: 'Direct', value: 4200, color: '#0066FF' },
  { label: 'Organic', value: 3100, color: '#FFE500' },
  { label: 'Social', value: 1800, color: '#FF2D78' },
];

<DonutChart data={data} />

With Center Label

tsx
<DonutChart
  data={data}
  centerValue="11K"
  centerLabel="Total visits"
/>

Pie Variant

tsx
<DonutChart data={data} variant="pie" />

With Percentage Labels

tsx
<DonutChart data={data} variant="pie" showLabels showLegend={false} />

Props

| Prop | Type | Default | |------|------|---------| | data | DonutChartItem[] | required | | variant | 'donut' \| 'pie' | 'donut' | | height | number | 300 | | centerLabel | string | — | | centerValue | string \| number | — | | showLegend | boolean | true | | showTooltip | boolean | true | | showLabels | boolean | false | | innerRadius | number \| string | '55%' | | outerRadius | number \| string | '80%' |

ts
interface DonutChartItem {
  label: string;
  value: number;
  color?: string;
}