# 附录A:Spacing 与尺寸字典 v3.0 > 角色:默认尺寸 token 候选表 > 用途:把 Tailwind 的 spacing / size 类,转换成适合微信小程序的 `rpx` / `px` 实现 > 重要声明:本表是**默认候选表**,不是所有尺寸都必须机械套表 --- ## A.1 使用边界 ### A.1.1 适用范围 以下场景可优先使用本表: - 容器内外边距:`p-*`、`px-*`、`py-*`、`m-*` - 列表、卡片、模块之间的块级间距 - 主容器宽高、卡片尺寸、按钮高度 - Flex/Grid 间隙:`gap-*` - 一般性的 `top/right/bottom/left` - 来自 spacing scale 的固定 `w-*` / `h-*` ### A.1.2 不适用范围 以下场景不要机械套表: - `1px` 发丝线 - 阴影 blur / spread - 小图标绘制尺寸 - 小控件(星星、状态点、勾选框)尺寸 - 绝对定位的 1~4px 微调 - 安全区 / 状态栏补偿 - 任何“在 412 宽真机上需要与 H5 绝对贴齐”的细节点 --- ## A.2 换算基础 项目验收基准宽度:**412 CSS px** 换算公式: ```text rpx = px × (750 / 412) ≈ px × 1.8204 ``` 默认取值策略: - 默认四舍五入到整数 `rpx` - 同一 token 全项目保持一致 - 真机视觉偏差明显时,允许修正 1~2rpx --- ## A.3 默认 spacing → rpx 映射表(26 个值) | Tailwind 值 | rem / px | CSS px | 项目默认 rpx token | 推荐用途 | 备注 | |---|---:|---:|---:|---|---| | `0.5` | `0.125rem` | 2 | 4rpx | 极小间距 | 仅限布局缝隙,不建议用于描边 | | `px` | `1px` | 1 | 2rpx | 极细尺寸 | 如需发丝线,优先直接保留 `1px` | | `1` | `0.25rem` | 4 | 8rpx | 极小 padding / gap | 常用 | | `1.5` | `0.375rem` | 6 | 12rpx | 小间距 | 常用 | | `2` | `0.5rem` | 8 | 14rpx | 小 padding / gap | 常用 | | `2.5` | `0.625rem` | 10 | 18rpx | 小间距 | 常用 | | `3` | `0.75rem` | 12 | 22rpx | 小按钮内边距 / 块间距 | 常用 | | `3.5` | `0.875rem` | 14 | 26rpx | 中小尺寸 | 常用 | | `4` | `1rem` | 16 | 30rpx | 主流 padding / gap | 高频 | | `5` | `1.25rem` | 20 | 36rpx | 中等间距 | 高频 | | `6` | `1.5rem` | 24 | 44rpx | 主模块间距 | 高频 | | `7` | `1.75rem` | 28 | 52rpx | 中等尺寸 | 次高频 | | `8` | `2rem` | 32 | 58rpx | 大 padding / 高度 | 高频 | | `9` | `2.25rem` | 36 | 66rpx | 中大尺寸 | 常用 | | `10` | `2.5rem` | 40 | 72rpx | 输入框 / 按钮高度候选 | 高频 | | `11` | `2.75rem` | 44 | 80rpx | 点击区域 / 高度 | 高频 | | `12` | `3rem` | 48 | 88rpx | 大按钮 / 模块高度 | 高频 | | `14` | `3.5rem` | 56 | 102rpx | 中大控件尺寸 | 常用 | | `16` | `4rem` | 64 | 116rpx | 卡片图标容器 / 大尺寸 | 常用 | | `20` | `5rem` | 80 | 146rpx | 大控件 / 空态图 | 常用 | | `24` | `6rem` | 96 | 174rpx | 大尺寸块 | 常用 | | `28` | `7rem` | 112 | 204rpx | 大图容器 | 次高频 | | `32` | `8rem` | 128 | 232rpx | 模块大尺寸 | 次高频 | | `40` | `10rem` | 160 | 292rpx | 大留白 / 偏移 | 仅布局层 | | `64` | `16rem` | 256 | 466rpx | 大容器高度 | 慎用 | | `72` | `18rem` | 288 | 524rpx | 宽容器 / 大图 | 慎用 | --- ## A.4 Arbitrary spacing / size 处理规则 ### A.4.1 基本规则 当 H5 使用 arbitrary 值,例如: - `h-[38px]` - `top-[44px]` - `w-[86px]` - `px-[13px]` 执行顺序如下: 1. 先保留原始 `px` 数值 2. 判断它属于“可缩放布局尺寸”还是“需保留绝对质感的细节尺寸” 3. 前者按公式转 `rpx`,后者保留 `px` 4. 真机对照后再微调 ### A.4.2 已知项目中出现的 arbitrary 值(来自旧桥文档) | Tailwind class | 原始值 | 默认转换建议 | 类型判断 | 备注 | |---|---:|---|---|---| | `h-[38px]` / `w-[38px]` | 38px | `70rpx` | 可缩放布局尺寸 | 常用于按钮 / 图标外框 | | `top-[44px]` | 44px | `80rpx` | 条件项 | 若与导航/状态栏相关,优先保留 `px` 或走系统信息 | | `min-h-[2.5rem]` | 40px | `72rpx` | 可缩放布局尺寸 | 可直接转 | | `max-h-[70vh]` | 70vh | 保留 `70vh` | 条件项 | 仅在主规范允许使用 `vh` 的页面采用 | ### A.4.3 遇到新 arbitrary 值时的处理模板 ```text 若值用于横向/纵向布局比例 —— 优先转 rpx 若值用于细节质感、边框、阴影、微位移 —— 优先保留 px 若值与安全区/导航/系统尺寸有关 —— 不走公式,走系统信息 ``` --- ## A.5 负值、分数、百分比 ### A.5.1 负值 若出现: - `-mt-2` - `-top-1/2` - `-translate-x-1/2` 规则: - spacing 负值:使用相同绝对值 token,加负号 - 百分比 / transform:保持原表达式,不强行转成 `rpx` 示例: ```css margin-top: -14rpx; transform: translateX(-50%); ``` ### A.5.2 百分比 / 分数 以下值保持百分比表达: - `w-1/2` → `width: 50%` - `w-full` → `width: 100%` - `left-1/2` → `left: 50%` 不要把这类值换算成固定 `rpx`。 --- ## A.6 AI 执行准则 1. 遇到 spacing scale 中已有的值,优先查本表。 2. 遇到 arbitrary 值,先判断“布局型”还是“质感型”。 3. 遇到疑似导航、安全区、浮层微调值,不要硬转 `rpx`。 4. 任何转换后若导致 412 宽真机对不上 H5,应以视觉验收为准做修正。 --- ## A.7 附录结论 本表的角色是: - **统一 token** - **减少页面间尺寸漂移** - **提高 AI 批量迁移的一致性** 本表不是: - 取代视觉验收 - 否定混合单位策略 - 允许把所有 `px` 一刀切换成 `rpx`