iconic_morph 1.0.2
iconic_morph: ^1.0.2 copied to clipboard
Path-level icon animation for Flutter — morph one SVG icon into another, plus 3D constant-stroke spins, draw-on, trace, and idle loops, all drawn from your own SVGs. No Rive, no Lottie, no new assets, [...]
Changelog #
1.0.2 #
- Packaging & docs only — no API or behaviour changes. Rename the vendored
path_parsingMIT notice fromLICENSE_path_parsingtoTHIRD_PARTY_NOTICES.mdso hosts report a single project license (MIT) instead of two. Dan Field's notice is retained in full as MIT requires.
1.0.1 #
- Packaging & docs only — no API or behaviour changes. Use the canonical MIT license text so GitHub and pub.dev detect the license cleanly, and point the author link at the pub.dev publisher page.
1.0.0 #
Initial public release on pub.dev.
Animations #
IconicMorph— path-level cross-icon morph: a travelling "worm" rides a quintic-Hermite flight curve from one glyph to the next, with decoupled assemble (trim / scale / 3D-flip) and exit (un-draw / fade / scale) modes.IconicAnimatedIcon+ effect catalog —IconSpin3D(constant-stroke 3D spin/unlock/flip),IconTrimDraw,IconTrace,IconBreathe,IconBlink,IconConverge,IconWeightPulse,IconDetailSpin,IconGridPop,IconLineShrink,IconShuffle,IconInboxRiffle,IconLockEngage.IconicMorphHero/IconicMorphSequence— declarative multi-state morph (one element, no remounts → no flicker).IconImage— dependency-free static icon; strokes the parsed SVG path at a constant width, pixel-consistent with every animated effect at rest.
Foundations #
- Zero runtime dependencies — the SVG path parser and the 4×4 matrix math are
vendored in-tree; a consumer's
flutter pub getpulls in nothing beyond the Flutter SDK. IconGeometry.useManifest()/IconGeometry.resolver— read geometry from a baked JSON manifest instead of parsing SVG at runtime (cheaper, and you can ship no SVGs).dart run iconic_morph:bake <svg-dir> <out.json>— generate that manifest from a folder of SVGs.- Reduced-motion aware (
IconMotion.reduced): effects snap to their end state. - Bundled demo glyphs —
MorphIcons.user/.face/.lock.