Skip to content

feat: add lucide-motion-vue module#1458

Open
tr-evo wants to merge 1 commit intonuxt:mainfrom
tr-evo:add-lucide-motion-vue
Open

feat: add lucide-motion-vue module#1458
tr-evo wants to merge 1 commit intonuxt:mainfrom
tr-evo:add-lucide-motion-vue

Conversation

@tr-evo
Copy link
Copy Markdown

@tr-evo tr-evo commented Apr 22, 2026

Description

Adds @respeak/lucide-motion-vue to the modules database.

The module exposes a Nuxt 3 integration at @respeak/lucide-motion-vue/nuxt that auto-registers <AnimateIcon> and all 535 animated Lucide icons as components. Default naming is Animated-suffixed (<HeartAnimated>, <Link2Animated>, …) so the module coexists cleanly with lucide-vue-next's static names; the suffix/prefix is configurable via nuxt.config's lucideMotion key. Per-icon tree-shaking is preserved under Nuxt's component loader.

Icon variants are adapted from animate-ui and pqoqubbw/icons (see the project's ATTRIBUTIONS.md).

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 22, 2026

📝 Walkthrough

Walkthrough

A new module manifest file modules/lucide-motion-vue.yml is added to define the module metadata for the lucide-motion-vue package. The manifest includes package identity information, references to the repository and npm registry, website link, maintainer attribution, categorization details, module type specification, and compatibility constraints specifying support for Nuxt versions greater than or equal to 3.0.0.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding the lucide-motion-vue module to the modules database.
Description check ✅ Passed The description is directly related to the changeset, providing detailed context about the module being added, its features, and configuration options.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
modules/lucide-motion-vue.yml (1)

5-8: Consider populating the icon and learn_more fields.

While these fields appear to be optional, providing values could enhance the module's presentation:

  • icon: Adding an icon URL would improve visibility in the Nuxt modules directory.
  • learn_more: If additional resources or documentation exist beyond the website, this field could link to them.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/lucide-motion-vue.yml` around lines 5 - 8, Populate the empty YAML
fields `icon` and `learn_more` in the module manifest: set `icon` to a publicly
accessible URL pointing to the module's logo or SVG (e.g., the project's repo or
GitHub Pages asset) and set `learn_more` to a helpful documentation or resources
URL (if none beyond `website`, you can reuse the `website` or point to the
README on GitHub); update the `icon` and `learn_more` keys in the existing
manifest (the `icon:` and `learn_more:` entries) with these values.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@modules/lucide-motion-vue.yml`:
- Around line 14-16: The compatibility entry currently lists "nuxt: '>=3.0.0'"
but your package peerDependency requires "@nuxt/kit: ^3.0.0", so update the
compatibility constraint to exactly reflect Nuxt 3.x by changing the "nuxt"
value from ">=3.0.0" to "^3.0.0" (i.e., replace nuxt: '>=3.0.0' with nuxt:
'^3.0.0').

---

Nitpick comments:
In `@modules/lucide-motion-vue.yml`:
- Around line 5-8: Populate the empty YAML fields `icon` and `learn_more` in the
module manifest: set `icon` to a publicly accessible URL pointing to the
module's logo or SVG (e.g., the project's repo or GitHub Pages asset) and set
`learn_more` to a helpful documentation or resources URL (if none beyond
`website`, you can reuse the `website` or point to the README on GitHub); update
the `icon` and `learn_more` keys in the existing manifest (the `icon:` and
`learn_more:` entries) with these values.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fd424311-3eee-4bc9-83c3-d4922dd453e8

📥 Commits

Reviewing files that changed from the base of the PR and between da52820 and aa65128.

📒 Files selected for processing (1)
  • modules/lucide-motion-vue.yml

Comment on lines +14 to +16
compatibility:
nuxt: '>=3.0.0'
requires: {}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check the declared Nuxt peer dependency in the module's package.json

# Fetch package.json from the repository
curl -s https://raw.githubusercontent.com/respeak-io/lucide-motion-vue/main/package.json | jq -r '.peerDependencies.nuxt // .dependencies.nuxt // "not found"'

