fusion_charts_flutter 1.0.1
fusion_charts_flutter: ^1.0.1 copied to clipboard
Professional Flutter charting library with line, bar, pie/donut charts, smooth animations, tooltips, zoom/pan, and high performance.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2026-01-01 #
Added #
Chart Types
- FusionLineChart — Line chart with straight or smooth curved lines (Bezier/Catmull-Rom splines)
- FusionBarChart — Bar chart for categorical data comparison
- FusionStackedBarChart — Stacked bar chart for cumulative data visualization
- FusionPieChart — Pie and Donut charts with smart labels, selection, and center content
Series Features
FusionLineSeries— Line series with configurable width, curves, dash patternsFusionBarSeries— Bar series with customizable bar width, spacing, and border radiusFusionStackedBarSeries— Stacked bar series for cumulative visualizationFusionPieSeries— Pie series with customizable colors, strokes, and corner radiusFusionAreaSeries— Area fill support with gradient backgrounds- Series visibility toggling
- Gradient support (linear gradients)
- Shadow/glow effects
- Data labels with custom formatters
- Marker shapes (circle, square, triangle, diamond, pentagon, hexagon)
Theming System
FusionChartTheme— Abstract theme interfaceFusionLightTheme— Professional light color scheme (default)FusionDarkTheme— Dark mode theme- Full customization: colors, typography, dimensions, animations, shadows
- WCAG 2.1 AA compliant contrast ratios
Configuration
FusionChartConfiguration— Central configuration with builder patternFusionAxisConfiguration— Axis customization (min, max, intervals, labels)FusionTooltipConfiguration— Tooltip behavior and stylingFusionCrosshairConfiguration— Crosshair appearance and dismiss strategiesFusionZoomConfiguration— Zoom limits and behaviorFusionLegendConfiguration— Legend positioning and styling
Interactions
- Touch/tap detection with nearest point finding
- Long-press for crosshair activation
- Hover support (desktop)
- Pinch-to-zoom
- Pan/drag navigation
- Trackball modes: none, follow, snap, magnetic
- Haptic feedback integration
- Configurable dismiss strategies (onRelease, afterDuration, never)
Axis System
- Numeric axis with auto-scaling
- DateTime axis with intelligent interval selection
- Category axis support
- Custom label formatters
- Axis bounds calculation with nice numbers algorithm
- Multiple range padding strategies
Performance Optimizations
FusionPaintPool— Object pooling for Paint instances (90% GC reduction)FusionShaderCache— Gradient shader cachingFusionRenderCache— General render cacheFusionRenderOptimizer— Dirty region tracking and path cachingLTTBDownsampler— Largest Triangle Three Buckets algorithm for 10K+ points- Coordinate system caching with hash-based invalidation
- Pixel snapping for crisp rendering on high-DPI displays
Data Handling
FusionDataPoint— Immutable data point with x, y, label, metadataDataValidator— Validates and cleans data (NaN, Infinity, duplicates)- Data statistics calculation (min, max, mean, range)
- Range clamping support
- Automatic sorting by X coordinate
Rendering Engine
FusionCoordinateSystem— Immutable coordinate transforms with pixel snappingFusionPathBuilder— Smooth path generation (Bezier, Catmull-Rom, Douglas-Peucker)FusionChartPainterBase— Template method pattern for painters- Dashed line support with custom patterns
- Area fill with baseline
Utilities
FusionColorPalette— 6 color palettes (Material, Professional, Vibrant, Pastel, Warm, Cool)FusionDataFormatter— Number and date formatting utilitiesFusionMathematics— Spline calculations, interpolationFusionResponsiveSize— Responsive sizing helpers
Documentation
- Comprehensive dartdoc comments
- Example application with 20+ demos
- README with quick start guide
Notes #
- Minimum Flutter SDK: 3.22.0
- Minimum Dart SDK: 3.9.0
- Dependencies:
intlfor formatting
1.0.1 - 2026-01-13 #
Added #
Programmatic Control API
FusionChartController— Full programmatic control over zoom and pan operationszoomIn(),zoomOut(),zoomToFit(),resetZoom()methodspanTo(),panBy()for programmatic panningsetZoomLevel()with animation support- Event streams for zoom/pan state changes
- Attach/detach to any interactive chart
New Widgets
FusionZoomControls— Ready-to-use zoom control widget with customizable buttonsFusionScrollInterceptWrapper— Desktop scroll wheel zoom support with proper event handling
New Utilities
FusionDesktopHelper— Platform detection utilities for desktop-specific behaviorsFusionZoomAnimationMixin— Smooth animated zoom transitions with configurable curvesFusionSelectionRectLayer— Box selection rendering for zoom-to-region functionality
Axis Configuration
labelGeneratorcallback inFusionAxisConfigurationfor complete control over axis label positioning- Receives axis bounds, available size, and orientation
- Returns list of values where labels should appear
- Supports use cases like:
- Edge-inclusive labels (always show min/max)
- Percentage-based labels (0%, 25%, 50%, 75%, 100%)
- Powers of 10 (log-scale style)
- Fibonacci sequence positioning
- Custom business thresholds
- DateTime patterns (first of month, every Monday)
- Density-based responsive labels
Examples
- New
zoom_pan_showcase.dart— Comprehensive example with 27 zoom/pan demonstrations
Changed #
enableCrosshairdefault changed fromtruetofalsefor cleaner out-of-box experience- Charts now render without crosshair by default
- Explicitly set
enableCrosshair: trueto enable
Fixed #
- Fixed zoom and pan gestures being interrupted mid-interaction due to gesture recognizer recreation
- Fixed gesture recognizer caching not being populated in
FusionInteractiveChartState - Added gesture recognizer caching to
FusionBarInteractiveStateandFusionStackedBarInteractiveState - Fixed unnecessary widget rebuilds during pan/zoom start that killed in-progress gestures
- Fixed
FusionInteractionHandlerbeing recreated during active gestures, which reset_lastScaleand broke incremental pinch-zoom calculations - Fixed zoom state being reset on widget rebuild — coordinate system updates during active gestures now preserve zoomed data bounds while only updating screen dimensions
- Fixed timer cleanup in multi-touch interaction tests
Deprecated #
The following fields are ignored and will be removed in v2.0.0. Use the top-level configuration flags instead:
FusionZoomConfiguration.enabled→ UseFusionChartConfiguration.enableZoomFusionPanConfiguration.enabled→ UseFusionChartConfiguration.enablePanningFusionTooltipBehavior.enable→ UseFusionChartConfiguration.enableTooltipFusionCrosshairConfiguration.enabled→ UseFusionChartConfiguration.enableCrosshair
[Unreleased] #
Planned #
- Scatter charts
- Bubble charts
- Candlestick/OHLC charts
- Radar/Spider charts
- Gauge charts
- Funnel charts
- Multiple Y-axes
- Annotations and plot bands
- Real-time streaming data API
- Export to image (PNG, SVG)
- Accessibility improvements (Semantics)
Version History #
| Version | Date | Description |
|---|---|---|
| 1.0.1 | 2026-01-13 | Programmatic control API, labelGenerator, zoom/pan fixes, deprecations |
| 1.0.0 | 2026-01-01 | Initial release |
