Three charts, no chart library
2026年6月17日
DOM/charts draws sparklines, bar charts and donuts as plain SVG. charts::spark(), charts::bars(), charts::donut(), and nothing arrives from a CDN.
It covers three shapes rather than thirty on purpose. Charting libraries are large because they are general, and generality is exactly what a dashboard tile does not need: a number over time, a comparison between categories, a share of a whole. Those three answer most of what an application actually displays, and they are small enough to render server-side into the response that was going out anyway.
Being SVG rather than canvas is what makes them behave. They scale without blurring, they inherit the current theme colour, and they print. A chart on this site takes the accent of whichever of the thirty-one themes you picked, because the colour is passed in rather than baked.
{{ charts::spark($this->revenue, $this->accent, 320, 56) }}
Both factuur.software and logbook.tools had written their own before this existed, which is what qualified it for the engine in the first place.
The limit is stated rather than hidden: this is for display, not for exploration. Zooming, brushing, tooltips over dense series and axes that negotiate their own ticks are a different product, and an application that genuinely needs them should reach for one.
Engine 1.0. See charts in the manual.