interactive_timeline 0.3.0
interactive_timeline: ^0.3.0 copied to clipboard
A performant, reusable horizontal timeline widget with LOD ticks, panning, anchored zoom, and customizable markers/ticks.
0.1.0 #
- Initial release of
interactive_timeline - Anchored zoom (wheel/trackpad/pinch)
- Smooth horizontal panning
- Auto-LOD ticks (hours → months → years → decades → centuries → millennia)
- Event markers with tap callback
- Per-LOD label styles and global
TimeScaleLOD.allbase style
0.2.0 #
-
feat: Customizable event markers
- New
TimelineEventfields:markerOffset,markerScale. - New
TimelineWidgetoptions:eventMarkerBuilder(BuildContext, TimelineEvent, EventMarkerInfo)to render per-event widgets at precise timeline positions.eventMarkerPainter(Canvas, TimelineEvent, EventMarkerInfo)to draw custom shapes on the canvas.eventMarkerOffset,eventMarkerScaledefaults applied when per-event override is not provided.showDefaultEventMarkerflag to hide built-in dot markers when using custom widgets/painters.
- Clicking custom widget markers triggers
onEventTap.
- New
-
feat: Customizable ticks
- New
tickPainter(Canvas, TickInfo, TickDrawContext)to fully customize tick shapes. - New
tickOffset,tickScalefor tick positioning and scaling.
- New
-
feat: Tick label font selection
- New
tickLabelStylebase style for all labels (merged beforelabelStyleByLOD). - New
tickLabelFontFamilyto force a specific font family.
- New
-
docs: Updated README and site with examples for new APIs.
0.2.1 #
- Improvments: Added optional visual effects to the magnifying lenz effect
- fix: Replace deprecated Color API usages to support latest Flutter/Dart SDKs
Color.withOpacity(x)→Color.withValues(alpha: x)Color.value(for cache keys) →Color.toARGB32()
- docs: Update README and site install snippets to latest version
- chore: Raise Flutter SDK constraint to
>=3.22.0inpubspec.yaml
0.3.0 #
- feat: Duration spans and sticky labels
TimelineEvent.endDatedraws a range betweendateandendDate.- Sticky alignment for ranged events:
labelAlign(left|right) andstickyLabel. - Full-visibility clamping with width hint:
markerMainExtentPxand widget-leveldefaultStickyMarkerExtentPx.
- feat: Stacking and crowd-control
- Marker clustering with
markerClusterPx, stacking withmarkerMaxStackLayersandmarkerStackSpacing. - Spans stack the same as markers; items beyond the max layers fade.
- Global fade:
markerFadedOpacity; per-event override:TimelineEvent.fadedOpacity. - Optional alternating lanes:
stackAlternateLanesto stagger stacks above/below the axis.
- Marker clustering with
- feat: Per-event colors
TimelineEvent.spanColor,poleColor,markerColor.
- feat: End poles for spans
showSpanEndPolesdraws short lines from span ends to the axis in the span color/opacities.spanEndPoleThicknesscontrols stroke width (0.0 = hairline default).
- feat: Optional marker poles from axis to marker position
- Global:
showEventPole,eventPoleThickness,eventPoleColor(overridable per-event viapoleColor).
- Global:
- docs: Update README with new APIs and examples; update example app to showcase spans, stacking, alternating lanes, and span end poles.