UnoCSS 是一个即时(on-demand)的原子化CSS引擎,它的设计灵感来源于Windi CSS和Tailwind CSS,但在性能和灵活性上进行了大幅优化。UnoCSS的核心理念是根据你在模板中的类名,动态生成CSS,避免了不必要的全局CSS加载。本文将介绍如何在Vue3+Vite+TypeScript项目中引入并使用UnoCSS主题。
编辑
安装UnoCSS
运行以下命令:
npm install unocss -D
引入UnoCSS
安装完成后,在main.ts中引入
import { createApp } from 'vue'
import App from './App.vue'
import 'virtual:uno.css'
createApp(App).mount('#app')
在vite.config.ts中配置:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import UnoCSS from 'unocss/vite';
export default defineConfig({
plugins: [
vue(),
UnoCSS(),
],
});
创建UnoCSS配置文件
为了更好地管理和自定义UnoCSS的行为,可以在项目的根目录下创建一个uno.config.ts文件,并添加以下代码:
import { defineConfig, presetUno, presetAttributify } from 'unocss';
export default defineConfig({
shortcuts: [
[
/^btn-(.*)$/,
([, c]) =>
`w-54px h-34px lh-34px bg-${c} border-rd-6px text-16px text-center text-[#fff] hover:color-#838c96 hover:cursor-pointer`,
],
],
presets: [
presetUno(),
presetAttributify()
],
});
在这个配置中,引入了2个预设,1个快捷短语设置shortcuts:
presetUno: UnoCSS的核心预设。presetAttributify: 允许使用属性模式来应用样式。- 更多预设功能可以查看:Uno 预设
在组件中使用UnoCSS
如简单的flex布局、按钮背景、文字等样式设计:
<div class="min-h-36px lh-36px p-10px light flex">
<div class="mr10 btn-[#373E4C]">确认1</div>
<div class="mr10 btn-[#3258DF]">确认2</div>
<div class="btn-[#D4D7DE]">取消</div>
</div>
编辑
如想使用工具转换样式为CSS类名提升开发效率,可查看我的另一篇博客:
以上就是UnoCSS的安装和使用啦^-^