Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
secondsky avatar

Nuxt Ui V4

  • 329 installs
  • 202 repo stars
  • Updated August 4, 2026
  • secondsky/claude-skills

nuxt-ui-v4 is a secondsky Claude skill for Nuxt UI v4.6+ that guides 125+ accessible Vue components, Tailwind v4 theming, and AI SDK chat integration for developers building Nuxt v4 dashboards and SaaS UIs.

About

nuxt-ui-v4 is a secondsky Claude plugin skill for Nuxt UI v4.6+ on Nuxt v4.0.0, bundling 125+ accessible components built on Tailwind CSS v4 and Reka UI. It covers dashboard shells with UDashboardGroup, AI chat with UChatMessages and UChatReasoning tied to AI SDK v5, TipTap UEditor blocks, page-layout heroes, UPricingPlans, and 22 form components with UForm validation. Commands include /nuxt-ui-v4:setup, /nuxt-ui:migrate, /nuxt-ui:theme, and /nuxt-ui:component, plus agents for component selection, v2/v3 migration, and troubleshooting. The official Nuxt UI MCP server at ui.nuxt.com/mcp supplies live component metadata. Developers reach for it when scaffolding Nuxt SaaS dashboards, AI chat UIs, landing pages, or fixing missing UApp wrappers, CSS import order, and AI SDK Chat class usage errors documented across 25+ common failure modes.

  • nuxt-ui-v4

Nuxt Ui V4 by the numbers

  • 329 all-time installs (skills.sh)
  • +12 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #1,259 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/secondsky/claude-skills --skill nuxt-ui-v4

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs329
repo stars202
Last updatedAugust 4, 2026
Repositorysecondsky/claude-skills

How do you build dashboards with Nuxt UI v4?

Use nuxt-ui-v4 for development tasks

Who is it for?

Vue and Nuxt v4 developers building dashboards, AI chat interfaces, pricing pages, or admin panels with the Nuxt UI component library and Tailwind v4.

Skip if: React or Next.js projects, Nuxt 3 codebases not ready to migrate, or teams requiring Tailwind CSS v3 without upgrading to v4.

When should I use this skill?

A Nuxt v4 app needs Nuxt UI components, theming, AI chat widgets, migration from v2/v3, or fixes for UApp, CSS import, or AI SDK errors.

What you get

Nuxt v4 project configuration, Vue components using Nuxt UI primitives, theme CSS, and resolved component or TypeScript error fixes.

  • nuxt.config.ts module setup
  • Vue component scaffolds
  • Theme CSS configuration

By the numbers

  • Covers 125+ Nuxt UI components for Nuxt UI v4.6+ on Nuxt v4.0.0
  • Lists 8 official nuxt create templates including ui/chat and ui/dashboard
  • Documents 25+ common Nuxt UI error solutions in COMMON_ERRORS_DETAILED.md

Files

SKILL.mdMarkdownGitHub ↗

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 scriptsnpm 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 integration, streaming, reasoning, tool calling

---

Editor (6 components) - NEW

Rich text editing with TipTap:

  • Editor - TipTap-based editor with markdown/HTML/JSON support
  • EditorToolbar - Fixed, bubble, or floating toolbar
  • EditorDragHandle - Drag handle for reordering blocks
  • EditorMentionMenu - @ mention suggestions
  • EditorEmojiMenu - : emoji picker
  • EditorSuggestionMenu - / command menu
<template>
  <UEditor v-model="content" :extensions="extensions">
    <template #toolbar>
      <UEditorToolbar />
    </template>
  </UEditor>
</template>

Details: Load references/editor-components.md for TipTap setup, extensions, toolbar customization

---

Page Layout (16 components) - NEW

Landing pages and content layouts:

  • Page - Grid layout with left/right columns
  • PageHeader - Responsive page header
  • PageHero - Hero section with title, description, CTAs
  • PageSection - Content section container
  • PageGrid - Responsive grid system
  • PageColumns - Multi-column layout
  • PageFeature - Feature showcase component
  • PageCTA - Call-to-action section
  • PageCard - Pre-styled card with title, description, link
  • PageList - Vertical list layout
  • PageLogos - Logo showcase
  • PageAnchors - Anchor link list
  • PageAside - Sticky sidebar
  • PageBody - Main content area
  • PageLinks - Link list
<template>
  <UPage>
    <UPageHero title="Welcome" description="Get started today" :links="heroLinks" />
    <UPageSection>
      <UPageGrid>
        <UPageFeature v-for="f in features" v-bind="f" />
      </UPageGrid>
    </UPageSection>
    <UPageCTA title="Ready?" :links="ctaLinks" />
  </UPage>
</template>

Details: Load references/page-layout-components.md for landing page patterns

---

Content (7 components) - NEW

Documentation and blog content:

  • BlogPost - Article display component
  • BlogPosts - Blog grid layout
  • ChangelogVersion - Version entry display
  • ChangelogVersions - Changelog timeline
  • ContentNavigation - Accordion-style nav for docs
  • ContentSearch - Documentation search CommandPalette
  • ContentSearchButton - Button to open search
  • ContentSurround - Prev/next navigation
  • ContentToc - Sticky table of contents
<template>
  <UBlogPosts>
    <UBlogPost v-for="post in posts" v-bind="post" />
  </UBlogPosts>
</template>

Details: Load references/content-components.md for blog and documentation patterns

---

Pricing (3 components) - NEW

SaaS pricing pages:

  • PricingPlan - Individual plan card
  • PricingPlans - Responsive plan grid
  • PricingTable - Feature comparison table
