跨端: feat(对齐): 参照物版本登记(CalendarView.tsx @d78f19f,变了即红)+ 圆角按语义配对(数值来源不同另行登记)

pi 2026-09-14 骨架开工前两件。

1. **对齐参照物要有版本号**:WebUI `CalendarView.tsx` 可能同时在动(gui-lab 有未合入改动),
   照工作副本画完之后参照物一变,这版就成了"照一份没人认领的草案对齐的",而**没人能判它对不对**。
   新增 `docs/ALIGN-REFS.json`(blob 哈希 + 登记于哪个 commit + "以哪次为准")
   + 判据 `test/align-refs.test.mjs`:哈希变了即红,报错按 §14 写明
   「正确修法 = 读差异→判断骨架要不要改→再更新登记」与
   「最常见的错误修法 = 把新哈希抄进去(那是把闸门降级成状态记录)」。变异确认会红。
   当前登记:`d78f19f`「日历页面补上圆角」,工作副本干净 —— 若另有未合入的,合入后再对一次。

2. **圆角必须走令牌,且跨端按语义配对**:鸿蒙侧已有 `Theme.ets:105/107` 的
   `radiusCard`/`radiusControl`(**系统**资源),WebUI 是 `--radius-card: 0.875rem` /
   `--radius-control: 0.5rem`。⇒ 端**语义对齐、数值来源不同**,所以登记写成"按语义配对",
   并且判据要求每条都写明"按语义还是按数值"(否则下一个人会直接去比数字)。
   数值差异本身按形态差异进余额:`radius-card-numeric-divergence`(等设备并排看再决定以谁为准)。
   鸿蒙侧不许把 14 / 0.875 抄成裸数字 —— 与当初 14 处 Material 调色板清零同一形态,量纲换成长度。
This commit is contained in:
2026-09-14 17:46:20 +08:00
parent 6fc8099b33
commit 8390890646
5 changed files with 148 additions and 2 deletions

33
docs/ALIGN-REFS.json Normal file
View File

@ -0,0 +1,33 @@
{
"_": [
"对齐参照物的**版本登记**(pi 2026-09-14:对齐本身要有版本号)。",
"为什么需要:WebUI 那边同一个文件可能同时在动(gui-lab 有未合入的改动),",
"照工作副本画完之后,参照物一变,这一版就成了「照一份没人认领的草案对齐的」,",
"而且**没人能判它对不对 —— 因为参照物没有版本号**。",
"所以:把参照物的 blob 哈希登记在这里,**它一变就红**,逼一次「重新核对再更新登记」。"
],
"refs": [
{
"id": "calendar-view",
"path": "client/electron/src/components/CalendarView.tsx",
"blob": "03388112c4b5e114472f516380bc0b2238e6a9d9",
"atCommit": "d78f19f",
"atCommitSubject": "fix(webui): 日历页面补上圆角(圆角要给到「有底色的那一层」)",
"note": "P6 日历骨架的对齐目标。当前工作副本干净、最后一次改动就是上面那笔日历圆角修复(很可能就是 gui-lab 那笔)。**若另有未合入的改动**,以合入后再对一次为准 —— 那时本条必须重新登记(哈希变了就会红)。"
}
],
"radius": [
{
"semantic": "卡片圆角",
"webui": "--radius-card: 0.875rem(=14px,client/electron/src/index.css:278)",
"harmony": "Theme.ets:105 radiusCard = $r('sys.float.ohos_id_corner_radius_card')",
"judgement": "**按语义对齐,不按数值对齐**:两端都表示「卡片圆角」,但取值来源不同(WebUI 自定 rem,鸿蒙用**系统**资源)。数值是否一致属于形态差异,等设备上并排看再定 —— 见 docs/DEBTS.json 的 radius-card-numeric-divergence。**鸿蒙侧不许把 0.875rem/14 抄成裸数字**(那正是当初 14 处 Material 调色板被清零的同一形态,量纲从颜色换成长度)。"
},
{
"semantic": "控件圆角",
"webui": "--radius-control: 0.5rem(=8px,client/electron/src/index.css:279)",
"harmony": "Theme.ets:107 radiusControl = $r('sys.float.ohos_id_corner_radius_button')",
"judgement": "同「卡片圆角」:语义对齐、数值来源不同。"
}
]
}