赞
踩
Unocss 是一个基于 Tailwind CSS
的工具 ,它通过静态分析 HTML 和 CSS 代码,自动消除未使用的样式,以减小生成的 CSS 文件大小。这个工具可以帮助开发者在使用 Tailwind CSS 进行开发时,避免将整个框架的样式都打包到最终的 CSS 文件中,而只保留实际使用到的样式,从而减少文件大小和加载时间。
使用 Unocss 可以让开发者更加高效地使用 Tailwind CSS,避免因为使用了大量未使用的样式而导致 CSS 文件过大的问题。它可以作为构建工具的一部分,用于在开发过程中自动优化样式文件,或者作为单独的工具来处理已有的 CSS 文件。
可以参考官方网站来安装配置
npm install -D unocss
pnpm add -D unocss
yarn add -D unocss
"devDependencies": {
"unocss": "^0.58.3"
}
// vite.config.ts
import UnoCSS from 'unocss/vite'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [UnoCSS()],
})
uno.config.ts
文件配置可以参考官网
// 我的uno配置 import type { Theme } from 'unocss/preset-uno' import { defineConfig, presetAttributify, presetIcons, presetTypography, presetUno, transformerCompileClass, transformerDirectives, transformerVariantGroup, } from 'unocss' import { entriesToCss, toArray } from '@unocss/core' import { darkTheme, lightTheme } from './themes' // https://unocss.nodejs.cn/config/ 配置参考页面 export default defineConfig<Theme>({ // 生成 CSS 工具的规则。 后来的条目具有更高的优先级。 rules: [], // 自定义简写以提供自动补齐建议。 如果 values 是一个数组,它将与 | 连接并用 () 封装。 shortcuts: [ { 'flex-center': 'flex justify-center items-center', 'flex-col-center': 'flex flex-col justify-center items-center', }, ], // 原始 CSS 注入。 preflights: [ { getCSS: () => { const returnCss: any = [] // 明亮主题 const lightCss = entriesToCss(Object.entries(lightTheme)) const lightRoots = toArray([`*,::before,::after`, `::backdrop`]) returnCss.push(lightRoots.map((root) => `${root}{${lightCss}}`).join('')) // 暗黑主题 const darkCss = entriesToCss(Object.entries(darkTheme)) const darkRoots = toArray([ `html.dark,html.dark *,html.dark ::before,html.dark ::after`, `html.dark ::backdrop`, ]) returnCss.push(darkRoots.map((root) => `${root}{${darkCss}}`).join('')) return returnCss.join('') }, }, ], theme: { colors: { 'ui-primary': 'rgb(var(--ui-primary))', 'ui-text': 'rgb(var(--ui-text))', }, }, presets: [ presetUno(), presetAttributify(), presetIcons({ extraProperties: { display: 'inline-block', 'vertical-align': 'middle', }, }), presetTypography(), ], transformers: [transformerDirectives(), transformerVariantGroup(), transformerCompileClass()], configDeps: ['themes/index.ts'], })
virtual:uno.css
添加到你的主入口中// main.ts
import 'virtual:uno.css'
<div class="pa h-full w-full bg-white"> <div class="mx-auto max-w-sm space-y-2 rounded-xl bg-white py-8 px-8 shadow-lg sm:flex sm:items-center sm:space-y-0 sm:space-x-6 sm:py-4" > <img class="mx-auto block h-24 rounded-full sm:mx-0 sm:shrink-0" src="/src/assets/images/avatar.gif" alt="Woman's Face" /> <div class="space-y-2 text-center sm:text-left"> <div class="space-y-0.5"> <p class="text-lg font-semibold text-black">Erin Lindford</p> <p class="font-medium text-slate-500">Product Engineer</p> </div> <button class="rounded-full border border-purple-200 px-4 py-1 text-sm font-semibold text-purple-600 hover:border-transparent hover:bg-purple-600 hover:text-white focus:outline-none focus:ring-2 focus:ring-purple-600 focus:ring-offset-2" > Message </button> </div> </div> </div>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。