インストール
Setup
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配列に追加する必要はありません。icon、fonts、colorModeキーを使用して、nuxt.config.tsでこれらのモジュールを設定することができます。Tailwind CSSとNuxt UIをCSSにインポート
@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テンプレートを使う
officialテンプレートをGitHubまたはCLIのUse this templateボタンを使用して開始します。
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
Options
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を保持します。バリデーションスタイルは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";
@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
@nuxtjs/mdc @nuxt/content @comark/nuxtがインストールされていなくても、Nuxt UI Proseコンポーネントを強制的にインポートするには、proseオプションを使用します。
- デフォルト
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/contentがインストールされていない場合でも、Nuxt UI散文およびコンテンツコンポーネントを強制的にインポートします。
- デフォルト
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",
}
}