Getting started

Add Zoo UI to a Nuxt app, with the Forest theme or with your own look.
Zoo UI is not released yet: the @zooui/* packages are not on npm. This is how they will install.

Choose a layer

Zoo UI is two Nuxt layers. Your app extends one of them.

Your productExtendsImports
Wears the Forest theme@zooui/theme-forest@zooui/theme-forest/assets/css/forest.css
Has a look of its own@zooui/nuxt@zooui/nuxt/assets/css/base.css

The theme layer extends the base, so a Forest product gets both from one line. A product with its own look extends the base alone and keeps its own colors, typefaces and color-mode key. The Z* components still work there, in its colors.

With the Forest theme

Terminal
pnpm add @zooui/theme-forest
nuxt.config.ts
export default defineNuxtConfig({
  extends: ['@zooui/theme-forest'],
  css: ['~/assets/css/main.css'],
})

Theme-free, with your own look

Terminal
pnpm add @zooui/nuxt
nuxt.config.ts
export default defineNuxtConfig({
  extends: ['@zooui/nuxt'],
  css: ['~/assets/css/main.css'],
  // your color mode stays yours
  colorMode: { storageKey: 'acme-color-mode' },
})

Your palette goes in app.config.ts, as with plain Nuxt UI:

app/app.config.ts
export default defineAppConfig({
  ui: { colors: { primary: 'sky', neutral: 'slate' } },
})

The one CSS entry

The layers register Nuxt UI but not the stylesheet. Your app owns its single Tailwind entry, and the layer's stylesheet is its first line. Your own tokens, utilities and @source lines go after it, in the same file: one Tailwind compile.

app/assets/css/main.css
@import "@zooui/theme-forest/assets/css/forest.css";   /* or @zooui/nuxt/assets/css/base.css */

@theme {
  --color-brand: #117d72;
}

Three rules keep it working, and the base fails the build with the fix if one is broken:

  • Don't add @nuxt/ui, tailwindcss or @tailwindcss/vite yourself. The layer owns them; a second Tailwind registration fails the build.
  • Match the layer and the stylesheet. forest.css with the base layer alone, or base.css under the theme layer, is half a theme and fails the build.
  • Wrap the app in <UApp>. Nuxt UI mounts toasts, tooltips and overlays through it.

Pick a scheme

Forest has six accent schemes. Teal is the default; to use another, import its file after the layer's stylesheet:

app/assets/css/main.css
@import "@zooui/theme-forest/assets/css/forest.css";
@import "@zooui/theme-forest/schemes/ink-indigo.css";

A scheme only redefines raw color ramps, so that one line is all it takes. The theming guide lists them, and the picker in this site's header switches between them live.

Minimum versions

MinimumWhy
Nuxt4.1Nuxt UI 4's own floor, and the layers' peer range (^4.1.0).
Nuxt UI4.11 (~4.11.1)The layer's own dependency. Don't add your own.
Tailwind CSS4.3.3What Nuxt UI 4.11 depends on. It comes with Nuxt UI.
Node22Nuxt UI 4.11 needs 22.12 or later on the 22 line.

A product on an older Nuxt UI removes its own @nuxt/ui and tailwindcss when it adopts Zoo UI, and gets 4.11 through the layer.

Next

  • Theming: the Forest theme, its schemes, typefaces and per-section accents.
  • Components: every Z* component, with live examples and its API.