Skip to main content

Charts

Chart components built on Chart.js. Available: PrimusLineChart, PrimusBarChart, PrimusPieChart, PrimusSparkline.

Preview ยท Charts

Codeโ€‹

<div class="card" style="padding:1.5rem;max-width:480px;width:100%">
<div class="card-label" style="margin-bottom:0.75rem">Revenue Trend โ€” Jan to Jun</div>
<div style="display:flex;align-items:flex-end;gap:6px;height:80px">
<div style="flex:1;background:var(--primary);opacity:0.35;border-radius:3px 3px 0 0;height:38%"></div>
<div style="flex:1;background:var(--primary);opacity:0.5;border-radius:3px 3px 0 0;height:52%"></div>
<div style="flex:1;background:var(--primary);opacity:0.65;border-radius:3px 3px 0 0;height:66%"></div>
<div style="flex:1;background:var(--primary);opacity:0.75;border-radius:3px 3px 0 0;height:58%"></div>
<div style="flex:1;background:var(--primary);opacity:0.88;border-radius:3px 3px 0 0;height:82%"></div>
<div style="flex:1;background:var(--primary);border-radius:3px 3px 0 0;height:100%"></div>
</div>
<div style="display:flex;justify-content:space-between;font-size:0.7rem;color:var(--muted-foreground);margin-top:6px">
<span>Jan</span><span>Feb</span><span>Mar</span><span>Apr</span><span>May</span><span>Jun</span>
</div>
</div>

Propsโ€‹

PropTypeDefaultDescription
labelsstring[][]X-axis labels
seriesChartSeries[]requiredData series
heightnumber320Chart height in px
widthnumberโ€”Chart width in px (defaults to container)
legendbooleantrueShow legend
responsivebooleantrueResize with container
optionsobjectโ€”Chart.js options override

TypeScript interfacesโ€‹

interface ChartSeries {
label: string; // Legend label e.g. 'Revenue'
data: number[]; // One value per label
color?: string; // Override series colour
}

// Example โ€” multi-series line chart
const labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];
const series: ChartSeries[] = [
{ label: 'Revenue', data: [40000, 52000, 61000, 58000, 74000, 89000] },
{ label: 'Costs', data: [28000, 31000, 35000, 33000, 41000, 44000] },
];

// PieChart / DoughnutChart โ€” one data point per label
const pieSeries: ChartSeries[] = [
{ label: 'Plans', data: [30, 50, 20] } // matches labels: ['Starter','Pro','Enterprise']
];
Version history

See the Changelog for version history and breaking changes.