Skip to content

Pie Chart

CSS conic-gradient pie / donut chart with labels.

Source: src/styles/components/chart--pie.scss, src/scripts/chart.js, src/scripts/dga-pie-chart.js
Demo: index.html
JavaScript: Optional — web component or DGAChart class


html
<dga-pie-chart
  data='[
    {"label":"Item 1","from":"0%","to":"40%","color":"var(--dga-primary-100)"},
    {"label":"Item 2","from":"40%","to":"70%","color":"var(--dga-gray-200)"},
    {"label":"Item 3","from":"70%","to":"100%","color":"var(--dga-primary-700)"}
  ]'>
</dga-pie-chart>

Preview

Donut

html
<dga-pie-chart hole data='[{"label":"A","from":"0%","to":"35%","color":"var(--dga-primary-100)"},{"label":"B","from":"35%","to":"65%","color":"var(--dga-gray-200)"},{"label":"C","from":"65%","to":"100%","color":"var(--dga-primary-700)"}]'></dga-pie-chart>

Preview

Attributes

AttributeDefaultDescription
data[]JSON array of segments (see data shape)
holefalsePresent = donut (white center)

No new DGAChart() required. Update the data attribute to re-render.


Option 2: Legacy markup + DGAChart

html
<!-- Full pie -->
<div id="chart1" class="dga-pie-chart" data-hole="false"></div>

<!-- Donut -->
<div id="chart2" class="dga-pie-chart" data-hole="true"></div>
js
import { DGAChart } from '@waaelg/dga-design-system'

const data = [
  { label: 'Item 1', from: '0%', to: '40%', color: 'var(--dga-primary-100)' },
  { label: 'Item 2', from: '40%', to: '70%', color: 'var(--dga-gray-200)' },
  { label: 'Item 3', from: '70%', to: '100%', color: 'var(--dga-primary-700)' },
]

new DGAChart(document.getElementById('chart1'), data)
AttributeEffect
data-hole="false"Solid pie
data-hole="true"Donut (white center)

Default size: 150×150px, centered with margin: 0 auto.


Data shape

FieldDescription
labelLegend text
fromSegment start (e.g. 0%)
toSegment end (e.g. 40%)
colorHex (#2d7a5a), CSS var (var(--dga-primary-100)), or token name (primary-100)

Generated markup

JS adds:

  • background: conic-gradient(...) on the chart element
  • .dga-pie-chart__labels with .dga-pie-chart__label and .dga-pie-chart__circle swatches

MIT Licensed — Wael Alghamdi