All skills
antfu avatar

/unocss

@d02c484 official
by Anthony Fuantfu/skills5.9k stars
335

UnoCSS instant atomic CSS engine, superset of Tailwind CSS. Use when configuring UnoCSS, writing utility rules, shortcuts, or working with presets like Wind, Icons, Attributify.

Use this Skill: https://skilld.dev/gh/antfu/skills/unocss

This session only. Nothing lands on disk.

referencespreset-wind4.md

≈1.2k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Preset Wind4

The Tailwind CSS v4 compatible preset. Enhances preset-wind3 with modern CSS features.

Installation

import { defineConfig, presetWind4 } from 'unocss'

export default defineConfig({
  presets: [
    presetWind4(),
  ],
})

Key Differences from Wind3

Built-in CSS Reset

No need for @unocss/reset - reset is built-in:

// Remove these imports
import '@unocss/reset/tailwind.css' // ❌ Not needed
import '@unocss/reset/tailwind-compat.css' // ❌ Not needed

// Enable in config
presetWind4({
  preflights: {
    reset: true,
  },
})

OKLCH Color Model

Uses oklch for better color perception and contrast. Not compatible with presetLegacyCompat.

Theme CSS Variables

Automatically generates CSS variables from theme:

:root, :host {
  --spacing: 0.25rem;
  --font-sans: ui-sans-serif, system-ui, sans-serif;
  --colors-black: #000;
  --colors-white: #fff;
  /* ... */
}

@property CSS Rules

Uses @property for better browser optimization:

@property --un-text-opacity {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 100%;
}

Theme Key Changes

preset-wind3 preset-wind4
fontFamily font
fontSize text.fontSize
lineHeight text.lineHeight or leading
letterSpacing text.letterSpacing or tracking
borderRadius radius
easing ease
breakpoints breakpoint
verticalBreakpoints verticalBreakpoint
boxShadow shadow
transitionProperty property
container.maxWidth containers.maxWidth
Size properties (width, height, etc.) Unified to spacing

Options

presetWind4({
  preflights: {
    // Built-in reset styles
    reset: true,
    
    // Theme CSS variables generation
    theme: 'on-demand', // true | false | 'on-demand'
    
    // @property CSS rules
    property: true,
  },
})

Theme Variable Processing

Convert rem to px for theme variables:

import { createRemToPxProcessor } from '@unocss/preset-wind4/utils'

presetWind4({
  preflights: {
    theme: {
      mode: 'on-demand',
      process: createRemToPxProcessor(),
    }
  },
})

// Also apply to utilities
export default defineConfig({
  postprocess: [createRemToPxProcessor()],
})

Property Layer Customization

presetWind4({
  preflights: {
    property: {
      // Custom parent wrapper
      parent: '@layer custom-properties',
      // Custom selector
      selector: ':where(*, ::before, ::after)',
    },
  },
})

Remove @supports wrapper:

presetWind4({
  preflights: {
    property: {
      parent: false,
    },
  },
})

Generated Layers

Layer Description Order
properties CSS @property rules -200
theme Theme CSS variables -150
base Reset/preflight styles -100

Theme.defaults

Global default configuration for reset styles:

import type { Theme } from '@unocss/preset-wind4/theme'

const defaults: Theme['default'] = {
  transition: {
    duration: '150ms',
    timingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
  },
  font: {
    family: 'var(--font-sans)',
    featureSettings: 'var(--font-sans--font-feature-settings)',
    variationSettings: 'var(--font-sans--font-variation-settings)',
  },
  monoFont: {
    family: 'var(--font-mono)',
    // ...
  },
}

Compatibility Notes

presetRemToPx

Not needed - use built-in processor instead:

presetWind4({
  preflights: {
    theme: {
      process: createRemToPxProcessor(),
    }
  },
})

presetLegacyCompat

Not compatible with preset-wind4 due to oklch color model.

Migration from Wind3

  1. Update theme keys according to the table above
  2. Remove @unocss/reset imports
  3. Enable preflights.reset: true
  4. Test color outputs (oklch vs rgb)
  5. Update any custom theme extensions
// Before (wind3)
theme: {
  fontFamily: { sans: 'Roboto' },
  fontSize: { lg: '1.125rem' },
  breakpoints: { sm: '640px' },
}

// After (wind4)
theme: {
  font: { sans: 'Roboto' },
  text: { lg: { fontSize: '1.125rem' } },
  breakpoint: { sm: '640px' },
}

When to Use Wind4

Choose preset-wind4 when:

  • Starting a new project
  • Targeting modern browsers
  • Want built-in reset and CSS variables
  • Following Tailwind v4 conventions

Choose preset-wind3 when:

  • Need legacy browser support
  • Migrating from Tailwind v3
  • Using presetLegacyCompat
  • Want stable, proven preset
<!-- Source references: - https://unocss.dev/presets/wind4 -->

Source: SKILL.md on GitHub

No alerts3d5 checks · Risk SAFE
  • Gen Agent Trust Hub3d

    This skill is a documentation-only resource providing configuration guides, presets, and integration instructions for the UnoCSS engine. It contains no executable code or malicious patterns.

  • Socket3d

    No alerts

  • Snyk3d

    Risk: LOW · No issues

  • Runlayer7mo

    1/25 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at d02c484. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 4 days ago
Other metadata
metadata
{
  "author": "Anthony Fu",
  "version": "2026.9.25",
  "source": "Generated from https://github.com/unocss/unocss, scripts located at https://github.com/antfu/skills"
}
  • Nuxt
  • unocss
  • atomic-css
  • tailwind
  • css
  • preset
  • configuration
  • vite

README badge

README badge for antfu/skills/unocss

Configures and extends UnoCSS, an atomic CSS engine compatible with Tailwind CSS syntax but customizable via presets, rules, shortcuts, and variants. Use this skill when setting up UnoCSS in a project, writing custom utility rules, or integrating presets like Wind, Icons, or Attributify.

Generated from the current SKILL.md.

Is UnoCSS compatible with Tailwind CSS?
Yes. UnoCSS is a superset of Tailwind CSS, so basic utility syntax from Tailwind works directly. The skill includes Preset Wind3 for Tailwind v3 / Windi CSS compatibility and Preset Wind4 for Tailwind v4 with modern CSS features.
How do I know what utilities and presets are available in a project?
Check for `uno.config.*` or `unocss.config.*` files in the project root to see what presets, rules, and shortcuts are configured. If the project setup is unclear, stick to basic `class` usage and avoid advanced features like attributify mode.
Can I use UnoCSS with Nuxt or Vite?
Yes. The skill includes Vite integration instructions and a Nuxt module for seamless setup in both frameworks.
Does this skill support CSS icons?
Yes, via Preset Icons, which provides pure CSS icons from Iconify with any icon set available.
What version of UnoCSS does this skill cover?
The skill is based on UnoCSS 66.x, generated at 2026-01-28.

Generated from the current SKILL.md. These answers refresh after source changes.