chore(backlog): 记录 g285 完成

This commit is contained in:
HIsheR
2026-10-26 23:14:31 +08:00
parent d1b213fb01
commit c4cf0afc7b
2 changed files with 19 additions and 0 deletions
+18
View File
@@ -2942,6 +2942,24 @@
"status": "done",
"domain": "visual",
"notes": "关键取舍是「收窄过渡属性」而不是「关掉全部过渡」:颜色 / 阴影 / 透明度变化不产生空间位移,砍掉它们会把状态反馈一起砍没(用户看不到 hover 变色的反馈,反而更困惑)。审计的兜底形态也随之改成「存在一条通配 transition-property 规则即视为全站覆盖」,避免要求 35 处各自补一条——通配一条的好处是新增组件不必记得补。踩坑:给 formatMotionReport 加第三段时只改了函数体没改解构签名,运行时报 spatial is not defined——函数签名和返回值是一对,加字段两处都要动。"
},
{
"id": "g284",
"title": "新增环形进度组件 progressRing",
"motivation": "反馈类里只有线形 progress 与 spinner:仪表盘、完成度徽章这类场景通常要「一个圆环 + 中心百分比」,现有组件只能拿 SVG 手搓,结果是每个页面各搓一份、弧长算法与旋转原点还各不相同(默认从 3 点起步是最常见的错)。环形进度属于高频小件,应该有统一定义。",
"acceptance": "新增 progressRing(props):SVG 双圆(底环 + 进度弧)靠 stroke-dasharray 画弧,0 点固定在 12 点方向顺时针;value 支持数字与信号(信号变化自动重绘),越界自动夹到 0-100;showText=false 可只留环;role=progressbar + aria-valuenow 随值同步;样式只消费 --ua-* 令牌(弧色走 currentColor、底环走描边色),audit:visual 不新增字面量、audit:motion 的旋转过渡有减少动效兜底;manifest 双处 + demo sec-ring + README 清单与分组同步,npm run check 全绿",
"status": "done",
"domain": "new",
"notes": "弧长靠 dasharray(画 c*pct/100,剩下留空)而不是 path 弧线命令:一条属性就能表达任意进度,省掉大弧标志位与起止角的三角计算。旋转原点必须给 rotate(-90 cx cy),否则默认从 3 点方向起步——这是手搓环最常翻的车。第一版把两个 circle 塞进了中间层 div 再用 querySelector 搬进 svg,DOM 上等于挂了两次;改成先 svg.append(track, arc) 再组容器。另外 transition 一开始写成 0.3s 字面量,被 audit:visual 的 duration-literal 抓住,改用 --ua-duration-slower。"
},
{
"id": "g285",
"title": "分页总量走信号:越界页码自动钳回父级",
"motivation": "pagination 的 total 是静态数字,于是「筛选后总量从 137 掉到 25」这类场景只能靠调用方自己算新页数:不改 props.page 就停在空页(第 14 页里一条数据都没有),改了又要自己复制一份 Math.ceil 公式。渲染层的 renderList 虽然把显示页码夹住了,但信号里仍是旧值,父级 state 与界面不一致——这正是「派生量有两个来源」的典型。",
"acceptance": "PaginationProps.total 支持 number | Signal<number>;组件内新增钳制 effect:页码越界(>最大页或 <1)时把夹取后的值写回 page 信号并回调 onChange,合法时不动手(不产生无意义回调);总量恢复后不记忆已失效的旧页码;manifest 的 total 类型与说明同步;demo sec-pagination 增加「总量 137 条 / 筛到 25 条」实例,能看到页码从 14 自动落到 3;npm run check 全绿",
"status": "done",
"domain": "tune",
"notes": ""
}
]
}
+1
View File
@@ -329,3 +329,4 @@
{"ts":"2026-10-26T23:08:29+08:00","id":"g282","result":"done","commit":"c98f98e","summary":"codeBlock 增加 wrap:折行时保留缩进、行号仍贴首行,缺省行为不变"}
{"ts":"2026-10-26T23:09:41+08:00","id":"g283","result":"done","commit":"0c57015","summary":"减少动效补第三类:旋转/缩放过渡用通配 transition-property 收窄(35 处),audit:motion 增第三段"}
{"ts":"2026-10-26T23:12:35+08:00","id":"g284","result":"done","commit":"c4384be","summary":"新增 progressRing 环形进度(SVG 双圆 dasharray 画弧 + 中心百分比 + aria-valuenow),组件数 85→86"}
{"ts":"2026-10-26T23:14:31+08:00","id":"g285","result":"done","commit":"d1b213f","summary":"pagination.total 支持信号,新增钳制 effect:越界页码写回 page 并回调 onChange,demo 加总量筛选实例"}