chartforge.min.js
Canvas charts in twelve lines. Responsive, accessible and dark-mode ready, with no D3 learning curve.
Download .min.js ↓v3.4 • 35 packages • MIT
Thirty-five packages, one licence, no telemetry. Pick a build below or install the whole set from npm.
Canvas charts in twelve lines. Responsive, accessible and dark-mode ready, with no D3 learning curve.
Download .min.js ↓Headless data table with sorting and virtual scroll that stays smooth at a hundred thousand rows.
Download .min.js ↓Physics-based micro-animations with a single call. Spring curves that feel right without a tuning session.
Download .min.js ↓Validation and multi-step logic that works the same in React, Vue and vanilla. Your markup stays yours.
Download .min.js ↓Offline-first sync for IndexedDB with conflict resolution you can actually reason about.
Download .min.js ↓Drop-in JWT, OAuth and magic links with secure defaults and a five-minute setup.
Download .min.js ↓Accessible toast notifications in two kilobytes, with a queue that never talks over itself.
Download .min.js ↓Focus-trapped dialogs built on the native element, with the edge cases already handled.
Download .min.js ↓Keyboard-complete menus and menubars that follow the authoring practices to the letter.
Download .min.js ↓A tiny sprite engine for canvas, with atlas packing and a frame loop that keeps its promises.
Download .min.js ↓Canvas heatmaps for dense matrices, with colour scales that survive an accessibility review.
Download .min.js ↓A whiteboard primitive: strokes, shapes and undo, with the collaboration layer left to you.
Download .min.js ↓Export any canvas to print-ready PNG, SVG or PDF at whatever resolution the page needs.
Download .min.js ↓A client-side cache with request deduplication and revalidation, in five kilobytes.
Download .min.js ↓A one-kilobyte router with nested routes, lazy segments and no opinion about your view layer.
Download .min.js ↓Atomic state with derived values and no provider component anywhere in sight.
Download .min.js ↓Retries, timeouts and circuit breaking wrapped around fetch, without replacing it.
Download .min.js ↓Date formatting and relative time that leans on the platform instead of shipping a locale database.
Download .min.js ↓A translation runtime with plurals, interpolation and lazy locale loading.
Download .min.js ↓Scroll-linked animation driven by the platform timeline, with a clean fallback where it is missing.
Download .min.js ↓Tabs and accordions that load their contents on first reveal and stay keyboard-correct.
Download .min.js ↓An image cropper with aspect locks, rotation and touch gestures that feel native.
Download .min.js ↓Audio waveform rendering and region selection, decoded off the main thread.
Download .min.js ↓A marker and clustering layer for maps, rendered on canvas so ten thousand pins stay smooth.
Download .min.js ↓Structural diffing for objects and arrays, with patches you can apply, invert and store.
Download .min.js ↓Bundle analysis that tells you which import cost you the weight, not just which file is large.
Download .min.js ↓Request mocking at the network layer, so the same handlers serve tests and local development.
Download .min.js ↓Runtime validation that infers its static types, so a schema is written exactly once.
Download .min.js ↓Worker orchestration with transferables, backpressure and a promise-shaped API.
Download .min.js ↓Schedule non-urgent work in idle time, with priorities and a deadline you can rely on.
Download .min.js ↓Palette generation and contrast checking in perceptual colour space, built for design tokens.
Download .min.js ↓Container-query-driven layout for components that adapt to their box, not the viewport.
Download .min.js ↓A carousel built on CSS scroll snapping, with the accessibility work already done.
Download .min.js ↓Pointer-reactive tilt and glare in a kilobyte, with a reduced-motion path that simply stops.
Download .min.js ↓Encrypted local storage over the Web Crypto API, with key rotation and an expiry policy.
Download .min.js ↓// view archive
Need legacy support? Every build is kept. MIT forever, no takedowns.
| version | date | size | notes | download |
|---|---|---|---|---|
| v3.1.2 | Aug 1 2026 | 13kb | UMD build restored for legacy bundlers | .zip ↓ |
| v3.0.0 | May 22 2026 | 13kb | Public API consolidated, deprecations removed | .zip ↓ |
| v2.6.1 | Mar 12 2026 | 12kb | Accessibility pass across every component | .zip ↓ |
| v2.4.0 | Dec 31 2025 | 11kb | Worker offloading for large inputs | .zip ↓ |
| v2.0.0 | Oct 21 2025 | 9kb | First stable release of the rewrite | .zip ↓ |
Take the minified ESM build unless you have a reason not to. It is the one the install command gives you and the one that gets the most testing.
Every file is published with a sha384 hash. Verify before you deploy if your threat model calls for it.