Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming.

MITAuto-check passedFrontend & Design

Install Nuxt UI

skills CLI
$ npx skills add megaarmos/vue-spring-bottom-sheet --skill nuxt-ui -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install megaarmos/vue-spring-bottom-sheet nuxt-ui --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/megaarmos/vue-spring-bottom-sheet.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/nuxt-ui .claude/skills/nuxt-ui && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
nuxt-ui
GitHub stars
141
Used in
1 other repo
Token cost
~2.5k tokens
SKILL.md length
454 words
Files
9 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming.

  • Creating interfaces
  • SKILL.md covers Installation, Icons, Theming & Branding and Composables, plus 5 more sections
  • Calls pnpm
  • Customizing themes to match a brand

What it does

Nuxt UI is an agent skill from megaarmos/vue-spring-bottom-sheet. 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.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `references/components.md`, `references/composables.md` and `references/layouts/chat.md`).

It sits in Frontend & Design, covering Theming and dark mode and Static sites and blogs. It works with Nuxt, Vue.js, Tailwind CSS and Vite. The repository describes itself as: 😎 Modern and 🚀 Performant Bottom Sheet for Vue.js. The licence is MIT.

When your agent uses it

  • Creating interfaces
  • Customizing themes to match a brand
  • Composing layouts like dashboards
  • Chat interfaces

Example prompts

  • “/nuxt-ui”

What it can do on your machine

Read from SKILL.md and the folder at commit 9c7d8f0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • reka-ui.com
    • tailwindcss.com
    • tailwind-variants.org
    • iconify.design
    • icones.js.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nuxt UI loads about 2.5k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 62 tokens; SKILL.md has 454 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~15k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from megaarmos/vue-spring-bottom-sheet at commit 9c7d8f0, republished under its MIT licence (© megaarmos). 454 words, ~2,491 tokens.

Download SKILL.mdSave it as .claude/skills/nuxt-ui/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
nuxt-ui
description
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.

Nuxt UI

Vue component library built on Reka UI + Tailwind CSS + Tailwind Variants. Works with Nuxt, Vue (Vite), Laravel (Inertia), and AdonisJS (Inertia).

Installation

Nuxt
bash
pnpm add @nuxt/ui tailwindcss
ts
// nuxt.config.ts
export 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.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui()
  ]
})
ts
// src/main.ts
import './assets/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
/* assets/main.css */
@import "tailwindcss";
@import "@nuxt/ui";
vue
<!-- src/App.vue -->
<template>
  <UApp>
    <RouterView />
  </UApp>
</template>

Vue: Add class="isolate" to your root <div id="app"> in index.html.

Vue + Inertia: Use ui({ router: 'inertia' }) in vite.config.ts.

UApp

Wrapping your app in UApp is required — it provides global config for toasts, tooltips, and programmatic overlays. It also accepts a locale prop for i18n (see composables reference).

Icons

Nuxt UI uses Iconify for 200,000+ icons. In Nuxt, @nuxt/icon is auto-registered. In Vue, icons work out of the box via the Vite plugin.

Naming convention

Icons use the format i-{collection}-{name}:

vue
<UIcon name="i-lucide-sun" class="size-5" />
<UButton icon="i-lucide-plus" label="Add" />
<UAlert icon="i-lucide-info" title="Heads up" />

Browse all icons at icones.js.org. The lucide collection is used throughout Nuxt UI defaults.

Install icon collections locally
bash
pnpm i @iconify-json/lucide
pnpm i @iconify-json/simple-icons
Custom local collections (Nuxt)
ts
// nuxt.config.ts
export default defineNuxtConfig({
  icon: {
    customCollections: [{
      prefix: 'custom',
      dir: './app/assets/icons'
    }]
  }
})
vue
<UIcon name="i-custom-my-icon" />

Theming & Branding

Nuxt UI ships with a default look. The goal is to adapt it to your brand so every app looks unique.

Always use semantic utilities (text-default, bg-elevated, border-muted), never raw Tailwind palette colors. See references/theming.md for the full list.

Colors

7 semantic colors (primary, secondary, success, info, warning, error, neutral) configurable at runtime:

ts
// Nuxt — app.config.ts
export default defineAppConfig({
  ui: { colors: { primary: 'indigo', neutral: 'zinc' } }
})
ts
// Vue — 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({
      ui: { colors: { primary: 'indigo', neutral: 'zinc' } }
    })
  ]
})
Customizing components

Override priority (highest wins): ui prop / class prop > global config > theme defaults.

The ui prop overrides a component's slots after variants are computed — it wins over everything:

