Setup
Get the Vue registry working in a fresh Nuxt 4 project in four steps.
01
Install Tailwind v4 + TypeScript
The shadcn CLI preflight needs a Tailwind v4 setup. Add it plus typescript, then create an entry CSS that imports Tailwind.
npm install -D tailwindcss @tailwindcss/vite typescript
02
Add components.json
Create components.json at the project root and register the named registry so you can install by alias.
{
"registries": { "@uipkge": "https://uipkge.dev/r/vue/{name}.json" }
}
03
Bootstrap tokens + helpers
Pull the Tailwind OKLCH tokens, the cn() helper, and the theme provider in one shot.
$ pnpm dlx shadcn-vue@latest add https://uipkge.dev/r/vue/init.json$ npx shadcn-vue@latest add https://uipkge.dev/r/vue/init.json$ yarn dlx shadcn-vue@latest add https://uipkge.dev/r/vue/init.json$ bunx shadcn-vue@latest add https://uipkge.dev/r/vue/init.json
Or with the named registry:
npx shadcn-vue@latest add @uipkge/init
04
Add any component
Copy the source into your project — you own it, no semver, edit freely.
$ pnpm dlx shadcn-vue@latest add https://uipkge.dev/r/vue/button.json$ npx shadcn-vue@latest add https://uipkge.dev/r/vue/button.json$ yarn dlx shadcn-vue@latest add https://uipkge.dev/r/vue/button.json$ bunx shadcn-vue@latest add https://uipkge.dev/r/vue/button.json
Or with the named registry:
npx shadcn-vue@latest add @uipkge/button