flutter_dot_loader 1.0.0
flutter_dot_loader: ^1.0.0 copied to clipboard
Customizable dot-matrix and LED loading animations for Flutter — 60 patterns, scrolling marquee text, custom pixel frames, AI chat typing indicator. Zero deps.
1.0.0 #
First stable release. The API surface (MatrixLoader, DotLoader,
TriangleLoader, MatrixText, MatrixData) is considered stable and will
follow semver from here on.
- feat:
semanticsLabelonMatrixLoader,DotLoader, andTriangleLoader— when set, the loader is wrapped in aSemanticsnode so screen readers (TalkBack / VoiceOver) announce it (e.g.'Loading','Assistant is thinking'). Defaults tonull(decorative, no semantics node), mirroring Flutter's ownProgressIndicator.semanticsLabelconvention. - perf: all loaders now wrap their painting subtree in a
RepaintBoundary, so the per-frame repaint stays confined to the loader instead of dirtying ancestor layers ~60 times a second. - docs: live web demo of the example app (gallery / playground / studio) now hosted on GitHub Pages and linked from the README.
- feat:
MatrixLoader.paused(forwarded asDotLoader.paused) — whentrue, the underlyingAnimationControllerstops and the loader freezes in place while staying mounted. Toggling back tofalseresumesloop/bouncecycles seamlessly;oncerestarts from progress0.0. The_runIdstale-run guard also blocks any in-flightonceonCompletefrom firing after a pause. Useful for chat "thinking" indicators between turns, branded loaders behind settled state, and CPU savings on off-screen loaders. - chore(package): published archive size dropped from 3 MB to 1 MB (-67%).
Two changes:
- Deleted unreferenced duplicate
1.gif(472 KB) and2.gif(1 MB) from the repo root — the canonical copies have always lived inassets/and the README points there. - Added a
.pubignoreto exclude internal maintenance files from the published bundle:CLAUDE.md,SPECS.md,tool/,doc/. None of these ship value to package consumers; they're roadmap, generator scripts, and the auto-generated font preview.
- Deleted unreferenced duplicate
- chore(pubspec): description rewritten (154 chars) to reflect every post-0.0.5 capability — scrolling marquee text, custom pixel frames, AI chat indicator — while staying in pub.dev's 60–180 sweet spot.
- chore(pubspec): topics tightened from
animation, loader, loading, widget, uitoloader, animation, dot-matrix, led, pixel-art. The dropped generics had high noise on pub.dev's topic-search; the new ones map directly to the package's niche. - docs: new
doc/font_preview.md— auto-generated ASCII-art preview of every glyph in the 5×7MatrixTextfont. Pure Dart generator undertool/generate_font_preview.dart; a drift test fails if the artifact stops matchingmatrix_text.dart, so every glyph change forces a visible diff in review. - chore:
lib/src/matrix_text.dartno longer pulls inpackage:flutter_dot_loader/flutter_dot_loader.dart(it never used any Flutter or library types). The file is now pure Dart, which is what lets the newtool/scripts import it without dragging indart:ui. - feat: three new semantic aliases on
MatrixPattern—sonarPing(alias forcircular4, a pure outward radial pulse),pinwheel(alias forcircular15, a 4-arm rotating sweep), andcolumnWave(alias fortriangle8, a horizontal column scan). Total semantic aliases now 16; total enum values 77. README cheat sheet and AGENTS.md alias table reflect the additions. - feat:
MatrixLoader.onCompletecallback — fires once whenMatrixPlayback.oncefinishes a play-through. Closes the loop on finite splash / loading animations so apps can navigate, transition, or hand off state when the animation ends. Has no effect forloop/bouncemodes. Stale-run-guarded: if the widget is disposed or the playback mode changes before completion, the callback does not fire. - feat:
MatrixDatanow has JSON helpers for shipping frames over Firebase Remote Config, Firestore, app config, or any other JSON channel. Four new methods:MatrixData.toJson(grid)/fromJson(map)for a single frame andMatrixData.framesToJson(frames)/framesFromJson(map)for an animation. Output is aMap<String, dynamic>(callers pass it throughdart:convert'sjsonEncode— the package itself stays zero-dep). The frames payload is versioned (MatrixData.jsonSchemaVersion), andframesFromJsonalso accepts the legacy comma-joined string for backwards compatibility. - feat:
MatrixTextfont now covers all common UI punctuation and symbols —, ; : ' " - _ + = / \ * # @ $ % & | ^ ~ \( ) [ ] { } < >in addition to the previously supported. ! ?. Real-world strings like"Loading: 42%","12/24","Don't quit","a@b.com"` now render fully. - feat:
MatrixText.supportedCharactersgetter exposes the font's coverage set so apps can validate user input before encoding. - docs: README + AGENTS reference the expanded charset.
- test: add MatrixText group asserting full charset coverage, glyph shape
invariants (7 rows × 5 cols of
0/1), fallback-to-space behavior, and lowercase normalization. Total test count: 18.
0.0.5 #
- fix: replace portrait animated-GIF pubspec screenshots with static landscape PNGs (
assets/screenshot_gallery.png,assets/screenshot_studio.png) so pub.dev's screenshot pipeline renders thumbnails correctly. The animated GIFs remain in the README and are unchanged.
0.0.4 #
- fix: restore
constconstructors onMatrixLoaderandDotLoaderso the documentedconstusage in the README and tests actually compiles - fix: replace deprecated
withOpacitywithwithValues(alpha:)(Flutter 3.27+) - chore: tighten
analysis_options.yaml(strict-casts/inference, deprecation warnings, sorted directives & dependencies) - chore: add pub.dev
topics:for discoverability (animation,loader,loading,widget,ui) - docs: add
AGENTS.mdwith copy-paste recipes and a decision tree for AI coding agents - docs: README quick-start now leads with
DotLoader(color: …)for the AI-chat use case - test: cover
DotLoaderdefaults and thecolorshorthand; bump pattern-count assertion to 74
0.0.3 #
- feat: added DotLoader simplified wrapper
- feat: added semantic aliases to MatrixPattern
- feat: added 'color' parameter to MatrixLoader for automatic color derivation
0.0.2 #
- Studio Parity Update: Expanded
MatrixLoaderwith dotanime studio parity features. - Marquee Text: Added
MatrixTextto automatically convert and scroll text strings into dot-matrix arrays (includes a built-in 5x7 font map). - Interactivity: Added
onDotTapped(row, col)to allow using the dot matrix as an interactive keypad/synthesizer. - Playback Modes: Added
MatrixPlaybackenum (loop,bounce,once) for non-loading, finite animations. - Easing Curves: Added
curveproperty toMatrixLoaderto allow non-linear animation (e.g., easeInOut). - Compression Utilities: Added
MatrixDatafor compressing/decompressing 2D arrays to lightweight strings (e.g.101|010|101). - Example Upgrade: Added
TextandInteractivetabs to the example app to showcase the new capabilities.
0.0.1 #
- Initial release of
flutter_dot_loader. - Includes
MatrixLoaderwith customizable shapes (Square, Circular, Triangle). - Features 60 unique math-driven animation patterns spanning spirals, vortexes, pulses, and geometric shifts.
- Supports Custom Frames (
MatrixPattern.custom+customIntensity) for building frame-by-frame dot matrix animations (e.g. Tetris, scrolling text). - High-performance rendering engine built cleanly on
CustomPainter. - Includes a fully-featured Example App: an interactive Playground (with real-time parameter tweaking and code generation) and a Dot Matrix Studio Editor for designing custom frames.
