NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4479 most downloaded on pub.dev
A premium, dependency-free Flutter charting library with ~27 chart types, smooth Catmull-Rom curves, soft gradient fills and a left-to-right reveal.
Last release 3 months ago
28 Jun 2026
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
3 releases · first in 2026
One column per month.
feat: chart interactivity, robustness, full API docs, and DrafterLege…
feat: chart interactivity, robustness, full API docs, and DrafterLege…
InteractiveChart wrapper turns any chart into a
touch/mouse-driven one: a trackball with a de-overlapping multi-series tooltip,
tap value-selection, and drag range-selection, all painted on a non-rebuilding
Canvas overlay so the base chart's reveal animation is never disturbed. Works
across every chart type — cartesian charts (line/area/step/bar/candlestick/
stream) get a trackball-column tooltip + range band; radial and free-layout
charts (pie/donut/polar/sunburst/treemap/heatmap/funnel/bullet/box-plot/bubble/
gantt/sankey/scatter/radar) get per-mark hover highlighting.ChartInteraction config — independently toggle tooltip, selection and
rangeSelection, with onSelected / onRangeSelected callbacks and a custom
rowLabel tooltip formatter.ChartScene, PlotMark, ChartSelection,
ChartRange (from package:drafter/drafter.dart) and the pure ChartHitTest
/ LabelLayout helpers (from package:drafter/painting.dart), so you can
hit-test custom charts. Renderers opt in via the InteractiveRenderer
interface and a buildScene(Size) derived from the same math they paint with.CartesianScale — a reversible data↔pixel mapping shared by paint and
hit-test, so the two can never drift.InteractiveChart) now exposes a duration parameter
to tune the entrance-animation length.ChartRenderer / InteractiveRenderer are now re-exported from the main
package:drafter/drafter.dart entrypoint (they appear in InteractiveChart's
signature).DrafterLegend — a reusable, theme-aware legend widget. Build it from
explicit LegendItems or from a list of labels (DrafterLegend.fromLabels,
which colors each entry by the active theme palette). Supports horizontal
(wrapping) or vertical layout, square / circle / line markers, and an
optional onItemTap callback for wiring series toggling.NaN / Infinity) input values are now coerced
at ingestion across all value-based charts, so malformed data can no longer
produce a non-finite Canvas coordinate (a debug assert) or reach a toInt()
(which threw UnsupportedError even in release builds — histogram binning,
bubble axis rounding, line/bar axis steps).InteractiveChart resets its interaction state when its renderer changes, so
a stale selection highlight can't linger over new data, and it no longer writes
to its disposed notifier if the pointer exits during teardown.RepaintBoundary, and hit-tests by squared distance.public_member_api_docs in the analyzer.ScatterPlot.values(values: [(x, y), …]) — a values-first convenience constructor matching the line/area/bar charts.
ScatterPlot.values(values: [(x, y), …]) — a values-first convenience
constructor matching the line/area/bar charts.package:drafter/painting.dart — a dedicated entrypoint for the chart-authoring
extension API (ChartRenderer, ChartCanvas, layout math, smooth-graphics
helpers), keeping the main drafter.dart namespace focused on charts/data/theme.smoothPath, trimPath, drawChartText,
ChartBounds, RadialLayout, HAlign/VAlign, etc.) are no longer exported
from package:drafter/drafter.dart — import package:drafter/painting.dart
instead. The everyday chart widgets, data models and theming are unchanged.BubbleChart no longer crashes (debug assert via a non-finite Offset) when
every bubble shares a zero on an axis.DrafterThemeColors ==/hashCode now include the palette, so a
palette-only theme change correctly repaints the charts.colorAt falls back instead of throwing on an empty palette.ChartCanvas now picks up a changed duration on rebuild.TextPainters are no longer re-shaped every
animation frame), the painter repaints off the animation listenable inside a
RepaintBoundary, line charts compute path metrics once per frame instead of
twice, and the stream graph no longer builds its top spline twice per band.Initial release — a premium, dependency-free Flutter charting library, a faithful port of the Compose/SwiftUI Drafter charts.
Initial release — a premium, dependency-free Flutter charting library, a faithful port of the Compose/SwiftUI Drafter charts.
ChartRenderer drawing into a
Canvas, hosted by a thin widget over shared data models, axis/radial math,
Catmull-Rom smooth graphics and a left-to-right reveal animation.DrafterTheme / DrafterThemeColors for light/dark palettes — a calm,
premium color set (no harsh red).Your coding agent can read these notes before it upgrades. Set up the MCP server →