← Back to all sparks
B

billboard.js

ANALYTICS
Velocity2.5

D3 based reusable chart library for data visualization

A canvas renderer and tree-shakable modules turn the 4.0 line into a rewrite, not a refresh

canvas-renderingtree-shakingbundle-sizeweb-workersbreaking-changessubcharts
Current state
billboard.js is deep in a 4.x prerelease cycle that reaches past feature work into how the library draws and ships. A canvas rendering mode now sits alongside the long-standing SVG path, ESM builds are tree-shakable down to grid, regions and category modules, and chart.export() and chart.flow() have been pulled out of the default bundle. The releases since then are mostly the follow-up work canvas rendering created — background positioning, touch interaction parity, candlestick label alignment.
Where it's heading
The direction is bundle size and rendering throughput, aimed at the cases where SVG stops scaling. The newest prerelease adds a pre-bundled worker with a configurable workerUrl for the boost path, plus configurable subchart rendering and grid line class selectors on canvas, which suggests canvas is moving from a mode you opt into toward one that carries the same feature surface as SVG.
Prediction
Expect the remaining canvas gaps to keep closing release by release until the two renderers reach parity, at which point a 4.0 final becomes possible. The entries do not indicate a target date.

Recent moves

  1. 9d ago

    Pre-bundled boost worker, configurable subchart rendering

    The first 4.1 prerelease, and it keeps filling in the canvas and performance paths: the boost worker source is pre-bundled with a workerUrl option, canvas gains grid line class selectors, and subcharts get a focus grid toggle and configurable rendering. Fixes cover invalid SVG arc flags under bar.radius and the select API honouring multiple=false.

    View source ↗
  2. 2mo ago

    numberFormat option for the table view plugin

    A small prerelease adding a numberFormat configuration option to plugin-tableview and aligning candlestick labels with their wick endpoints. Incremental polish inside the 4.0 cycle.

    View source ↗
  3. 2mo ago

    Canvas background position and touch interaction parity fixes

    Two corrections to the new canvas path — background image positioning and parity between rendering and touch interaction. The kind of gap that surfaces immediately after a second renderer lands.

    View source ↗
  4. 2mo ago

    4.0.0-next.2

    A single commit addressing canvas render review issues, published minutes after the previous prerelease. Cleanup rather than change.

    View source ↗
  5. 2mo ago

    billboard.js adds a canvas renderer and breaks the default ESM bundle

    ⚡ SPARK

    The release that sets up everything after it: a canvas rendering mode arrives alongside SVG, and ESM builds become tree-shakable across grid, regions and category modules. It also breaks the default bundle — chart.export() and chart.flow() are no longer included — which is why the following prereleases read as canvas cleanup.

    View source ↗
  6. 7mo ago

    Sanitization function update on the 3.18 line

    A lone fix updating the sanitization function on the older 3.18 prerelease line, months before the 4.0 work began. Maintenance on the branch being left behind.

    View source ↗