Graphic is a grammar of data visualization and a Flutter charting library, published on pub.dev as the MIT-licensed graphic package for Dart and Flutter developers who need to render charts inside an application rather than in a separate reporting tool.
What it is
Graphic lives in the Dart and Flutter ecosystem, where it is distributed as a package through pub.dev and maintained under an MIT licence. It supplies a declarative visualization grammar derived from Leland Wilkinson's The Grammar of Graphics, and the README states that the design tries to balance theoretical beauty against practicability. Instead of offering a closed catalogue of pre-built chart widgets, Graphic lets data processing steps and mark shapes be composed freely in a declarative specification, so the grammar is not limited to certain chart types. Shape draw methods are themselves customizable, which means a developer can extend rendering beyond whatever the library provides out of the box.
The concrete problem it solves is the mismatch that appears when a rigid chart-type widget cannot express what a project actually needs. With a fixed widget, the usual outcome is a fight against a configuration surface, followed by hand-written painting code once the widget runs out of options. Graphic replaces that pattern by letting the specification carry the structure: data processing and mark composition are declared, interaction is declared through events and selections, and animation is declared rather than hand-wired. The library is a client-side Dart package with no server component, so what it replaces is the divergent, project-specific charting code that teams otherwise accumulate and maintain themselves.
Key capabilities
- A declarative grammar derived from Leland Wilkinson's The Grammar of Graphics, in which data processing steps and mark shapes compose freely instead of being locked to named chart types.
- Customizable shape draw methods, allowing rendering behaviour to be extended past the built-in marks.
- Interaction through
event and selection definitions, covering cases such as highlighting selected items, popping a tooltip, and scaling the coordinate.
- Mark transition animation when a chart is built or changed, plus entrance animation in various forms.
- Distribution as the
graphic package on pub.dev, with API documentation published at pub.dev/documentation/graphic.
- An AI coding skill installed with
npx skills add https://github.com/entronad/graphic --skill flutter-chart, also available at /skills/flutter-chart in the repository.
- A runnable example project in the
example directory of the repository, which the README points to as the primary way to see charts in action.
Who uses it and how
- Flutter application teams that need charts embedded directly in an app, matching the registry category of Data & Analytics / Business Intelligence & Reporting.
- Developers building charts where selection highlighting, tooltips, and coordinate scaling are required, since those are defined through the grammar rather than bolted on.
- Teams whose visualizations do not fit standard chart types, because the specification is not restricted to a preset list.
- Developers working with an AI coding agent, who install the
flutter-chart skill so the agent can write specifications for this library.
- Prospective adopters evaluating the library by cloning the repository and running the example project before committing to it.
Getting started
Add the graphic package from pub.dev to a Flutter project, or clone the repository and run the example project inside the example directory. For agent-assisted development, install the skill with npx skills add https://github.com/entronad/graphic --skill flutter-chart.
How it compares
The facts provided name no comparable paid or open-source charting products, and the README positions the library against the general idea of fixed chart types rather than against named competitors. Graphic therefore stands alone in this registry.
When to use it — and when not to
There is no database, object storage, SMTP service, or server process to operate, because Graphic is a client-side Dart package; the operational burden is Flutter build and release work rather than infrastructure. It is a poor fit for anyone who wants drop-in named chart types or a hosted reporting product, and for projects outside the Dart and Flutter ecosystem entirely. The README is sparse and defers most documentation to the pub.dev API reference and the bundled skill, and the repository carries 85 open issues, so evaluation realistically means cloning the example project and reading the linked tutorials.