安装
设置
添加到 Nuxt 项目
安装 Nuxt UI 包
pnpm add @nuxt/ui tailwindcss
yarn add @nuxt/ui tailwindcss
npm install @nuxt/ui tailwindcss
bun add @nuxt/ui tailwindcss
在你的 nuxt.config.ts 中添加 Nuxt UI 模块
export default defineNuxtConfig({
modules: ['@nuxt/ui']
})
modules 数组中添加 @nuxt/icon、@nuxt/fonts 或 @nuxtjs/color-mode,因为 Nuxt UI 会自动注册它们。你仍然可以通过 icon、fonts 和 colorMode 键在 nuxt.config.ts 中配置这些模块。在 CSS 中引入 Tailwind CSS 和 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.classFunctions": ["defineAppConfig"]
}
用 App 组件包裹您的应用程序
<template>
<UApp>
<NuxtPage />
</UApp>
</template>
使用 Nuxt 模板
通过 GitHub 上的 Use this template 按钮或使用 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
npm create nuxt@latest -- -t ui/editor
选项
你可以在 nuxt.config.ts 中提供选项来定制 Nuxt UI。
prefix
使用 prefix 选项更改组件的前缀。
- 默认值:
U
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
prefix: 'Nuxt'
}
})
fonts
使用 fonts 选项来启用或禁用 @nuxt/fonts 模块。
- 默认值:
true
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
fonts: false
}
})
colorMode
使用 colorMode 选项来启用或禁用 @nuxt/color-mode 模块。
- 默认值:
true
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
colorMode: false
}
})
theme.colors
使用 theme.colors 选项定义用于生成组件主题的动态颜色别名。
- 默认值:
['primary', 'secondary', 'success', 'info', 'warning', 'error']
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
colors: ['primary', 'error']
}
}
})
theme.transitions
使用 theme.transitions 选项启用或禁用组件上的过渡。
- 默认值:
true
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
transitions: false
}
}
})
transition-colors 类。theme.defaultVariants
使用 theme.defaultVariants 选项来覆盖组件的默认 color 和 size 变体。
- 默认值:
{ color: 'primary', size: 'md' }
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
defaultVariants: {
color: 'neutral',
size: 'sm'
}
}
}
})
theme.prefix 4.2+
使用 theme.prefix 选项来配置与 Tailwind CSS 引入时设置相同的的前缀。这可确保 Nuxt UI 组件使用正确的前缀工具类和 CSS 变量。
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
prefix: 'tw'
}
}
})
@import "tailwindcss" prefix(tw);
@import "@nuxt/ui";
@nuxt/fonts 模块使用 prefix 选项,可能需要启用 fonts.processCSSVariables。export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
prefix: 'tw'
}
},
fonts: {
processCSSVariables: true
}
})
这将自动为 Nuxt UI 组件主题中的所有 Tailwind 工具类和 CSS 变量添加前缀。
<!-- Without prefix -->
<button class="px-2 py-1 text-xs hover:bg-primary/75">Button</button>
<!-- With prefix: tw -->
<button class="tw:px-2 tw:py-1 tw:text-xs tw:hover:bg-primary/75">Button</button>
prose
使用 prose 选项强制引入 Nuxt UI Prose 组件,即使未安装 @nuxtjs/mdc 或 @nuxt/content。
- 默认值:
false
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
prose: true
}
})
mdc 已弃用
使用prose请使用对应的选项。
内容
使用 content 选项强制引入 Nuxt UI <Prose> 和 <UContent> 组件,即使未安装 @nuxt/content。
- 默认值:
false
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
content: true
}
})
experimental.componentDetection 4.1+
使用 experimental.componentDetection 选项来启用用于 Tree-shaking 的自动组件检测。此功能会扫描你的源代码以检测实际使用的组件,并仅为这些组件(包括其依赖项)生成必要的 CSS。
- 默认值:
false - 类型:
boolean | string[]
启用自动检测
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
experimental: {
componentDetection: true
}
}
})
包含用于动态使用的额外组件
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
experimental: {
componentDetection: ['Modal', 'Dropdown', 'Popover']
}
}
})
<component :is="..." /> 这样无法进行静态分析的动态组件非常有用。持续发布
Nuxt UI 使用 pkg.pr.new 进行持续预览发布,使开发者无需等待官方发布即可即时访问最新功能和错误修复。
针对 v4 分支的所有提交和 PR 都会创建自动预览版本。通过使用特定的提交哈希或 PR 编号替换包版本即可使用它们。
{
"dependencies": {
- "@nuxt/ui": "^4.0.0",
+ "@nuxt/ui": "https://pkg.pr.new/@nuxt/ui@4c96909",
}
}