安装
设置
添加到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']
})
@nuxt/icon、@nuxt/fonts或@nuxtjs/color-mode添加到modules阵列中,因为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
npm create nuxt@latest -- -t ui/calendar
选项
您可以通过在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']
}
}
})
--ui-color-*阴影和变体,无论您的应用是否使用它。将列表修剪为您实际使用的别名,如果您使用表单,请保留error,因为验证样式依赖于它。theme.transitions
使用theme.transitions选项启用或禁用组件上的转换。
- 默认值:
true
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
transitions: false
}
}
})
transition-colors类添加到具有悬停或活动状态的组件上。theme.unstyled:badge{label="4.9+" class="align-text-top"}
使用theme.unstyled选项从组件中删除所有默认主题类,只保留它们的结构和通过class、ui或app.config.ui提供的类。
- 默认值:
false
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
unstyled: true
}
}
})
Modal,Drawer或Calendar这样的布局重的组件需要你重新提供它们的布局,类似于PrimeVue的无样式模式。theme.defaultVariants
使用theme.defaultVariants选项覆盖组件的默认color和size变体。
只有完全为primary或md的默认值才会被替换,因此Avatar保留color: 'neutral',Separator保留size: 'xs'。
- 默认值:
{ color: 'primary', size: 'md' }
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
defaultVariants: {
color: 'neutral',
size: 'sm'
}
}
}
})
theme.prefix:badge{label="4.2+" class="align-text-top"}
使用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";
fonts.processCSSVariables才能对@nuxt/fonts模块使用prefix选项: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或@comark/nuxt。
- 默认值:
false
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
prose: true
}
})
mdc:badge{label="Deprecated" color="warning" class="align-text-top"}
请改用prose选项。
content
使用content选项强制导入Nuxt UI散文和内容组件,即使未安装@nuxt/content。
- 默认值:
false
export default defineNuxtConfig({
modules: ['@nuxt/ui'],
css: ['~/assets/css/main.css'],
ui: {
content: true
}
})
experimental.componentDetection:badge{label="4.1+" class="align-text-top"}
使用experimental.componentDetection选项启用自动组件检测以进行树抖动。此功能扫描您的源代码以检测实际使用的组件,并仅为这些组件(包括其依赖项)生成必要的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', 'DropdownMenu', '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",
}
}