Staged animation
Updates play as axis expansion → value change → axis contraction, so only one kind of change is in motion at a time — and stacked series animate as a single gapless unit.
How it works
Zero framework dependencies, staged animations, and bindings for Angular, Lit, React, Svelte, and Vue.
Every chart on this site is live. This one stacks three series into one bar per month — hover a legend item to focus its series, click one to filter it out of the chart (click again to bring it back), and animate to a new dataset to watch the stack move as a single gapless unit:
import { createDefaultChart } from '@mochart/core';
const chart = createDefaultChart(container, { config, data, width, height });
chart.update({ data: nextData }); // animates to the new dataHead to Getting started for the full example, and use Open in demo under any chart on this site to keep editing it in the gallery.
The same core, wrapped idiomatically — each binding adds automatic container sizing and passes every chart prop through: Angular · Lit · React · Svelte · Vue
Every binding has a full demo app — Vanilla TypeScript, Angular, Lit, React, Svelte, and Vue — where you can browse dozens of demo charts, edit their configs and data as JSON, share a link to your edited chart, and export charts as SVG/PNG.