pnpm add @nitro/ui tailwindcss
yarn add @nitro/ui tailwindcss
npm install @nitro/ui tailwindcss
bun add @nitro/ui tailwindcss
nuxt.config.tsexport default defineNuxtConfig({
modules: ['@nitro/ui']
})
@nuxt/icon, @nuxt/fonts ou @nuxtjs/color-mode ao seu array modules, pois o Nitro UI os registra automaticamente. Você ainda pode configurar esses módulos no seu nuxt.config.ts usando as chaves icon, fonts e colorMode.@import "tailwindcss";
@import "@nitro/ui";
export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css']
})
@source para cada diretório de layer, garantindo que o Tailwind CSS escaneie todos os arquivos-fonte dos seus layers em busca de classes utilitárias.{
"files.associations": {
"*.css": "tailwindcss"
},
"editor.quickSuggestions": {
"strings": "on"
},
"tailwindCSS.classAttributes": ["class", "ui"],
"tailwindCSS.classFunctions": ["defineAppConfig"]
}
<template>
<NApp>
<NuxtPage />
</NApp>
</template>
Comece com um dos nossos templates oficiais usando o botão Use this template no GitHub ou a 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
Você pode personalizar o Nitro UI fornecendo opções no seu nuxt.config.ts.
prefixUse a opção prefix para alterar o prefixo dos componentes.
Nexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
prefix: 'Nuxt'
}
})
fontsUse a opção fonts para habilitar ou desabilitar o módulo @nuxt/fonts.
trueexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
fonts: false
}
})
colorModeUse a opção colorMode para habilitar ou desabilitar o módulo @nuxt/color-mode.
trueexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
colorMode: false
}
})
theme.colorsUse a opção theme.colors para definir os aliases de cor dinâmicos usados para gerar o tema dos componentes.
['primary', 'secondary', 'success', 'info', 'warning', 'error']export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
colors: ['primary', 'error']
}
}
})
theme.transitionsUse a opção theme.transitions para habilitar ou desabilitar as transições nos componentes.
trueexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
transitions: false
}
}
})
transition-colors nos componentes com estados de hover ou ativo.theme.unstyled 4.9+Use a opção theme.unstyled para remover todas as classes de tema padrão dos componentes, mantendo apenas sua estrutura e as classes que você fornece por meio de class, ui ou app.config.ui.
falseexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
unstyled: true
}
}
})
Modal, Drawer ou Calendar, exigirão que você forneça novamente o layout deles, semelhante ao modo unstyled do PrimeVue.theme.defaultVariantsUse a opção theme.defaultVariants para sobrescrever as variantes color e size padrão dos componentes.
{ color: 'primary', size: 'md' }export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
defaultVariants: {
color: 'neutral',
size: 'sm'
}
}
}
})
theme.prefix 4.2+Use a opção theme.prefix para configurar o mesmo prefixo que você definiu na importação do Tailwind CSS. Isso garante que os componentes do Nitro UI usem as classes utilitárias e variáveis CSS com o prefixo correto.
export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
prefix: 'tw'
}
}
})
@import "tailwindcss" prefix(tw);
@import "@nitro/ui";
fonts.processCSSVariables para usar a opção de prefixo com o módulo @nuxt/fonts:export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
theme: {
prefix: 'tw'
}
},
fonts: {
processCSSVariables: true
}
})
Isso adicionará automaticamente o prefixo a todas as classes utilitárias do Tailwind e variáveis CSS nos temas dos componentes do Nitro UI:
<!-- 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>
proseUse a opção prose para forçar a importação dos componentes Prose do Nitro UI mesmo que o @nuxtjs/mdc ou o @nuxt/content não estejam instalados.
falseexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
prose: true
}
})
mdc DeprecatedUse a opção prose.
contentUse a opção content para forçar a importação dos componentes <Prose> e <NContent> do Nitro UI mesmo que o @nuxt/content não esteja instalado.
falseexport default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
content: true
}
})
experimental.componentDetection 4.1+Use a opção experimental.componentDetection para habilitar a detecção automática de componentes para tree-shaking. Esse recurso escaneia seu código-fonte para detectar quais componentes são realmente usados e gera apenas o CSS necessário para esses componentes (incluindo suas dependências).
falseboolean | string[]Enable automatic detection:
export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
experimental: {
componentDetection: true
}
}
})
Include additional components for dynamic usage:
export default defineNuxtConfig({
modules: ['@nitro/ui'],
css: ['~/assets/css/main.css'],
ui: {
experimental: {
componentDetection: ['Modal', 'Dropdown', 'Popover']
}
}
})
<component :is="..." /> que não podem ser analisados estaticamente.O Nitro UI usa o pkg.pr.new para lançamentos de preview contínuos, dando aos desenvolvedores acesso instantâneo aos recursos mais recentes e correções de bugs sem esperar pelos lançamentos oficiais.
Lançamentos de preview automáticos são criados para todos os commits e PRs na branch v4. Use-os substituindo a versão do seu pacote pelo hash específico do commit ou pelo número do PR.
{
"dependencies": {
- "@nitro/ui": "^4.0.0",
+ "@nitro/ui": "https://pkg.pr.new/@nitro/ui@4c96909",
}
}
Introdução
O Nitro UI é uma biblioteca completa de componentes de UI para Vue (Nuxt opcional), com mais de 125 componentes acessíveis baseados em Tailwind CSS para construir aplicações web modernas.
Contribuição
Um guia completo sobre como contribuir com o Nitro UI, incluindo estrutura do projeto, fluxo de desenvolvimento e boas práticas.