Skip to content

Commit e5e2a6f

Browse files
committed
docs: update
1 parent 7249168 commit e5e2a6f

4 files changed

Lines changed: 53 additions & 21 deletions

File tree

website/docs/issues/rpx-ambiguities.md

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,35 @@
1212

1313
```css
1414
.text-\[32rpx\] {
15-
color: 32rpx
15+
color: 32rpx;
1616
}
1717
```
1818

1919
为什么 `rpx` 这个好端端的长度单位,会变成颜色呢?
2020

2121
原因在于 `rpx` 不是一个标准的 `W3C` 规定的 `CSS` 长度单位,这是微信小程序自己定的 `WXSS` 单位。
2222

23-
`tailwindcss` 在针对具有**二义性**的任意值写法,例如以下单位:
23+
## 什么是 **二义性**?
24+
25+
`tailwindcss` 中有些原子类具有 **二义性**,比如:
2426

2527
- `text-[]`
2628
- `border-[]`
2729
- `bg-[]`
2830
- `outline-[]`
2931
- `ring-[]`
3032

31-
这些会去校验**括号**内的任意值,是否为有效的 `CSS` 长度单位写法!
33+
其中 `text-[]` 中的 `text-[16.16px]` 生成的 css 是 `font-size: 16.16px;`, 而 `text-[#123456]` 生成的 css 是 `color: #123456;`;
34+
35+
这就是原子类的 **二义性**
36+
37+
---
3238

33-
如果为 `true`,则生成出长度 `css` 节点,反之则生成出颜色 `css` 节点:
39+
`tailwindcss` 在针对具有**二义性**的任意值写法:
40+
41+
这些会去**校验括号**内的任意值,是否为有效的 `CSS` 长度单位!
42+
43+
如果为 `true`,则生成出长度单位的 `css` 节点,反之则生成出颜色单位的 `css` 节点:
3444

3545
```css
3646
/* text-[16px] */
@@ -44,25 +54,35 @@
4454
}
4555
```
4656

47-
那么问题来了,`rpx` 在单位校验的时候,由于不认识这个单位,导致单位无效所有被分到了颜色组,所以造成了这个问题!那么如何解决呢?
57+
那么问题来了,`rpx` 在单位校验的时候,由于不认识这个单位,导致单位无效所有被分到了颜色组。
58+
59+
```css
60+
/* text-[32rpx] */
61+
.text-\[32rpx\] {
62+
--tw-text-opacity: 1;
63+
color: 32rpx;
64+
}
65+
```
66+
67+
所以造成了这个问题!那么如何解决呢?
4868

49-
## 目前插件的 hack 方案
69+
## 目前插件的解决方案
5070

5171
目前,我做了一个解决方案,我在 `weapp-tailwindcss` 植入了一个逻辑,使得插件可以通过分析 `tailwindcss` 运行时代码,来打上支持 `rpx` 单位的补丁,使得 `tailwindcss` 支持这样的写法,生成出长度单位的 `css`
5272

5373
这也是为什么要让大家去执行 `weapp-tw patch` 的原因。
5474

55-
这个解决方案直到最新的 `3.3.3` 版本,都是有效的。
75+
这个解决方案,最新的 `3.x``4.x` 版本,都是有效的。
5676

57-
然而,以后 `tailwindcss` 将会使用由 `rust` 编写的新引擎。
77+
<!-- 然而,以后 `tailwindcss` 将会使用由 `rust` 编写的新引擎。
5878
5979
这时候这种 `hack` 方式将会失效,毕竟那种情况下都是二进制文件了!
6080
61-
那么为了预防这种可能出现的危机,我们应该怎么做呢?
81+
那么为了预防这种可能出现的危机,我们应该怎么做呢? -->
6282

63-
## 解决方案
83+
## 强制CSS单位的解决方案
6484

