Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Configure and use UnoCSS atomic CSS engine with presets like Wind (Tailwind-compatible), Icons, and Attributify.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/integrations-nuxt.md
1---2name: unocss-nuxt-integration3description: UnoCSS module for Nuxt applications4---56# UnoCSS Nuxt Integration78The official Nuxt module for UnoCSS.910## Installation1112```bash13pnpm add -D unocss @unocss/nuxt14```1516Add to Nuxt config:1718```ts19// nuxt.config.ts20export default defineNuxtConfig({21modules: [22'@unocss/nuxt',23],24})25```2627Create config file:2829```ts30// uno.config.ts31import { defineConfig, presetWind3 } from 'unocss'3233export default defineConfig({34presets: [35presetWind3(),36],37})38```3940**Note:** The `uno.css` entry is automatically injected by the module.4142## Support Status4344| Build Tool | Nuxt 2 | Nuxt Bridge | Nuxt 3 |45|------------|--------|-------------|--------|46| Webpack Dev | โ | โ | ๐ง |47| Webpack Build | โ | โ | โ |48| Vite Dev | - | โ | โ |49| Vite Build | - | โ | โ |5051## Configuration5253### Using uno.config.ts (Recommended)5455Use a dedicated config file for best IDE support:5657```ts58// uno.config.ts59import { defineConfig, presetWind3, presetIcons } from 'unocss'6061export default defineConfig({62presets: [63presetWind3(),64presetIcons(),65],66shortcuts: {67'btn': 'py-2 px-4 font-semibold rounded-lg',68},69})70```7172### Nuxt Layers Support7374Enable automatic config merging from Nuxt layers:7576```ts77// nuxt.config.ts78export default defineNuxtConfig({79unocss: {80nuxtLayers: true,81},82})83```8485Then in your root config:8687```ts88// uno.config.ts89import config from './.nuxt/uno.config.mjs'9091export default config92```9394Or extend the merged config:9596```ts97// uno.config.ts98import { mergeConfigs } from '@unocss/core'99import config from './.nuxt/uno.config.mjs'100101export default mergeConfigs([config, {102// Your overrides103shortcuts: {104'custom': 'text-red-500',105},106}])107```108109## Common Setup Example110111```ts112// nuxt.config.ts113export default defineNuxtConfig({114modules: [115'@unocss/nuxt',116],117})118```119120```ts121// uno.config.ts122import {123defineConfig,124presetAttributify,125presetIcons,126presetTypography,127presetWebFonts,128presetWind3,129transformerDirectives,130transformerVariantGroup,131} from 'unocss'132133export default defineConfig({134presets: [135presetWind3(),136presetAttributify(),137presetIcons({138scale: 1.2,139}),140presetTypography(),141presetWebFonts({142fonts: {143sans: 'DM Sans',144mono: 'DM Mono',145},146}),147],148transformers: [149transformerDirectives(),150transformerVariantGroup(),151],152shortcuts: [153['btn', 'px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer hover:bg-teal-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],154],155})156```157158## Usage in Components159160```vue161<template>162<div class="p-4 text-center">163<h1 class="text-3xl font-bold text-blue-600">164Hello UnoCSS!165</h1>166<button class="btn mt-4">167Click me168</button>169</div>170</template>171```172173With attributify mode:174175```vue176<template>177<div p="4" text="center">178<h1 text="3xl blue-600" font="bold">179Hello UnoCSS!180</h1>181</div>182</template>183```184185## Inspector186187In development, visit `/_nuxt/__unocss` to access the UnoCSS inspector.188189## Key Differences from Vite190191- No need to import `virtual:uno.css` - automatically injected192- Config file discovery works the same193- All Vite plugin features available194- Nuxt layers config merging available195196<!--197Source references:198- https://unocss.dev/integrations/nuxt199-->200