{"adoption": {"forks": 94, "observed_at": "2026-08-28T04:07:18.420799+00:00", "stars": 2760}, "canonical_url": "https://ross.abutalabs.com/products/vueuse-motion", "card": {"archived": false, "artifact_type": "library", "description": "🤹 Vue Composables putting your components in motion", "domain": ["frontend", "web-development", "web-design"], "enriched": true, "function": ["animation", "frontend-framework", "ui-components"], "health_score": 37, "homepage": "https://motion.vueuse.org", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["vueuse/motion"], "name": "vueuse/motion", "platform": ["browser"], "pushed_at": "2025-03-11T08:04:13+00:00", "repo": "vueuse/motion", "stars": 2760, "tags": ["vue", "composables", "framer-motion-inspired", "popmotion", "spring-animations", "nuxt", "typescript", "ssr-ready", "directives", "nodejs", "web-server"], "topics": ["motion", "vue", "composable", "popmotion", "popmotion-for-vue", "spring", "composition-api"], "urls": [], "use_cases": ["animate vue components on mount", "fade or slide elements into view on scroll", "spring physics animations in vue", "framer motion alternative for vue", "add entrance animations to nuxt 3 app", "declarative animation presets for vue directives", "animate svg and html elements in vue"], "what_it_is": "@vueuse/motion is a Vue animation library providing composables and a v-motion directive for declarative component animations, built on Popmotion and inspired by Framer Motion. It ships 20+ animation presets, SSR support, first-class Nuxt 3 integration, and a lightweight <25kb TypeScript bundle.", "when_to_avoid": ["you work in React (use Framer Motion or motion.dev instead)", "you need Web Animations API-based animation (motion.dev is recommended by the author)", "you need complex timeline or keyframe orchestration beyond simple transitions and variants"], "when_to_choose": ["you use Vue 3 or Nuxt 3 and want declarative, Framer Motion-style animations", "you want plug-and-play presets like fade, slide, pop, and roll with minimal code", "you need SSR-compatible, lightweight animation via composables and directives"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vueuse-motion", "repo": "vueuse/motion", "role": "main", "score": 38}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:18.420799+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:18:46.365521+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "12b4f7bbbe63035b717158075324501dc1b0c7854552fa074d01eba7740b060a", "fetched_at": "2026-08-28T04:07:18.420799+00:00", "kind": "readme", "missing": false, "url": "https://github.com/vueuse/motion"}, {"content_hash": "d917c491f315358175546683b87b1a33aca5df889fdb972ffa3f7b8e870954de", "fetched_at": "2026-08-29T09:56:50.370212+00:00", "kind": "homepage", "missing": false, "url": "https://motion.vueuse.org"}, {"content_hash": "c64ce63dcb02e1cf94df018c64813d7a53ed127366f5c74080048129277275ea", "fetched_at": "2026-08-29T09:56:50.372769+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/getting-started/introduction"}, {"content_hash": "d0745cd8dfbe464580003e8dd78ceb0612208def993a19ff205672228dd5988d", "fetched_at": "2026-08-29T09:56:50.374652+00:00", "kind": "site_page", "missing": false, "url": "https://motion.vueuse.org/features/presets"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 10, "longevity": 100, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2052, "days_push": 540, "days_rel": 541, "gap_med": 0.5, "n_releases_24m": 7}, "score": 38, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}