一、【UnoCss / unibest】样式篇

1、废话介绍

UnoCSS 是由 Windi CSS 的一名团队成员发起的,从我们在 Windi CSS 中所做的工作中汲取了很多灵感。虽然 Windi CSS 不再被积极维护(截至 2023 年 3 月),但你可以将 UnoCSS 视为 Windi CSS 的 "精神继承者"。 UnoCSS 继承了 Windi CSS 的按需特性,属性化模式快捷方式变体组编译模式 等等。最重要的是,UnoCSS 是从头开始构建的,考虑到了最大的可扩展性和性能,使我们能够引入 纯 CSS 图标无值的属性化标签化网络字体 等新功能。


unibest 是最好的 uniapp 开发框架,由 uniapp + Vue3 + Ts + Vite5 + UnoCss + VSCode(可选 webstorm) + uni插件+ wot-ui(可选其他 UI 库)构建,集成了多种工具和技术,使用了最新的前端技术栈,无需依靠 HBuilderX,通过命令行方式即可运行 web小程序App。(注:App 还是需要 HBuilderX

unibest 内置了 约定式路由layout布局请求封装请求拦截登录拦截UnoCSSi18n多语言 等基础功能,提供了 代码提示自动格式化统一配置代码片段 等辅助功能,让你编写 uniapp 拥有 best 体验 ( unibest 的由来)。

unibest 目前支持 H5小程序App

2、UnoCSS / unibest

本篇主要介绍 UnoCSS 的使用,以及如何与 设计稿尺寸 对应。 UnoCSS 是按需使用的原子 CSS 引擎,提供了良好的样式支持。

3、安装插件

请安装 VSCode 插件 antfu.unocss

安装完成后在 VSCode 中还可以预览,

如果不记得原子类,可以查 UnoCSS 的原子类UnoCSS Interactive

也可以查看 tailwindcss 的原子类,更加清晰明了,链接 - tailwindcss

4、设计稿尺寸

不同的编写方式,需要设置不同的设计稿尺寸,请看下文:

4.1、传统编写方式

如果有设计稿,通常使用传统的编写 CSS 的方式,里面的对应尺寸规律如下。以蓝湖为例,假如设计稿宽度为 750px,则直接复制样式代码到 css 代码,同时把 px 批量替换为 rpx 即可。

如果设计稿不是 750px 可以调整蓝湖的设置,让设计稿宽度为 750px

下面为一段辅助说明文案,从 uniapp 官网搬运而来。

rpx 是相对于基准宽度的单位,可以根据屏幕宽度进行自适应。uni-app 规定屏幕基准宽度 750rpx

开发者可以通过设计稿基准宽度计算页面元素 rpx 值,设计稿 1px 与框架样式 1rpx 转换公式如下:

设计稿 1px / 设计稿基准宽度 = 框架样式 1rpx / 750rpx

换言之,页面元素宽度在 uni-app 中的宽度计算公式:

750 * 元素在设计稿中的宽度 / 设计稿基准宽度

举例说明:

若设计稿宽度为 750px,元素 A 在设计稿上的宽度为 100px,那么元素 Auni-app 里面的宽度应该设为:750 * 100 / 750,结果为:100rpx

若设计稿宽度为 640px,元素 A 在设计稿上的宽度为 100px,那么元素 Auni-app 里面的宽度应该设为:750 * 100 / 640,结果为:117rpx

若设计稿宽度为 375px,元素 B 在设计稿上的宽度为 200px,那么元素 Buni-app 里面的宽度应该设为:750 * 200 / 375,结果为:400rpx

4.2、UnoCSS 编写方式

经过上一节的 unocss.config.ts 配置,可以得到下面的组合:

mp 里面:mt-4 => margin-top: 32rpx == 16px

h5 里面:mt-4 => margin-top: 1rem == 16px

我们还是把设计稿设置为 750,设计稿上多少 px 的元素,写成多少 rpx 即可。

元素 A 在设计稿上的宽度为 100px,则写 w-100rpx 即可。

就是把 传统编写方式 中写在 css 中的样式搬到了 UnoCSS 中。

如果要想用 w-100 这种方式,需要做额外的处理():

5、使用指南

写法可以参考 tailwindcss

太忙了,有空再写吧。

总结

本文主要介绍了 UnoCSS 的使用,以及 unocss.config.ts 中的一些配置项。

同时说明了设计稿在两种编写方式下的宽度的设置,分别为 7501500.

最后说明一下,原子化CSS传统方式 两者不是互斥的,他们是互补的,合适的地方使用合适的方式。

相关推荐
vipbic5 分钟前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy10 分钟前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志37 分钟前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble2 小时前
c端系统,其实更像一个信息展示平台
前端
李姆斯3 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜3 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司3 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
江华森4 小时前
Web 开发基础:HTTP 与 REST
前端·网络协议·http
IT_陈寒5 小时前
Redis的KEYS命令把我搞崩溃了,改用SCAN才活过来
前端·人工智能·后端
Jackson__5 小时前
为什么 Agent 越聊越慢?聊聊 Context(上下文)管理
前端·agent·ai编程