Repository: nuxt/modules

Length of output: 65


🏁 Script executed:

# Search for lucide-motion-vue references in the repository to understand where it's hosted
rg "lucide-motion-vue" --type yaml --type json -A 3 -B 3

Repository: nuxt/modules

Length of output: 743


🌐 Web query:

lucide-motion-vue module Nuxt compatibility package.json

💡 Result:

lucide-motion-vue appears to refer to animated Lucide icons for Vue using the Motion Vue animation library (motion-v package). There is no official or published NPM package named "lucide-motion-vue". Instead, a work-in-progress GitHub repository exists: fayazara/animated-lucide-vue, which ports animated Lucide icons using motion-v (referred to as the "new official Motion Vue library" in a March 2025 r/Nuxt post). Nuxt Compatibility: - motion-v (Motion Vue) has official Nuxt module support via 'motion-v/nuxt' in nuxt.config.ts, enabling auto-imports. Used in production by @nuxt/ui. - Standard Lucide Vue icons (@lucide/vue or lucide-vue-next) work in Nuxt via modules like nuxt-lucide-icons or @nuxt/icon. - The animated-lucide-vue repo is a plain Vue library (copy icon code from /app/components/Lucide). No dedicated Nuxt module, but compatible as a Vue 3 component library. Install motion-v first (pnpm i motion-v), then use icons manually. Tree-shaking supported. SSR-friendly since motion-v is. package.json Integration Example: { "dependencies": { "motion-v": "^2.2.1", "lucide-vue-next": "^0.479.0" // or @lucide/vue for icons base } } Usage (from repo): Copy animated icon Vue components and use with Motion features. For Nuxt, add to nuxt.config.ts: export default defineNuxtConfig({ modules: ['motion-v/nuxt'] }) No specific peer deps or conflicts found for Nuxt 3/4.

Citations:


🏁 Script executed:

#!/bin/bash
# Check npm registry for `@respeak/lucide-motion-vue` package info
npm_data=$(curl -s "https://registry.npmjs.org/@respeak/lucide-motion-vue")
echo "$npm_data" | jq -r '.error // .name // "Package not found in npm registry"'
if [ -z "$(echo "$npm_data" | jq -r '.error' 2>/dev/null)" ]; then
  echo "=== Latest version peerDependencies ==="
  latest_version=$(echo "$npm_data" | jq -r '.dist-tags.latest')
  echo "$npm_data" | jq -r ".versions[\"$latest_version\"].peerDependencies.nuxt // .versions[\"$latest_version\"].dependencies.nuxt // \"No explicit nuxt dependency found\""
fi

Repository: nuxt/modules

Length of output: 82


🏁 Script executed:

#!/bin/bash
# Fetch full package info from npm registry with peerDependencies
curl -s "https://registry.npmjs.org/@respeak/lucide-motion-vue" | jq '{
  name: .name,
  latest_version: .["dist-tags"].latest,
  peerDependencies: .versions[.["dist-tags"].latest].peerDependencies,
  dependencies: .versions[.["dist-tags"].latest].dependencies
}'

Repository: nuxt/modules

Length of output: 247


Update the Nuxt version constraint to match the module's actual requirement.

The module declares @nuxt/kit: ^3.0.0 in its peerDependencies, which restricts compatibility to Nuxt 3.x only. The yml constraint nuxt: '>=3.0.0' is too broad and suggests support for Nuxt 4.x and beyond, which the module doesn't declare. Change to nuxt: '^3.0.0' to accurately reflect the module's actual compatibility.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/lucide-motion-vue.yml` around lines 14 - 16, The compatibility entry
currently lists "nuxt: '>=3.0.0'" but your package peerDependency requires
"@nuxt/kit: ^3.0.0", so update the compatibility constraint to exactly reflect
Nuxt 3.x by changing the "nuxt" value from ">=3.0.0" to "^3.0.0" (i.e., replace
nuxt: '>=3.0.0' with nuxt: '^3.0.0').

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant