Skip to content
Development
Skill

/nuxt-ui-v4

Nuxt UI v4 component library for building Nuxt v4 applications. 125+ accessible components with Tailwind v4, Reka UI, dark mode, theming. Use for dashboards, forms, overlays, editors, page layouts, pricing pages, or encountering component, theming, or TypeScript errors.

From plugin
secondsky-claude-skills
219183 skills42 agents62 commands2 MCP
Install
$ npx -y skills add secondsky/claude-skills --skill nuxt-ui-v4 --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/nuxt-ui-v4

Context preview

The summary Claude sees to decide when to auto-load this skill.

Nuxt UI v4 component library for building Nuxt v4 applications. 125+ accessible components with Tailwind v4, Reka UI, dark mode, theming. Use for dashboards, forms, overlays, editors, page layouts, pricing pages, or encountering component, theming, or TypeScript errors.

SKILL.md

nuxt-ui-v4.SKILL.md
name: nuxt-ui-v4
description: Nuxt UI v4 component library for building Nuxt v4 applications. 125+ accessible components with Tailwind v4, Reka UI, dark mode, theming. Use for dashboards, forms, overlays, editors, page layouts, pricing pages, or encountering component, theming, or TypeScript errors.
license: MIT
allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]

Nuxt UI v4 - Production Component Library

**Version**: Nuxt UI v4.6+ | Nuxt v4.0.0 | **125+ Components** **Last Verified**: 2026-03-30

A comprehensive production-ready component library with 125+ accessible components, Tailwind CSS v4, Reka UI accessibility, and first-class AI integration. Works with Nuxt and plain Vue apps (Vite, Inertia, SSR).

**MCP Integration**: This plugin includes the official Nuxt UI MCP server for live component data.

---

When to Use / NOT Use

**Use when**: Building Nuxt v4 dashboards, AI chat interfaces, landing pages, forms, admin panels, pricing pages, blogs, documentation sites, or any UI with Nuxt UI components

**DON'T use**: React projects, Nuxt 3 or earlier, Tailwind CSS v3. Vue-only projects ARE supported via Vite plugin.

---

Quick Start

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

**Or use a template**:

npm create nuxt@latest -- -t ui             # Starter
npm create nuxt@latest -- -t ui/dashboard    # Dashboard
npm create nuxt@latest -- -t ui/chat         # AI Chat
npm create nuxt@latest -- -t ui/landing      # Landing page
npm create nuxt@latest -- -t ui/saas         # SaaS
npm create nuxt@latest -- -t ui/docs         # Documentation
npm create nuxt@latest -- -t ui/portfolio    # Portfolio
npm create nuxt@latest -- -t ui/changelog    # Changelog
npm create nuxt@latest -- -t ui/editor       # Rich text editor

**Commands available**: `/nuxt-ui-v4:setup`, `/nuxt-ui:migrate`, `/nuxt-ui:theme`, `/nuxt-ui:component`

Secure Installation

UI packages modify CSS and component trees — verify before allowing into your project. Follow supply chain security best practices:

  • **Block post-install scripts** — `npm config set ignore-scripts true` (or Bun: disabled by default)
  • **Cooldown period** — Wait 7 days for new package versions to be vetted by the community
  • **Audit before installing** — Run `socket package score npm <pkg>` or use `socket npm install <pkg>` to check packages

Load the `dependency-upgrade` skill for full security configuration including Socket CLI integration, cooldown setup, lockfile validation, and CI enforcement.

---

Component Categories (125+ Total)

Dashboard (10 components) - NEW

Complete admin interface system:

  • **DashboardGroup** - Fixed layout wrapper with sidebar state management
  • **DashboardSidebar** - Resizable, collapsible sidebar
  • **DashboardPanel** - Main content panel with header/body/footer slots
  • **DashboardNavbar** - Top navigation bar
  • **DashboardToolbar** - Secondary toolbar under navbar
  • **DashboardSearch** - CommandPalette for dashboard search
  • **DashboardSearchButton** - Button to trigger search
  • **DashboardSidebarCollapse** - Collapse button for desktop
  • **DashboardSidebarToggle** - Toggle button for mobile
  • **DashboardResizeHandle** - Resize handle for sidebar/panels
<template>
  <UDashboardGroup>
    <UDashboardSidebar>
      <UNavigationMenu :items="menuItems" />
    </UDashboardSidebar>
    <UDashboardPanel>
      <template #header><UDashboardNavbar /></template>
      <template #body><NuxtPage /></template>
    </UDashboardPanel>
  </UDashboardGroup>
</template>

**Details**: Load `references/dashboard-components.md` for complete dashboard patterns

---

Chat / AI (8 components)

Purpose-built for AI chatbots with AI SDK v5:

  • **ChatMessage** - Single message with icon, avatar, actions
  • **ChatMessages** - Message list with auto-scroll, status indicator
  • **ChatPalette** - Chat interface inside an overlay
  • **ChatPrompt** - Enhanced Textarea for AI prompts
  • **ChatPromptSubmit** - Submit button with status handling
  • **ChatReasoning** - Collapsible AI reasoning/thinking process (NEW v4.6)
  • **ChatTool** - Collapsible AI tool invocation status (NEW v4.6)
  • **ChatShimmer** - Text shimmer animation for streaming states (NEW v4.6)
<script setup lang="ts">
import { isReasoningUIPart, isTextUIPart, isToolUIPart, getToolName } from 'ai'
import { Chat } from '@ai-sdk/vue'
import { isReasoningStreaming, isToolStreaming } from '@nuxt/ui/utils/ai'

const input = ref('')
const chat = new Chat({
  onError(error) { console.error(error) }
})

function onSubmit() {
  chat.sendMessage({ text: input.value })
  input.value = ''
}
</script>

<template>
  <UChatMessages :messages="chat.messages" :status="chat.status">
    <template #content="{ message }">
      <template v-for="(part, index) in message.parts" :key="`${message.id}-${part.type}-${index}`">
        <UChatReasoning v-if="isReasoningUIPart(part)" :text="part.text" :streaming="isReasoningStreaming(message, index, chat)" />
        <UChatTool v-else-if="isToolUIPart(part)" :text="getToolName(part)" :streaming="isToolStreaming(part)" />
        <template v-else-if="isTextUIPart(part)">
          <MDC v-if="message.role === 'assistant'" :value="part.text" :cache-key="`${message.id}-${index}`" />
          <p v-else-if="message.role === 'user'" class="whitespace-pre-wrap">{{ part.text }}</p>
        </template>
      </template>
    </template>
  </UChatMessages>
  <UChatPrompt v-model="input" @submit="onSubmit">
    <UChatPromptSubmit :status="chat.status" @stop="chat.stop()" @reload="chat.regenerate()" />
  </UChatPrompt>
</template>

**Details**: Load `references/chat-components.md` for full AI SDK

Read more
Ships withsecondsky-claude-skills

145 production-ready skills for Claude Code CLI 🔌 Platform / Harness Support These plugins ship as Claude Code marketplace plugins (.claude-plugin/ manifests) and Codex CLI plugins (.codex-plugin/ manifests).

Get the whole plugin

Other skills on secondsky-claude-skills.