Bar Chart Widget
Configuring data sources, axes, colours, and chart-display options for the Bar Chart widget.
The Bar Chart widget renders a bar chart on a public page using Chart.js. The chart's data comes from a Collection — the same Collections that power Collection Manager listings — so updating chart data is a matter of editing rows in the collection, not the widget itself.
The widget renders a <canvas> element and a JavaScript bundle on the page; no SVG fallback. Browsers without canvas support will see nothing.
When to use this widget
Use Bar Chart when you have a small set of labelled numeric values to visualise side-by-side — monthly signups, funds raised by campaign, attendance by event. For categorical comparison where the shape of the data matters more than precise values, a bar chart works well. For trend over time at high cardinality, consider a different visualisation.
Inspector — Content tab
- Chart title — a heading rendered above the chart. Optional; leave blank for a chart with no title.
- Collection — the Collection that supplies the data. Pick from the dropdown. The collection must already exist (create one via Collections in the CMS group).
- X axis field — the field from the chosen collection whose value becomes each bar's label. Typically a text or category field (e.g.
month_name,campaign_handle). - Y axis field — the field whose numeric value becomes each bar's height. Must contain numbers — non-numeric values render as zero. If the field is missing from a row, that bar shows zero height.
- X axis label — the caption rendered below the X axis. Optional.
- Y axis label — the caption rendered to the left of the Y axis. Optional.
The Collection, X axis field, and Y axis field are all required. Until all three are set the widget shows a setup notice in the editor instead of rendering, and on the public page renders nothing.
Inspector — Appearance tab
- Bar fill color — the colour of every bar. Single colour — the widget does not currently support per-bar colouring or gradient palettes. Default is the CRM brand blue (
#0172ad).
Standard widget appearance fields (background, padding, full-width) apply as usual.
Common patterns
- Monthly trend over the year. Create a collection with one row per month and fields
month(text, e.g.Jan,Feb) andvalue(number). Map X tomonthand Y tovalue. Order the collection rows in display order, since the chart renders rows in the order returned by the data source. - Campaign comparison. Create a collection of campaigns with fields
nameandraised_amount. Map X toname, Y toraised_amount. Update the values as totals change. - Survey result breakdown. Create a collection with one row per option and a count field. Map X to option text, Y to count.
Gotchas
- The Y field must be numeric. If you map Y to a text field, every bar reads as zero. Check that the field's type in the collection definition is
number. - Empty collections render an empty canvas. No "no data" message — just a blank chart frame. If a chart looks empty in preview, verify the collection has rows and that the chosen Y field has values.
- Tags and sort order. The chart honours the widget's Query Panel settings (order by, tag filter, limit). Use these to slice the data set down — for example, "top 10 by amount" or "tagged
featured". - Chart.js bundle. The widget pulls in the Chart.js library on any page where a Bar Chart appears. If page weight matters, prefer one chart per page over many.