nuxt/ui · Official

nuxt-ui

Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming. Use when creating interfaces, customizing themes to match a brand, building forms, or composing layouts like dashboards, docs sites, and chat interfaces.

All-time #1058 Trending #1807 Hot #5965 First seen Feb 9, 2026
8-week activity · all time api

Installation

$ npx skills add nuxt/ui --skill nuxt-ui

Summary

  • 125+ accessible Vue components with Tailwind CSS theming, built on Reka UI for rapid interface development.
  • Supports Nuxt, Vue (Vite), Laravel (Inertia), and AdonisJS with unified component API across frameworks Includes 200,000+ Iconify icons via i-{collection}-{name} naming, with local collection support and custom icon directories Seven semantic colors (primary, secondary, success, info, warning, error, neutral) configurable at runtime; override components via ui prop, class prop, or global config Built-in form validation using Standard Schema (Zod, Valibot, Yup, Joi), toasts, modals, dropdowns, and five pre-built layout templates (dashboard, docs, chat, editor, page) Composables for notifications, programmatic overlays, and keyboard shortcuts; generated theme files expose all slots and variants for deep customization

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Security audits

Partner security reviews for this skill.

agent-trust-hub SAFE

Analyzed May 6, 2026

This skill is a comprehensive documentation and reference suite for Nuxt UI v4. It provides the agent with the necessary patterns, components, and layout guidance to build accessible and modern user interfaces. The skill references official Nuxt MCP servers for live API documentation and utilizes standard, well-known libraries in the Vue/Nuxt ecosystem. No security vulnerabilities or malicious patterns were detected.

snyk MEDIUM

Analyzed May 6, 2026

[MEDIUM] W012: Unverifiable external dependency detected (runtime URL that controls agent).

socket Score 0.9000 · 0 alerts

Analyzed May 6, 2026

  • license 1
  • maintenance 1
  • quality 0.9
  • supply chain 1
  • vulnerability 1

0 alerts

Also in this package

Other skills from nuxt/ui.

npx skills add nuxt/ui

Browse all from nuxt/ui

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 6.9K
License LICENSE.md
Default branch v4
Open issues 203
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code cursor

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,405 B
  • docs SUMMARY.md 257 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 17,736 installs

SKILL.md

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:

{ "mcpServers": { "nuxt-ui": { "type": "http", "url": "https://ui.nuxt.com/mcp" } } }

Claude Code:

claude mcp add --transport http nuxt-ui https://ui.nuxt.com/mcp

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 to lucide), returns i-{prefix}-{name} names
  • get-component — full component documentation with usage examples
  • get-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)

  1. Always wrap the app in UApp — required for toasts, tooltips, and programmatic overlays. Accepts a locale prop for i18n.
  2. Always use semantic colorstext-default, bg-elevated, border-muted, etc. Never use raw Tailwind palette colors like text-gray-500.
  3. 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.
  4. Override priority (highest wins): ui prop / class prop → global config → theme defaults.
  5. Icons use i-{collection}-{name} formatlucide is the default collection. Use the MCP search-icons tool 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](references/guidelines/design-system.md) — semantic colors, theming, brand customization, variants, the ui prop
  • [component-selection](references/guidelines/component-selection.md) — decision matrices: when to use Modal vs Slideover, Select vs SelectMenu, Toast vs Alert, etc.
  • [conventions](references/guidelines/conventions.md) — coding patterns, slot naming, items arrays, composables, keyboard shortcuts
  • [forms](references/guidelines/forms.md) — form validation, field layout, error handling, Standard Schema

Layouts — full page structure patterns:

  • [landing](references/layouts/landing.md) — landing pages, blog, changelog, pricing
  • [dashboard](references/layouts/dashboard.md) — admin UI with sidebar and panels
  • [docs](references/layouts/docs.md) — documentation sites with navigation and TOC
  • [chat](references/layouts/chat.md) — AI chat with Vercel AI SDK
  • [editor](references/layouts/editor.md) — rich text editor with toolbars

Recipes — complete patterns for common tasks:

  • [data-tables](references/recipes/data-tables.md) — tables with filters, pagination, sorting, selection
  • [auth](references/recipes/auth.md) — login, signup, forgot password forms
  • [overlays](references/recipes/overlays.md) — modals, slideovers, drawers, command palette
  • [navigation](references/recipes/navigation.md) — headers, sidebars, breadcrumbs, tabs

Quick reference:

  • [components](references/components.md) — categorized component index for finding the right component name

Routing table

Task Load these references
Build a landing page design-system, conventions, landing
Build a dashboard / admin UI conventions, component-selection, dashboard
Add a settings page conventions, forms
Create a login / signup form conventions, forms, auth
Display data in a table conventions, component-selection, data-tables
Customize theme / brand colors design-system
Add a chat interface conventions, chat
Add a modal, slideover, or drawer conventions, component-selection, overlays
Build site navigation conventions, component-selection, navigation
Build a documentation site conventions, docs
Render markdown component-selection, components, docs
Add a rich text editor conventions, editor
General UI work conventions, component-selection

Installation

Nuxt

pnpm add @nuxt/ui tailwindcss
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/ui'],
  css: ['~/assets/css/main.css']
})
/* app/assets/css/main.css */
@import "tailwindcss";
@import "@nuxt/ui";
<!-- app.vue -->
<template>
  <UApp>
    <NuxtPage />
  </UApp>
</template>

Vue (Vite)

pnpm add @nuxt/ui tailwindcss
// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui()
  ]
})
// src/main.ts
import './assets/css/main.css'
import { createApp } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import ui from '@nuxt/ui/vue-plugin'
import App from './App.vue'

const app = createApp(App)
const router = createRouter({
  routes: [],
  history: createWebHistory()
})

app.use(router)
app.use(ui)
app.mount('#app')
/* src/assets/css/main.css */
@import "tailwindcss";
@import "@nuxt/ui";
<!-- src/App.vue -->
<template>
  <UApp>
    <RouterView />
  </UApp>
</template>

Add class="isolate" to your root <div id="app"> in index.html.
For Inertia: use ui({ router: 'inertia' }) in vite.config.ts.