Nuxt Ui

作者 onmax008232b5d7a5无许可证719 个星标收录于 2026年10月8日更新于 2026年10月8日仓库2天前更新

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.

AI 生成的概览

指导使用 @nuxt/ui v4 组件库构建 Vue 和 Nuxt 界面,涵盖主题、表单与布局。

功能
该技能为使用 @nuxt/ui v4 Vue 组件库构建用户界面提供指导,该库基于 Reka UI、Tailwind CSS 和 Tailwind Variants。内容涵盖语义化颜色主题、组件选择、表单验证,以及仪表盘、文档站点、聊天和编辑器等整页布局。它还包含 Nuxt、Vite 版 Vue、Laravel 和 AdonisJS 的安装片段,并指向一个 MCP 服务器以获取组件 API 细节。
适用场景
适用于使用 @nuxt/ui 创建或定制界面、让主题匹配品牌、构建表单,或组合仪表盘、文档站点和聊天界面等布局的场景。在选择相似组件(如 Modal 与 Slideover)时也很有用。
运行要求
需要在 Nuxt、Vue(Vite)、Laravel 或 AdonisJS 项目中安装 @nuxt/ui v4 包和 Tailwind CSS。组件 API 细节需通过网络从 Nuxt UI MCP 服务器获取。该技能仅提供参考文档,不含脚本。

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:

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

Claude Code:

bash
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 colors — text-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} format — lucide 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 [blocked] — semantic colors, theming, brand customization, variants, the ui prop
  • 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

TaskLoad these references
Build a landing pagedesign-system, conventions, landing
Build a dashboard / admin UIconventions, component-selection, dashboard
Add a settings pageconventions, forms
Create a login / signup formconventions, forms, auth
Display data in a tableconventions, component-selection, data-tables
Customize theme / brand colorsdesign-system
Add a chat interfaceconventions, chat
Add a modal, slideover, or drawerconventions, component-selection, overlays
Build site navigationconventions, component-selection, navigation
Build a documentation siteconventions, docs
Render markdowncomponent-selection, components, docs
Add a rich text editorconventions, editor
General UI workconventions, component-selection

Installation

Nuxt

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

Vue (Vite)

bash
pnpm add @nuxt/ui tailwindcss
ts
// vite.config.tsimport { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import ui from '@nuxt/ui/vite'
export default defineConfig({  plugins: [    vue(),    ui()  ]})
ts
// src/main.tsimport './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')
css
/* src/assets/css/main.css */@import "tailwindcss";@import "@nuxt/ui";
vue
<!-- 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.

来源与署名

来源:onmax/nuxt-skills位于skills/nuxt-ui提交008232b

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架