DDS/Components/DonutChart

DonutChart

Charts

An SVG donut (or pie) chart with hover highlights, percentage legend, and a center total label.

Props

PropTypeDefaultDescription
data*DsDonutChartItem[]Each item: { label, value, color? }.
thicknessnumber28Ring thickness in SVG units. 0 = pie chart.
radiusnumber70Outer radius in SVG units.
showLegendbooleantrueShow legend with percentages.
showTotalbooleantrueShow total in center.
totalLabelstring"Total"Center sub-label text.
sizenumber200Rendered size in pixels.

Examples

Donut chart
10,000Sessions
Direct4,20042.0%
Organic2,80028.0%
Referral1,90019.0%
Social1,10011.0%
vue
<DsDonutChart
  :data="[
    { label: 'Direct', value: 4200 },
    { label: 'Organic', value: 2800 },
    { label: 'Referral', value: 1900 },
    { label: 'Social', value: 1100 },
  ]"
  :show-legend="true"
  :show-total="true"
  total-label="Sessions"
/>
Pie chart (thickness: 0)
Direct4,20042.0%
Organic2,80028.0%
Referral1,90019.0%
Social1,10011.0%
vue
<DsDonutChart
  :data="[
    { label: 'Direct', value: 4200 },
    { label: 'Organic', value: 2800 },
    { label: 'Referral', value: 1900 },
    { label: 'Social', value: 1100 },
  ]"
  :show-legend="true"
  :show-total="true"
  total-label="Sessions"
/>

Skeleton

Use DsDonutChartSkeleton as a loading placeholder while content is being fetched.

Default
vue
<DsDonutChartSkeleton :size="160" />

Accessibility

  • Hover tooltip shows label, value and percentage.