home / skills / onmax / nuxt-skills / nuxt-ui

nuxt-ui skill

/skills/nuxt-ui

This skill helps you build styled UI with Nuxt UI v4 by guiding setup, theming, components, and overlays in Vue/Nuxt apps.

npx playbooks add skill onmax/nuxt-skills --skill nuxt-ui

Review the files below or copy the command above to add this skill to your agents.

Files (129)
SKILL.md
4.0 KB
---
name: nuxt-ui
description: Use when building styled UI with @nuxt/ui v4 components (Button, Modal, Form, Table, etc.) - provides ready-to-use components with Tailwind Variants theming. Use vue skill for raw component patterns, reka-ui for headless primitives.
license: MIT
---

# Nuxt UI v4

Component library for Vue 3 and Nuxt 4+ built on Reka UI (headless) + Tailwind CSS v4 + Tailwind Variants.

**Current stable version:** v4.3.0 (December 2025)

## When to Use

- Installing/configuring @nuxt/ui
- Using UI components (Button, Card, Table, Form, etc.)
- Customizing theme (colors, variants, CSS variables)
- Building forms with validation
- Using overlays (Modal, Toast, CommandPalette)
- Working with composables (useToast, useOverlay)

**For Vue component patterns:** use `vue` skill
**For Nuxt routing/server:** use `nuxt` skill

## Available Guidance

| File                                                         | Topics                                                                           |
| ------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| **[references/installation.md](references/installation.md)** | Nuxt/Vue setup, pnpm gotchas, UApp wrapper, module options, prefix, tree-shaking |
| **[references/theming.md](references/theming.md)**           | Semantic colors, CSS variables, app.config.ts, Tailwind Variants                 |
| **[references/components.md](references/components.md)**     | Component index by category (125+ components)                                    |
| **components/\*.md**                                         | Per-component details (button.md, modal.md, etc.)                                |
| **[references/forms.md](references/forms.md)**               | Form components, validation (Zod/Valibot), useFormField                          |
| **[references/overlays.md](references/overlays.md)**         | Toast, Modal, Slideover, Drawer, CommandPalette                                  |
| **[references/composables.md](references/composables.md)**   | useToast, useOverlay, defineShortcuts, useScrollspy                              |

## Usage Pattern

**Load based on context:**

- Installing Nuxt UI? → [references/installation.md](references/installation.md)
- Customizing theme? → [references/theming.md](references/theming.md)
- Component index → [references/components.md](references/components.md)
- Specific component → [components/button.md](components/button.md), [components/modal.md](components/modal.md), etc.
- Building forms? → [references/forms.md](references/forms.md)
- Using overlays? → [references/overlays.md](references/overlays.md)
- Using composables? → [references/composables.md](references/composables.md)

**DO NOT read all files at once.** Load based on context.

## Key Concepts

| Concept           | Description                                                |
| ----------------- | ---------------------------------------------------------- |
| UApp              | Required wrapper component for Toast, Tooltip, overlays    |
| Tailwind Variants | Type-safe styling with slots, variants, compoundVariants   |
| Semantic Colors   | primary, secondary, success, error, warning, info, neutral |
| Reka UI           | Headless component primitives (accessibility built-in)     |

> For headless component primitives (API details, accessibility patterns, asChild): read the **reka-ui** skill

## Quick Reference

```ts
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@nuxt/ui'],
  css: ['~/assets/css/main.css']
})
```

```css
/* assets/css/main.css */
@import 'tailwindcss';
@import '@nuxt/ui';
```

```vue
<!-- app.vue - UApp wrapper required -->
<template>
  <UApp>
    <NuxtPage />
  </UApp>
</template>
```

## Resources

- [Nuxt UI Docs](https://ui.nuxt.com)
- [Component Reference](https://ui.nuxt.com/components)
- [Theme Customization](https://ui.nuxt.com/getting-started/theme)

---

_Token efficiency: Main skill ~300 tokens, each sub-file ~800-1200 tokens_

Overview

This skill helps you build styled UI with @nuxt/ui v4 components in Nuxt 4 and Vue 3 apps. It provides guidance for installing the module, applying Tailwind Variants theming, and using ready-to-use components like Button, Modal, Form, and Table. Use this when you want quick, themeable UI patterns that integrate with Reka UI headless primitives and Nuxt composables.

How this skill works

The skill explains installation and configuration for @nuxt/ui, shows how to wrap your app with the required UApp provider, and demonstrates importing the library and CSS. It documents component APIs, Tailwind Variants theming, semantic color tokens, and composables such as useToast and useOverlay. Guidance is split by task: installation, theming, components, forms, overlays, and composables so you can load only the parts you need.

When to use it

  • Installing or configuring @nuxt/ui in a Nuxt 4 project
  • Building styled components with Tailwind Variants and semantic colors
  • Creating forms with validation using useFormField and Zod/Valibot
  • Implementing overlays: Modal, Toast, Drawer, CommandPalette
  • Accessing ready-made components (Button, Card, Table) instead of building from scratch

Best practices

  • Wrap your app with <UApp> in app.vue to enable overlays and toasts
  • Use Tailwind Variants for type-safe, composable styling and variant slots
  • Keep theme customizations in app.config.ts or a dedicated theme file using semantic tokens
  • Prefer Reka UI headless primitives for accessibility and composability when customizing behavior
  • Tree-shake unused components by configuring module options and using the module's prefixing

Example use cases

  • Quickly add a themed button and modal for a signup flow using @nuxt/ui components
  • Build an admin table with built-in styles and responsive variants
  • Create validated forms with useFormField and integrate Zod for schema validation
  • Show global notifications using useToast and configure UApp once at the root
  • Customize app colors via Tailwind Variants to match brand tokens

FAQ

Do I need a wrapper component?

Yes. UApp must wrap your application (e.g., in app.vue) to enable overlays, toasts, and some accessibility features.

When should I use reka-ui instead?

Use reka-ui for headless primitives and advanced accessibility patterns; use nuxt-ui for ready-made, themeable components built on top of reka-ui.