<template>
  <UPricingPlans>
    <UPricingPlan
      v-for="plan in plans"
      :title="plan.title"
      :price="plan.price"
      :features="plan.features"
    />
  </UPricingPlans>
</template>

Details: Load references/pricing-components.md for pricing page patterns

---

Forms (22 components)

Input, InputDate, InputTime, InputNumber, InputTags, InputMenu, Select, SelectMenu, Textarea, Checkbox, CheckboxGroup, RadioGroup, Switch, Slider, Calendar, ColorPicker, PinInput, Form, FormField, FileUpload, FieldGroup, AuthForm

<UForm :state="state" :schema="schema" @submit="onSubmit">
  <UFormField name="email" label="Email">
    <UInput v-model="state.email" type="email" />
  </UFormField>
  <UButton type="submit">Submit</UButton>
</UForm>

Details: Load references/form-components-reference.md for validation, nested forms, file uploads

---

Navigation (8 components)

Tabs, Breadcrumb, Link, Pagination, CommandPalette, NavigationMenu, Stepper, Tree

<UTabs v-model="tab" :items="items" />
<UCommandPalette :groups="groups" placeholder="Search..." />
<UStepper v-model="step" :items="steps" />

Details: Load references/navigation-components-reference.md for patterns

---

Overlays (8 components)

Modal, Drawer, Slideover, Dialog, Popover, DropdownMenu, ContextMenu, Tooltip

<UModal v-model="isOpen"><UCard>Content</UCard></UModal>
<UDrawer v-model="isOpen" side="right">...</UDrawer>

Details: Load references/overlay-decision-guide.md for when to use each

---

Feedback (7 components)

Alert, Toast, Progress, Skeleton, Empty, Error, Banner

<UAlert color="warning" title="Warning message" />
<UEmpty icon="i-heroicons-inbox" title="No items" />
<UBanner title="Important announcement" />

Details: Load references/feedback-components-reference.md

---

Layout (6 components)

Card, Container, Main, Header, Footer, FooterColumns, Separator

---

Data (2 components)

Table (with virtualization), ScrollArea

---

General (15 components)

Button, FieldGroup, Avatar, AvatarGroup, Badge, Accordion, Carousel, Chip, Collapsible, Icon, Kbd, Marquee, Timeline, User, App

---

Color Mode (6 components)

ColorModeAvatar, ColorModeButton, ColorModeImage, ColorModeSelect, ColorModeSwitch, LocaleSelect

---

Composables

Core: useToast, useOverlay, useFormField, useScrollShadow Utilities: defineShortcuts, defineLocale, extendLocale, extractShortcuts

const { add } = useToast()
add({ title: 'Success', color: 'success' })

defineShortcuts({ 'meta_k': () => openSearch() })

AI Utilities: isReasoningStreaming, isToolStreaming, getTextFromMessage (from @nuxt/ui/utils/ai)

---

Common Errors (Top 5)

1. Missing UApp Wrapper → Wrap app with <UApp> 2. CSS Import Order@import "tailwindcss" FIRST, then @import "@nuxt/ui" 3. Missing tailwindcss packagebun add @nuxt/ui tailwindcss (both required) 4. Module Not Found → Add '@nuxt/ui' to modules in nuxt.config.ts 5. useChat not found → AI SDK v5 uses new Chat() class, not useChat() composable

Full list: Load references/COMMON_ERRORS_DETAILED.md for 25+ error solutions

---

When to Load References

Dashboard/Admin: dashboard-components.md AI Chat: chat-components.md, ai-sdk-v5-integration.md Chat Sub-components: chat-reasoning.md, chat-tool.md, chat-shimmer.md Rich Text: editor-components.md Landing Pages: page-layout-components.md Pricing/SaaS: pricing-components.md Blog/Docs: content-components.md Auth/Login: auth-form.md Forms: form-components-reference.md, form-validation-patterns.md Theming: semantic-color-system.md, component-theming-guide.md Troubleshooting: COMMON_ERRORS_DETAILED.md

---

Available Commands

  • /nuxt-ui-v4:setup - Initialize Nuxt UI in project
  • /nuxt-ui:migrate - Migrate from v2/v3 to v4
  • /nuxt-ui:theme - Generate theme configuration
  • /nuxt-ui:component - Scaffold component with Nuxt UI patterns

Available Agents

  • nuxt-ui-component-selector - Recommends best components for use cases
  • nuxt-ui-migration-assistant - Guides v2/v3 → v4 migration
  • nuxt-ui-troubleshooter - Diagnoses and fixes common issues

MCP Integration

This plugin includes the official Nuxt UI MCP server (https://ui.nuxt.com/mcp) providing:

  • Component listing and metadata
  • Documentation access
  • Migration guides
  • Template discovery

Related skills

How it compares

Choose nuxt-ui-v4 for opinionated Nuxt dashboards and AI chat UIs; choose a headless component skill when you need unstyled primitives without Nuxt UI conventions.

FAQ

How many components does nuxt-ui-v4 cover?

nuxt-ui-v4 documents 125+ Nuxt UI v4.6+ components including 10 dashboard, 8 chat/AI, 6 editor, 16 page-layout, 22 form, and 8 overlay components for Nuxt v4 and plain Vue apps via the Vite plugin.

Does nuxt-ui-v4 work with AI SDK v5 chat?

Yes. nuxt-ui-v4 integrates AI SDK v5 using the Chat class with UChatMessages, UChatPrompt, UChatReasoning, and UChatTool components plus isReasoningStreaming and isToolStreaming helpers from @nuxt/ui/utils/ai.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.