pnpm add @nuxt/ui
yarn add @nuxt/ui
npm install @nuxt/ui
bun add @nuxt/ui
shamefully-hoist=true in your .npmrc file or install tailwindcss in your project's root directory.nuxt.config.tsexport default defineNuxtConfig({
modules: ['@nuxt/ui']
})
@import "tailwindcss";
@import "@nuxt/ui";
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css']
})
{
"files.associations": {
"*.css": "tailwindcss"
},
"editor.quickSuggestions": {
"strings": "on"
},
"tailwindCSS.classAttributes": ["class", "ui"],
"tailwindCSS.experimental.classRegex": [
["ui:\\s*{([^)]*)\\s*}", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
]
}
<template>
<UApp>
<NuxtPage />
</UApp>
</template>
To quickly get started with Nuxt UI, you can use the starter template by running:
npm create nuxt@latest -- -t ui
You can also get started with one of our official templates:
You can use the Use this template button on GitHub to create a new repository or use the CLI:
npm create nuxt@latest -- -t ui
npm create nuxt@latest -- -t ui/landing
npm create nuxt@latest -- -t ui/docs
npm create nuxt@latest -- -t ui/saas
npm create nuxt@latest -- -t ui/dashboard
npm create nuxt@latest -- -t ui/chat
npm create nuxt@latest -- -t ui/portfolio
npm create nuxt@latest -- -t ui/changelog
You can customize Nuxt UI by providing options in your nuxt.config.ts.
prefixUse the prefix option to change the prefix of the components.
Uexport default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
prefix: 'Nuxt'
}
})
fontsUse the fonts option to enable or disable the @nuxt/fonts module.
trueexport default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
fonts: false
}
})
colorModeUse the colorMode option to enable or disable the @nuxt/color-mode module.
trueexport default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
colorMode: false
}
})
theme.colorsUse the theme.colors option to define the dynamic color aliases used to generate components theme.
['primary', 'secondary', 'success', 'info', 'warning', 'error']export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
colors: ['primary', 'error']
}
}
})
theme.transitionsUse the theme.transitions option to enable or disable transitions on components.
trueexport default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
transitions: false
}
}
})
transition-colors class on components with hover or active states.theme.defaultVariantsUse the theme.defaultVariants option to override the default color and size variants for components.
{ color: 'primary', size: 'md' }export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
defaultVariants: {
color: 'neutral',
size: 'sm'
}
}
}
})
mdcUse the mdc option to force the import of Nuxt UI <Prose> components even if @nuxtjs/mdc or @nuxt/content is not installed.
falseexport default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
mdc: true
}
})
contentUse the content option to force the import of Nuxt UI <Prose> and <UContent> components even if @nuxt/content is not installed (@nuxtjs/mdc is installed by @nuxt/content).
falseexport default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
content: true
}
})
experimental.componentDetection 4.1+Use the experimental.componentDetection option to enable automatic component detection for tree-shaking. This feature scans your source code to detect which components are actually used and only generates the necessary CSS for those components (including their dependencies).
falseboolean | string[]Enable automatic detection:
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
experimental: {
componentDetection: true
}
}
})
Include additional components for dynamic usage:
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
experimental: {
componentDetection: ['Modal', 'Dropdown', 'Popover']
}
}
})
<component :is="..." /> that can't be statically analyzed.Nuxt UI uses pkg.pr.new for continuous preview releases, providing developers with instant access to the latest features and bug fixes without waiting for official releases.
Automatic preview releases are created for all commits and PRs to the v4 branch. Use them by replacing your package version with the specific commit hash or PR number.
{
"dependencies": {
- "@nuxt/ui": "^4.0.0",
+ "@nuxt/ui": "https://pkg.pr.new/@nuxt/ui@4c96909",
}
}