flutter_mini_chart
Lightweight, animated, interactive charts for Flutter. Zero external dependencies.
Charts
- MiniBarChart - Vertical bar chart with axis, grid lines, data labels
- MiniPieChart - Pie chart and doughnut chart (via
innerRadius)
Features
- CustomPainter-based rendering
- Entry animation (bars grow, pie sweeps)
- Hover highlight and tap callbacks
- Tooltip overlay (customizable via builder)
- Legend with toggle support
- 3-level theming: per-widget style >
MiniChartTheme>Theme.of(context)
Usage
import 'package:flutter_mini_chart/flutter_mini_chart.dart';
// Bar chart
MiniBarChart(
data: [
BarData(label: 'Jan', value: 30),
BarData(label: 'Feb', value: 50),
BarData(label: 'Mar', value: 20),
],
style: BarChartStyle(showDataLabels: true),
legend: ChartLegend(position: LegendPosition.bottom),
onBarTap: (index, data) => print('${data.label}: ${data.value}'),
)
// Pie chart
MiniPieChart(
data: [
PieData(label: 'A', value: 35),
PieData(label: 'B', value: 25),
PieData(label: 'C', value: 40),
],
legend: ChartLegend(position: LegendPosition.bottom),
onSliceTap: (index, data) => print('${data.label}: ${data.value}'),
)
// Doughnut chart
MiniPieChart(
data: [
PieData(label: 'Online', value: 75),
PieData(label: 'Offline', value: 25),
],
style: PieChartStyle(innerRadius: 60),
)
Theming
Three levels of theme resolution (highest priority first):
- Per-widget
style:parameter MiniChartThemeInheritedWidget wrapping a subtreeTheme.of(context)automatic fallback
// Scope a palette to a subtree
MiniChartTheme(
data: MiniChartThemeData(
palette: [Colors.blue, Colors.green, Colors.orange],
animationDuration: Duration(milliseconds: 800),
),
child: MiniBarChart(data: myData),
)
Installation
dependencies:
flutter_mini_chart: ^1.0.0
License
MIT