vue
<UButton :ui="{ base: 'rounded-none', trailingIcon: 'size-3 rotate-90' }" />
<UCard :ui="{ header: 'bg-muted', body: 'p-8' }" />

Read the generated theme file to find slot names for any component:

  • Nuxt: .nuxt/ui/<component>.ts
  • Vue: node_modules/.nuxt-ui/ui/<component>.ts

For CSS variables, custom colors, global config, compound variants, and a full brand customization playbook, see references/theming.md

Composables

ts
// Notifications
const toast = useToast()
toast.add({ title: 'Saved', color: 'success', icon: 'i-lucide-check' })

// Programmatic overlays
const overlay = useOverlay()
const modal = overlay.create(MyModal)
const { result } = modal.open({ title: 'Confirm' })
await result

// Keyboard shortcuts
defineShortcuts({
  meta_k: () => openSearch(),
  escape: () => close()
})

For full composable reference, see references/composables.md

Form validation

Uses Standard Schema — works with Zod, Valibot, Yup, or Joi.

vue
<script setup lang="ts">
import { z } from 'zod'

const schema = z.object({
  email: z.string().email('Invalid email'),
  password: z.string().min(8, 'Min 8 characters')
})

type Schema = z.output<typeof schema>
const state = reactive<Partial<Schema>>({ email: '', password: '' })

function onSubmit() {
  // UForm validates before emitting @submit — state is valid here
}
</script>

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

    <UFormField name="password" label="Password" required>
      <UInput v-model="state.password" type="password" />
    </UFormField>

    <UButton type="submit">Sign in</UButton>
  </UForm>
</template>

For all form components and validation patterns, see references/components.md

Show full SKILL.md (181 more words)Show less

Overlays

vue
<!-- Modal -->
<UModal v-model:open="isOpen" title="Edit" description="Edit your profile">
  <template #body>Content</template>
  <template #footer>
    <UButton variant="ghost" @click="isOpen = false">Cancel</UButton>
    <UButton @click="save">Save</UButton>
  </template>
</UModal>

<!-- Slideover (side panel) -->
<USlideover v-model:open="isOpen" title="Settings" side="right">
  <template #body>Content</template>
</USlideover>

<!-- Dropdown menu (flat array) -->
<UDropdownMenu :items="[
  { label: 'Edit', icon: 'i-lucide-pencil' },
  { type: 'separator' },
  { label: 'Delete', icon: 'i-lucide-trash', color: 'error' }
]">
  <UButton icon="i-lucide-ellipsis-vertical" variant="ghost" />
</UDropdownMenu>

<!-- Dropdown menu (nested array — groups with automatic separators) -->
<UDropdownMenu :items="[
  [{ label: 'Edit', icon: 'i-lucide-pencil' }, { label: 'Duplicate', icon: 'i-lucide-copy' }],
  [{ label: 'Delete', icon: 'i-lucide-trash', color: 'error' }]
]">
  <UButton icon="i-lucide-ellipsis-vertical" variant="ghost" />
</UDropdownMenu>

For all overlay components, see references/components.md

Layouts

Nuxt UI provides components to compose full page layouts. Load the reference matching your use case:

LayoutDescriptionReference
PageLanding, blog, changelog, pricing — public-facing pageslayouts/page.md
DashboardAdmin UI with resizable sidebar and panelslayouts/dashboard.md
DocsDocumentation with sidebar nav and TOClayouts/docs.md
ChatAI chat with messages and promptlayouts/chat.md
EditorRich text editor with toolbarslayouts/editor.md

Templates

Official starter templates at github.com/nuxt-ui-templates:

When starting a new project, clone the matching template instead of setting up from scratch.

Additional references

Load based on your task — do not load all at once:

  • references/theming.md — CSS variables, custom colors, component theme overrides
  • references/components.md — all 125+ components by category with props and usage
  • references/composables.md — useToast, useOverlay, defineShortcuts
  • Generated theme files — all slots, variants, and default classes for any component (Nuxt: .nuxt/ui/<component>.ts, Vue: node_modules/.nuxt-ui/ui/<component>.ts)

© megaarmos, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (references) in .agents/skills/nuxt-ui of megaarmos/vue-spring-bottom-sheet.

  • SKILL.md
  • references/components.md
  • references/composables.md
  • references/layouts/chat.md
  • references/layouts/dashboard.md
  • references/layouts/docs.md
  • references/layouts/editor.md
  • references/layouts/page.md
  • references/theming.md

