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/preset-wind3.md
1---2name: preset-wind33description: Tailwind CSS / Windi CSS compatible preset for UnoCSS4---56# Preset Wind378The Tailwind CSS / Windi CSS compatible preset. Most commonly used preset for UnoCSS.910## Installation1112```ts13import { defineConfig, presetWind3 } from 'unocss'1415export default defineConfig({16presets: [17presetWind3(),18],19})20```2122**Note:** `@unocss/preset-uno` and `@unocss/preset-wind` are deprecated and renamed to `@unocss/preset-wind3`.2324## Features2526- Full Tailwind CSS v3 compatibility27- Dark mode (`dark:`, `@dark:`)28- All responsive variants (`sm:`, `md:`, `lg:`, `xl:`, `2xl:`)29- All standard utilities (flex, grid, spacing, colors, typography, etc.)30- Animation support (includes Animate.css animations)3132## Dark Mode3334### Class-based (default)3536```html37<div class="dark:bg-gray-800">38```3940Generates: `.dark .dark\:bg-gray-800 { ... }`4142### Media Query Based4344```ts45presetWind3({46dark: 'media'47})48```4950Generates: `@media (prefers-color-scheme: dark) { ... }`5152### Opt-in Media Query5354Use `@dark:` regardless of config:5556```html57<div class="@dark:bg-gray-800">58```5960## Options6162```ts63presetWind3({64// Dark mode strategy65dark: 'class', // 'class' | 'media' | { light: '.light', dark: '.dark' }6667// Generate pseudo selector as [group=""] instead of .group68attributifyPseudo: false,6970// CSS custom properties prefix71variablePrefix: 'un-',7273// Utils prefix74prefix: '',7576// Generate preflight CSS77preflight: true, // true | false | 'on-demand'7879// Mark all utilities as !important80important: false, // boolean | string (selector)81})82```8384### Important Option8586Make all utilities `!important`:8788```ts89presetWind3({90important: true,91})92```9394Or scope with selector to increase specificity without `!important`:9596```ts97presetWind3({98important: '#app',99})100```101102Output: `#app :is(.dark .dark\:bg-blue) { ... }`103104## Differences from Tailwind CSS105106### Quotes Not Supported107108Template quotes don't work due to extractor:109110```html111<!-- Won't work -->112<div class="before:content-['']">113114<!-- Use shortcut instead -->115<div class="before:content-empty">116```117118### Background Position119120Use `position:` prefix for custom values:121122```html123<!-- Tailwind -->124<div class="bg-[center_top_1rem]">125126<!-- UnoCSS -->127<div class="bg-[position:center_top_1rem]">128```129130### Animations131132UnoCSS integrates Animate.css. Use `-alt` suffix for Animate.css versions when names conflict:133134- `animate-bounce` - Tailwind version135- `animate-bounce-alt` - Animate.css version136137Custom animations:138139```ts140theme: {141animation: {142keyframes: {143custom: '{0%, 100% { opacity: 0; } 50% { opacity: 1; }}',144},145durations: {146custom: '1s',147},148timingFns: {149custom: 'ease-in-out',150},151counts: {152custom: 'infinite',153},154}155}156```157158## Differences from Windi CSS159160| Windi CSS | UnoCSS |161|-----------|--------|162| `<sm:p-1` | `lt-sm:p-1` |163| `@lg:p-1` | `at-lg:p-1` |164| `>xl:p-1` | `xl:p-1` |165166Bracket syntax uses `_` instead of `,`:167168```html169<!-- Windi CSS -->170<div class="grid-cols-[1fr,10px,max-content]">171172<!-- UnoCSS -->173<div class="grid-cols-[1fr_10px_max-content]">174```175176## Experimental: Media Hover177178Addresses sticky hover on touch devices:179180```html181<div class="@hover-text-red">182```183184Generates:185```css186@media (hover: hover) and (pointer: fine) {187.\@hover-text-red:hover { ... }188}189```190191<!--192Source references:193- https://unocss.dev/presets/wind3194-->195