docs(harmony): 记入"必须用系统方案"的要求与 WebUI→鸿蒙的做法对应表

用户:「鸿蒙也同步,但是鸿蒙要求用系统方案」。

已转给 dsh(线索 harmony-ui-alignment),并写进计划文档:

- **含义**:能交给系统的就交给系统 —— 用 ArkUI 的组件/材质/语义资源,
  而不是把 WebUI 那套"手写 rgba + 自定义模糊 + 自制卡片"照搬。
  系统材质会跟随深色模式、动效曲线与无障碍设置,手写的不会。
- **对应表**:`backgroundBlurStyle(BlurStyle.*)` 取代手写模糊;系统 `Tabs`/`TabBar`
  取代自制导航条;`List`/`ListItem` 取代 `Scroll`+`Column`;组件自身的
  `borderRadius`/`shadow` 取代 `.glass-card`;`$r('sys.color.*')` 语义色取代自切变量
  (**顺带解决 WebUI 那个"半深不浅"的病根**);`animateTo`/`transition` 取代自定义动画。
- **对既有判据的影响(重要)**:`cross-client-theme.test.mjs` 钉的是三个**取值**。
  改用系统资源后它应当变红 —— 那是预期的,届时要把它从"取值相同"改成"意图相同"
  (品牌蓝仍须一致,材质与圆角允许各自跟随系统)。**必须两侧一起改**,
  避免一边改了一半。

同时提醒 dsh 两条已同步的语义:列表项与顶部都是"每项一张卡/气泡"(不是通栏);
玻璃只出现在一层。
This commit is contained in:
2026-09-14 13:45:34 +08:00
parent 0c4100802f
commit dfaeab0e4d

View File

@ -36,6 +36,28 @@
与 WebUI 不同的写死色值全部换成令牌203 处)。
- **修掉只剩第一个 tab 高亮的 bug**`currentIndex === 0` 写死)。
## 二·五、做法上的一条硬要求:**用系统方案**
用户2026-09-14「鸿蒙也同步但是**鸿蒙要求用系统方案**」。
含义:能交给系统的就交给系统 —— 用 ArkUI 的组件、材质与语义资源,
而不是把 WebUI 那套"手写 rgba + 自定义模糊 + 自制卡片"照搬过来。
系统材质会跟随深色模式、动效曲线与无障碍设置,手写的那套不会。
| WebUI 做法 | 鸿蒙应该用 |
|---|---|
| 手写 `rgba(...)` + `backdrop-filter` | `backgroundBlurStyle(BlurStyle.*)`(系统材质) |
| 自制圆角导航条 | 系统 `Tabs` + `TabBar``barBackgroundBlurStyle` |
| 自制 `Scroll` + `Column` | 系统 `List` / `ListItem``divider` / `swipeAction` |
| `.glass-card` 手写边框阴影 | `.borderRadius()` + `.backgroundBlurStyle()` + `.shadow()` |
| 自己切 CSS 变量做深色 | 系统语义色 `$r('sys.color.*')` 自动跟随 |
| 自定义 transition | `animateTo` / `transition` / `geometryTransition` |
**影响既有判据**`cross-client-theme.test.mjs` 目前钉的是三个**取值**
(品牌蓝 / 圆角 14 / 导航玻璃 0.72)。改用系统资源后它应当变红 ——
那是预期的,届时要把它从"取值相同"改成"**意图相同**"(品牌蓝仍须一致;
材质与圆角允许各自跟随系统)。改判据需 WebUI 侧pi一起改。
## 三、分期(按"能独立验收"切)
**P1 设计语言pi 已完成)** —— 令牌 + 颜色替换 + 编译通过。以下 P2P6 归 dsh。