.agents/skills/unocss/references/core-config.md
UnoCSS is configured via a dedicated config file in your project root.
Recommended: Use a dedicated uno.config.ts file for best IDE support and HMR.
// uno.config.ts
import {
defineConfig,
presetAttributify,
presetIcons,
presetTypography,
presetWebFonts,
presetWind3,
transformerDirectives,
transformerVariantGroup
} from 'unocss'
export default defineConfig({
shortcuts: [
// ...
],
theme: {
colors: {
// ...
}
},
presets: [
presetWind3(),
presetAttributify(),
presetIcons(),
presetTypography(),
presetWebFonts({
fonts: {
// ...
},
}),
],
transformers: [
transformerDirectives(),
transformerVariantGroup(),
],
})
UnoCSS automatically looks for uno.config.{js,ts,mjs,mts} or unocss.config.{js,ts,mjs,mts} in the project root.
Define CSS utility rules. Later entries have higher priority.
rules: [
['m-1', { margin: '0.25rem' }],
[/^m-(\d+)$/, ([, d]) => ({ margin: `${d / 4}rem` })],
]
Combine multiple rules into a single shorthand.
shortcuts: {
'btn': 'py-2 px-4 font-semibold rounded-lg shadow-md',
}
Theme object for design tokens shared between rules.
theme: {
colors: {
brand: '#942192',
},
breakpoints: {
sm: '640px',
md: '768px',
},
}
Predefined configurations bundling rules, variants, and themes.
presets: [
presetWind3(),
presetIcons(),
]
Transform source code to support special syntax.
transformers: [
transformerDirectives(),
transformerVariantGroup(),
]
Preprocess selectors with ability to rewrite CSS output.
Handle source files and extract utility class names.
Inject raw CSS globally.
Control the order of CSS layers. Default is 0.
layers: {
'components': -1,
'default': 1,
'utilities': 2,
}
Utilities that are always included in output.
safelist: ['p-1', 'p-2', 'p-3']
Utilities that are always excluded.
blocklist: ['p-1', /^p-[2-4]$/]
Configure where to extract utilities from.
content: {
pipeline: {
include: [/\.(vue|svelte|tsx|html)($|\?)/],
},
filesystem: ['src/**/*.php'],
}
Variant separator characters. Default: [':', '-']
Output UnoCSS layers as CSS Cascade Layers.
outputToCssLayers: true
// vite.config.ts
import UnoCSS from 'unocss/vite'
export default defineConfig({
plugins: [
UnoCSS({
configFile: '../my-uno.config.ts',
}),
],
})