{"repo":"guillermolg00/morphicons","free":true,"listed":false,"github":"https://github.com/guillermolg00/morphicons","clone":"git clone https://github.com/guillermolg00/morphicons.git","description":"Any icon morphs into any other — universal morphing for stroke-based icons with spring physics. Zero dependencies, ~7 KB gzip.","language":"TypeScript","stars":1542,"topics":["animation","icons","morphing","react","svg","typescript"],"license":"MIT","category":"ui-components","readme_excerpt":"morphicons morphicons.com — live playground Universal morphing for stroke-based icons (Lucide, Tab ler, Heroicons, Iconoir, or your own paths): any icon morphs into any other with spring physics. Rotations are never declared by hand — they emerge from the math (2D Procrustes + polar interpolation). Zero runtime dependencies. That's the whole thing. No wrappers, no AnimatePresence , no keys, no from/to pairs, no configuration. State lives outside; the animation is an implementation detail the component picks up when the prop changes. Why The usual icon morphs either interpolate raw coordinates (shapes shrink and shear in transit) or require hand-declaring \"rotation groups\" per icon pair. morphicons solves the optimal similarity between shapes in closed form and interpolates it in its natural space: if a pair is congruent under rotation, it rotates ; if not, it morphs in the aligned frame. arrow-right → arrow-down yields θ = 90° on its own, without anyone declaring it. Install ESM only. react ( = 18), vue ( = 3.3), svelte ( = 5) and react-native ( = 0.71) + react-native-svg ( = 14) are optional peers — only needed for morphicons/react , morphicons/vue , morphicons/svelte and morphicons/react-native . morphicons/element (the custom element) and morphicons/astro (its SSR shell) need no peer at all — Astro compiles the shell itself, like every .astro component shipped as source. Icons come from a data package, not a component package. morphicons consumes icon data (an IconNode or ","default_branch":null,"files":null,"tree":[],"storefront":"/r/guillermolg00","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/guillermolg00/morphicons/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}