UnoCss最新配置攻略

安装命令
js 复制代码
# 安装 UnoCSS
npm install -D unocss

# 如果使用 Vue 3,还需要安装预设
npm install -D @unocss/preset-uno @unocss/preset-attributify @unocss/preset-icons
配置步骤

1.创建uno.config.ts文件(项目根目录)

js 复制代码
import { defineConfig } from 'unocss'
import presetUno from '@unocss/preset-uno'
import presetAttributify from '@unocss/preset-attributify'
import presetIcons from '@unocss/preset-icons'

export default defineConfig({
  presets: [
    presetUno(),
    presetAttributify(),
    presetIcons({
      collections: {
        // 可以配置图标集合
      }
    })
  ],
  // 其他配置...
})

2.修改vite.config.ts

js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import UnoCSS from 'unocss/vite'
import path from 'path'

export default defineConfig({
  plugins: [
    vue(),
    UnoCSS()  // 添加 UnoCSS 插件
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src')
    }
  }
})
3.在main.ts中引入样式
js 复制代码
import 'virtual:uno.css'
4.在index.html或者style.css中添加
js 复制代码
/* 或者直接在 style.css 中 */
@import 'uno.css';

最新用法和文档

官方文档

核心特性

  1. 原子化 CSS:按需生成,体积小
  2. 即时编译:开发时即时生成样式
  3. 预设系统:支持多个预设组合
  4. 图标支持:内置图标预设

常用预设

  • @unocss/preset-uno:默认预设(Tailwind 兼容)

  • @unocss/preset-attributify:属性化模式

  • @unocss/preset-icons:图标支持

  • @unocss/preset-typography:排版预设

  • @unocss/preset-web-fonts:Web 字体

使用示例
js 复制代码
<template>
  <!-- 原子化类名 -->
  <div class="flex items-center justify-center p-4 bg-blue-500 text-white">
    Hello UnoCSS
  </div>
  
  <!-- 属性化模式 -->
  <div flex items-center p="4" bg="blue-500" text="white">
    Hello UnoCSS
  </div>
  
  <!-- 图标 -->
  <div class="i-carbon-sun" />
</template>
流程
js 复制代码
# 1. 安装依赖
npm install -D unocss @unocss/preset-uno @unocss/preset-attributify @unocss/preset-icons

# 2. 创建 uno.config.ts(手动创建)

# 3. 修改 vite.config.ts(添加 UnoCSS 插件)

# 4. 在 main.ts 中引入 'virtual:uno.css'
Vue 3 + Vite + TypeScript + Element Plus,建议配置:
js 复制代码
// uno.config.ts
import { defineConfig } from 'unocss'
import presetUno from '@unocss/preset-uno'
import presetIcons from '@unocss/preset-icons'

export default defineConfig({
  presets: [
    presetUno(),
    presetIcons()
  ],
  // 安全列表(确保某些类名不会被清除)
  safelist: [],
  // 快捷方式
  shortcuts: {
    'btn': 'px-4 py-2 rounded bg-blue-500 text-white hover:bg-blue-600'
  }
})
相关推荐
CodingSpace9 小时前
TypeScript 装饰器
前端
宸翰9 小时前
解决 uni-app App 端 vue-i18n 占位符丢失:封装跨端可用的 tf 格式化方法
前端·vue.js·uni-app
systemPro9 小时前
光储充系统数据流全解析:PV / ESS / GRID 数据怎么流转,线损怎么算
前端
古茗前端团队11 小时前
急招!前端|测试|后端|产品(名额多,速来)
前端·后端·架构
Lsx_11 小时前
不只是 Prompt:用 Superpowers Skill 给 AI 编程装上工程化工作流
前端·ai编程·claude
小碗细面11 小时前
前端 Prompt 工程实战:如何搭建场景化 Prompt 库
前端·ai编程
阿瑞IT11 小时前
2026年 AI Agent 生产化落地全景:四大高频故障根因分析与工程解法
前端
木木剑光11 小时前
我开源了一个 React 组件库,沉淀了多个高频组件和实用 Hooks
前端·javascript·react.js
kyriewen11 小时前
DeepSeek API 高峰时段涨价 2 倍,便宜大碗的时代要结束了?
前端·ai编程·deepseek
Moment12 小时前
牛逼,NextJs 从 16.3 开始全面拥抱 Agent Native 🥰🥰🥰
前端·后端·面试