65-
我们可以在使用这些带有**二义性**的单位的时候,通过 `length``color` 这种的前缀来指定它应该是什么,例如:
85+
我们可以在使用这些带有**二义性**的单位的时候,可以通过 `length``color` 这种的前缀来指定它应该是什么,例如:
6686

6787
```html
6888
<div class="text-[22rpx]">...</div>

website/docs/quick-start/frameworks/uni-app-x.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# uni-app-x
1+
# 🔥 uni-app x
22

3-
目前 `weapp-tailwindcss``4.2.0` 版本开始,插件已经支持 `uni-app-x` 同时构建包括 `web`, `小程序`, `原生` 三端项目
3+
目前 `weapp-tailwindcss``4.2.0` 版本开始,插件已经支持 `uni-app-x` 同时构建包括 `web`,`小程序`, `安卓`,`IOS`,`鸿蒙` 五端项目
44

55
## 创建工具类
66

@@ -74,7 +74,8 @@ module.exports = {
7474

7575
```
7676

77-
## 现成模板
77+
## 现成模板可以直接使用或者参考
7878

7979
https://github.com/icebreaker-template/uni-app-x-hbuilderx
8080

81+
使用方式详见项目中的 `README.md`

website/docs/quick-start/this-plugin.mdx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 2. 安装这个插件
1+
# 2. 安装 weapp-tailwindcss
22

33
在项目目录下,执行:
44

@@ -22,8 +22,19 @@ npm i -D weapp-tailwindcss
2222
:::info
2323
执行 `weapp-tw patch` 主要是做2件事情
2424

25-
1. 给当前你本地的 `tailwindcss` 打上支持 `rpx` 的补丁 (小程序特有单位,非 `web` 标准)
26-
2. 用来暴露 `tailwindcss` 运行上下文给 `webpack`/`vite`/`glup` 插件。
25+
### 1. 给当前你本地的 `tailwindcss` 打上支持 `rpx` 的补丁 (小程序特有单位,非 `web` 标准)。
26+
27+
否则你一旦使用像 `text-[14.43rpx]` 这样的任意值写法,生成出来的 `css` 样式就是 `color: 14.43rpx;`,显然是错误的。
28+
29+
它会被 `tailwindcss` 认为是一种颜色,从而导致生成错误,样式不生效。
30+
31+
详见 [rpx 任意值颜色或长度单位二义性与解决方案](/docs/issues/rpx-ambiguities)
32+
33+
### 2. 暴露 `tailwindcss` 运行上下文给 `webpack`/`vite`/`glup` 插件。
34+
35+
这样就能够在 `js` 中,和 `postcss` 插件进行通信,从而达到共享上下文的效果。
36+
37+
---
2738

2839
而添加上面一段 `npm scripts` 的用途是,利用 `npm hook`, 每次安装包后,都会自动执行一遍 `weapp-tw patch` 这个脚本。
2940

website/docs/uni-app-x/index.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ import TailwindcssLogo from '../../../assets/logo.png'
3030

3131
在使用 `Hbuilderx` 创建一个 `uni-app x` 项目后,可以遵循:
3232

33-
1. [安装与配置 tailwindcss3](/docs/quick-start/install)
34-
2. [安装这个插件](/docs/quick-start/this-plugin)
35-
3. [uni-app-x 注册这个插件](/docs/quick-start/frameworks/uni-app-x)
36-
4. [rem 转 rpx (或 px)](/docs/quick-start/rem2rpx)
33+
### 1. [安装与配置 tailwindcss3](/docs/quick-start/install)
34+
### 2. [安装 weapp-tailwindcss](/docs/quick-start/this-plugin)
35+
### 3. [uni-app-x 注册 weapp-tailwindcss](/docs/quick-start/frameworks/uni-app-x)
36+
### 4. [rem 转 rpx (或 px)](/docs/quick-start/rem2rpx)
3737

3838
这套的流程,集成 `tailwindcss` 原子化样式解决方案。
3939

0 commit comments

Comments
 (0)