unocss: 又一个原子化的CSS框架,类比Tailwind
又一个神奇的css框架
安装
yarn add --dev unocss @unocss/preset-uno @unocss/preset-attributify @unocss/preset-icons
cheatsheet
功能 | 用法 |
---|---|
基本配置 |
|
添加插件,可以在属性里写样式 |
|
添加图标 |
|
使用属性 attributify
<button
bg="blue-400 hover:blue-500 dark:blue-500 dark:hover:blue-600"
text="sm white"
font="mono light"
p="y-2 x-4"
border="2 rounded blue-200"
>
Button
</button>
简写
<button class="border border-red">
Button
</button>
<p>可以简写为</p>
<button border="~ red">
Button
</button>
使用ICON
<div className="i-gg-add-r w-4 h-4"></div>
unocss-shims.d.ts
针对
attributify
来添的支持,否则 eslint 会报错
import type { AttributifyAttributes } from '@unocss/preset-attributify'
declare module 'react' {
interface HTMLAttributes<T> extends AttributifyAttributes {}
}
Uni VS Tailwind
1. 哲学和设计理念:
- Tailwind CSS的设计理念是提供一组原子级别的CSS类,这些类可以直接应用于HTML元素,通过组合这些类可以快速构建界面。它鼓励开发者直接控制CSS类,而不是通过编写和维护大量特定样式的CSS规则。
- UnoCSS则更注重于自动化样式生成和去除不需要的样式。它使用了静态分析和PurgeCSS
算法,在编译过程中自动推断和优化样式,并移除未使用的样式。
2. 学习曲线:
- Tailwind CSS相对较容易上手,只需要了解框架提供的一系列CSS类和相应的样式属性即可开始开发。
- UnoCSS的学习曲线可能会更陡峭一些,因为它需要你了解如何配置和使用静态分析工具,以及如何通过配置文件精确控制样式的生成和优化。
3. 定制能力:
- Tailwind CSS提供了丰富的配置选项,可以自定义颜色、字体、间距等属性。它还提供了一套强大的插件系统,允许你根据自己的需求扩展框架。
- UnoCSS在一定程度上也可以定制,但它的主要设计目标是自动化样式生成和优化,所以相对来说定制能力较弱。
4. 社区生态:
- Tailwind CSS拥有庞大的社区,有大量的教程、示例和优秀的第三方库和插件支持。
- UnoCSS作为一个相对较新的项目,社区生态可能相对较小,但也在不断发展壮大。
综上所述,Tailwind CSS和UnoCSS都是强大而流行的CSS框架,选择哪个取决于你的个人偏好、项目需求和开发经验。如果你更注重自动化样式生成和优化,可以考虑UnoCSS;如果你更喜欢直接控制CSS类来构建界面,可以选择Tailwind CSS。
参考
- https://unocss.dev/
- https://icones.js.org/
- https://dev.to/mapleleaf/tailwindcss-vs-unocss-2a53
- https://blog.csdn.net/ASHIYI66/article/details/132617040
- https://blog.csdn.net/sinat_40572875/article/details/127828053
- https://unocss.dev/presets/icons
- https://github.com/aric-notes/unocss-notes
- https://blog.csdn.net/liweijie_90/article/details/131692012