Nuxt UI
Vue component library built on Reka UI + Tailwind CSS + Tailwind Variants. Works with Nuxt, Vue (Vite), Laravel (Vite + Inertia), and AdonisJS (Vite + Inertia).
MCP Server
For component API details (props, slots, events, full documentation, examples), use the Nuxt UI MCP server. If not already configured, add it:
Cursor — .cursor/mcp.json:
Claude Code:
Key MCP tools:
search-components— find components by name, category, or intent (no params = list all)search-composables— find composables by name or description (no params = list all)search-icons— search Iconify icons (defaults tolucide), returnsi-{prefix}-{name}namesget-component— full component documentation with usage examplesget-component-metadata— props, slots, events (lightweight, no docs content)get-example— real-world code examples
When you need to know what a component accepts or how its API works, use the MCP. This skill teaches you when to use which component and how to build well.
Core rules (always apply)
- Always wrap the app in
UApp— required for toasts, tooltips, and programmatic overlays. Accepts alocaleprop for i18n. - Always use semantic colors —
text-default,bg-elevated,border-muted, etc. Never use raw Tailwind palette colors liketext-gray-500. - Read generated theme files for slot names — Nuxt:
.nuxt/ui/<component>.ts, Vue:node_modules/.nuxt-ui/ui/<component>.ts. These show every slot, variant, and default class for any component. - Override priority (highest wins):
uiprop /classprop → global config → theme defaults. - Icons use
i-{collection}-{name}format —lucideis the default collection. Use the MCPsearch-iconstool to find icons, or browse at icones.js.org.
How to use this skill
Based on the task, load the relevant reference files before writing any code. Don't load everything — only what's needed.
Reference files
Guidelines — design decisions and conventions:
- design-system [blocked] — semantic colors, theming, brand customization, variants, the
uiprop - component-selection [blocked] — decision matrices: when to use Modal vs Slideover, Select vs SelectMenu, Toast vs Alert, etc.
- conventions [blocked] — coding patterns, slot naming, items arrays, composables, keyboard shortcuts
- forms [blocked] — form validation, field layout, error handling, Standard Schema
Layouts — full page structure patterns:
- landing [blocked] — landing pages, blog, changelog, pricing
- dashboard [blocked] — admin UI with sidebar and panels
- docs [blocked] — documentation sites with navigation and TOC
- chat [blocked] — AI chat with Vercel AI SDK
- editor [blocked] — rich text editor with toolbars
Recipes — complete patterns for common tasks:
- data-tables [blocked] — tables with filters, pagination, sorting, selection
- auth [blocked] — login, signup, forgot password forms
- overlays [blocked] — modals, slideovers, drawers, command palette
- navigation [blocked] — headers, sidebars, breadcrumbs, tabs
Quick reference:
- components [blocked] — categorized component index for finding the right component name
Routing table
Installation
Nuxt
Vue (Vite)
Add
class="isolate"to your root<div id="app">inindex.html. For Inertia: useui({ router: 'inertia' })invite.config.ts.