Open the folder on GitHubat commit 9c7d8f0

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in megaarmos/vue-spring-bottom-sheet, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Nuxt UI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Nuxt UI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nuxt UI this skillmegaarmos/vue-spring-bottom-sheet1411 repos~2.5kAutomated safety check: PassMIT
Create Docsvictorgarciaesgi/nuxt-typed-router4132 repos~2.8kAutomated safety check: PassMIT
Bryl Minimal Designbryllim/bryl-minimal-design114—~2.9kAutomated safety check: PassMIT
Frontend UI Foundryjiushiwon/wg-skills110—~1.4kAutomated safety check: PassApache-2.0
Shadcn Vuesecondsky/claude-skills227—~3.3kAutomated safety check: PassMIT
Tailwindcss Developmentanonaddy/anonaddy4.9k10 repos~865Automated safety check: PassMIT

Similar skills

  • Create Docs

    victorgarciaesgi/nuxt-typed-router

    Create complete documentation sites for projects. An agent skill from victorgarciaesgi/nuxt-typed-router.

    413 GitHub starsUsed in 2 repos~2.8k tokens
    Frontend & DesignAuto-check passed
  • Bryl Minimal Design

    bryllim/bryl-minimal-design

    Apply the bryl-minimal design language — a monochrome, typography-driven minimal aesthetic with halftone dot textures, pixel-font display headings, tiny uppercase monospace labels, soft large-radius…

    114 GitHub stars~2.9k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed
  • Frontend UI Foundry

    jiushiwon/wg-skills

    A skill your agent uses when generating UI for a specific scenario (mobile/PC/官网/管理端/营销页/文档/金融/原生/3D), when refactoring an existing HTML/Vue/React project to a unified design system, when extracting…

    110 GitHub stars~1.4k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Shadcn Vue

    secondsky/claude-skills

    shadcn-vue for Vue/Nuxt with Reka UI components and Tailwind.

    227 GitHub stars~3.3k tokensUpdated 9 days ago
    Frontend & DesignAuto-check passed
  • Tailwindcss Development

    anonaddy/anonaddy

    Always invoke when the user's message includes 'tailwind' in any form.

    4.9k GitHub starsUsed in 10 repos~865 tokens
    Frontend & DesignAuto-check passed
  • Kill AI Slop

    yetone/kill-ai-slop

    Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.

    1.3k GitHub stars~1.4k tokensUpdated 22 days ago
    Frontend & DesignAuto-check passed

Questions about Nuxt UI

What does Nuxt UI do?

Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming. Nuxt UI is an agent skill from megaarmos/vue-spring-bottom-sheet. Build UIs with @nuxt/ui v4 — 125+ accessible Vue components with Tailwind CSS theming.

When should I use Nuxt UI?

Nuxt UI fits situations like: creating interfaces; customizing themes to match a brand; composing layouts like dashboards; chat interfaces.

How do I install Nuxt UI in Claude Code?

Run `npx skills add megaarmos/vue-spring-bottom-sheet --skill nuxt-ui -a claude-code`. Or copy the skill folder (.agents/skills/nuxt-ui in megaarmos/vue-spring-bottom-sheet) into .claude/skills/nuxt-ui in your project. Claude Code loads it when a task matches its description.

How do I install Nuxt UI in Codex?

Run `npx skills add megaarmos/vue-spring-bottom-sheet --skill nuxt-ui -a codex`. Or copy the skill folder (.agents/skills/nuxt-ui in megaarmos/vue-spring-bottom-sheet) into .agents/skills/nuxt-ui in your project. Codex loads it when a task matches its description.

Can I use Nuxt UI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add megaarmos/vue-spring-bottom-sheet --skill nuxt-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nuxt-ui, .gemini/skills/nuxt-ui, .github/skills/nuxt-ui and .opencode/skills/nuxt-ui in your project.

What does Nuxt UI need to run?

Going by SKILL.md and its folder, Nuxt UI needs the command-line tools its instructions call (pnpm).

Does Nuxt UI access the network?

SKILL.md names 6 domains. As links in the text: github.com, reka-ui.com, tailwindcss.com, tailwind-variants.org, iconify.design and icones.js.org. This is read from the text; nothing was executed.

Is Nuxt UI safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Nuxt UI use?

Nuxt UI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nuxt UI use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.

What are the alternatives to Nuxt UI?

Skills that share tags, products or a category with Nuxt UI: Create Docs (victorgarciaesgi/nuxt-typed-router, 413 stars), Bryl Minimal Design (bryllim/bryl-minimal-design, 114 stars), Frontend UI Foundry (jiushiwon/wg-skills, 110 stars) and Shadcn Vue (secondsky/claude-skills, 227 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nuxt UI?

megaarmos (a GitHub user) maintains it in megaarmos/vue-spring-bottom-sheet, which has 141 GitHub stars. The repository was last updated on March 23, 2026.

Source: megaarmos/vue-spring-bottom-sheet on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.