vscode 提示插件 WindiCSS IntelliSense
npm i -D vite-plugin-windicss windicss
vite.config.ts
import WindiCSS from "vite-plugin-windicss";
export default {
plugins: [WindiCSS()],
};
main.ts
import "virtual:windi.css";
<div class="h-screen w-screen">测试数据div>
默认单位都是 rem 某些时候你需要用到具体 px 来适应设计图
<!-- sizes and positions leading 行高-->
<div class="p-5px mt-[0.3px] leading-20px"></div>
<!-- colors -->
text-[rgba(123,123,123,0.5)] 逗号前后不能有空格否则不生效
<button class="bg-hex-b2a8bb bg-[#f6f6f7]"></button>
<button class="text-[rgba(123,123,123,0.5)]"></button>
<button class="bg-[hsl(211.7,81.9%,69.6%)]"></button>
<!-- border-->
border border-width: 1px;
rounded-5px border-radius: 5px
rounded-tr-4px border-top-right-radius: 4px;
<div class="border rounded-5px rounded-tr-4px"></div>
<!-- grid template -->
<div class="grid-cols-[auto,1fr,30px]"></div>
.van-tabbar{
height: var(--van-tabbar-height)
}
<main class="pb-$van-tabbar-height"></main>
在类名前加上 ! 即为当前下属性加上 important
<div class="!common-box">testdiv>
在 @apply 指令中使用
.btn { @apply font-bold py-2 px-4 rounded !important; }
快速创建可复用的组件和工具类。
windi.config.ts
import { defineConfig } from "vite-plugin-windicss";
export default defineConfig({
shortcuts: {
"common-box": "w-[375px] bg-hex-b2a8bc",
},
});
全局使用
<div class="common-box">div>
和 Shortcuts 很像,Shortcuts 全局可用,@apply 当前文件可用(把一堆臃肿的类名重新取名放在视图上)
<div class="screen">测试数据</div>
<style lang="postcss" scoped>
.screen {
@apply h-screen w-screen;
}
</style>
theme() 函数允许你通过 . 运算符来获取你设置的值。
windi.config.ts
import { defineConfig } from "vite-plugin-windicss";
export default defineConfig({
theme: {
extend: {
colors: {
"main-color": "#fc0",
},
},
},
});
style 写法
<style lang="postcss" scoped>
.box {
background: theme("colors.main-color");
}
style>
class 写法
<div class="text-cyan-300 bg-main-color">testdiv>
基于这个特性,你可以在 html 属性中编写 windi 类。
windi.config.ts
import { defineConfig } from "windicss/helpers";
export default defineConfig({
// attributify 开启属性模式
// attributify: true,
attributify: {
// 属性别名
prefix: "w:",
},
alias: {},
});
开启属性模式 默认写法
<div text="sm white">测试数据div>
开启属性模式 配置别名
<div w:text="sm white">测试数据div>
pnpm add -D unocss
vite.config.ts
import UnoCSS from "unocss/vite";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [UnoCSS()],
});
uno.config.ts
import { defineConfig } from "unocss";
export default defineConfig({});
main.ts
import "virtual:uno.css";
下载
pnpm add @unocss/reset
使用
main.ts
import "@unocss/reset/normalize.css";
下载
pnpm add -D @unocss/transformer-directives
// uno.config.ts
import { defineConfig } from "unocss";
import transformerDirectives from "@unocss/transformer-directives";
export default defineConfig({
// ...
transformers: [transformerDirectives()],
});
@apply
.custom-div {
@apply text-center my-0 font-medium;
}
theme()
.btn-blue {
background-color: theme("colors.blue.500");
}
下载
pnpm add -D @unocss/preset-wind
配置 uno.config.ts
import { defineConfig } from "unocss";
import presetWind from "@unocss/preset-wind";
export default defineConfig({
presets: [presetWind()],
});
此预设包含在 unocss 包中,您也可以这样导入它:
import { presetWind } from ‘unocss’
<div class="after:content-[''] after:-translate-x-50% after:absolute after:left-50% after:bottom-0"></div>