mirror of
https://github.com/Silent1566/webhtv.git
synced 2026-10-18 07:09:16 +00:00
fix(ui): 输入框圆角按 §7.1 修正为 8dp;另两项待决策把规范写精确
落实审计提出的三项待决策。原则:**规范自由的地方采用规范;规范没考虑到已记录技术约束的 地方,把规范写精确**——而不是让规范去描述现状。 ① 内容卡圆角 8dp vs 规范 12dp —— 保留 8dp,把理由写进规范。 核对 §7.1 与既有契约后发现,网格内容卡的 8dp 不是「随手的现状」,而是与焦点环几何 耦合的取舍:环画在卡片外边界上,外边界半径 = 卡片声明半径 + 环宽/2,声明 8dp 时外边界 为 8dp + w/2,沿角落对角线卡片弧反而更靠外,露出 1-2px 月牙。改半径必须同步重算环几何 并重验月牙,且 TvFocusRingContractTest 已把 8dp 固化为契约。 因此 §7.1 新增补充段:网格内容卡 = shapeSmall 8dp(明确豁免上表 12dp),大卡片/分组 容器 = shapeMedium 12dp,并给出四步修改流程,防止下一个人「顺手」改成 12dp 而撞上月牙。 而**输入框的 4dp 没有这个耦合**——它属 §7.1 里「标签、微小 chip」的 shapeExtraSmall 档, 是纯粹偏离,因此按规范改为 shapeSmall 8dp(selector_dialog_input.xml 两处同步, 否则聚焦时圆角会跳一下)。 ② 播放器错误层要不要错误色 —— 不加,写成明文例外。 §9.9 的「错误色」在应用表面上成立且已落地(webhtvColorOnWallpaperError + 实心深底 shape_error_value,实测 8.84:1)。但播放器错误层画在 shape_widget(50% 黑)之上, 下面叠的是**任意视频画面**——底材不可控,任何带色相的前景色都给不出对比度保证; 要满足「错误色」就得给它不透明实心底,那会改变播放页观感。 因此 §9.9 新增例外段,并说明 OSD 白字与 PlayerOsdController 的 0xFFFFFFFF 同属此类、 不计为偏离——否则下一个人会去「补」错误色并降低对比度。 ③ 手机分类/筛选面板用播放控制玻璃 —— 保留,把规范规则收窄到真实判据。 §7.2 原文把玻璃限定在「播放器、图片叠加或明确的沉浸场景」,审计曾把 dialog_type/ dialog_filter 记为越界。复核后判定不应按越界处理,因为原判据过窄:玻璃真正的风险不是 「出现在哪个页面」,而是**透明度成为可读性的唯一保障**——§5.3 已明文如此要求; 而分类/筛选面板是内容之上的浮层,其下是应用自身可控的表面,并且确实带了 scrim。 因此 §7.2 把判据改为:一个面板可以用玻璃,当且仅当 ①其底材是应用可控的表面, 或 ②它在其上叠加了足够不透明的 scrim。 新增 testMobile 的 DialogInputCornerContractTest 5 项:输入框两处都是 8dp 且不再有 4dp; 底材保持语义、无写死色;§7.1/§7.2/§9.9 的三段理由**必须留在规范里**(防止被后续 「顺手清理」删掉)。 验证:testMobile 定向测试 BUILD SUCCESSFUL(新增 5 项全绿);因 selector_dialog_input.xml 在 main 源集两端共享,额外跑了电视端 theme + Tv* 回归 BUILD SUCCESSFUL;真机 192.168.50.3:5561(mobile flavor,竖屏)在「广告拦截统计 → 拦截…」Tab 确认输入框圆角为 8dp (改动前 4dp),无崩溃。设备已恢复电视端 flavor。 未验证:聚焦态的实际渲染(截到的是常态,由同一文件同一数值保证);§7.2 新判据未逐面板复核。 详见 docs/UI-SPEC-DECISIONS-20261013.md §4.4。 环境限制:本会话无可用 bash,check_ui_tokens.sh 与 task_guard.sh 无法执行, 按同等意图手工暂存/提交/打 tag。
This commit is contained in:
parent
d863e7bd3f
commit
6f39d5a618
4 changed files with 242 additions and 2 deletions
Loading…
Add table
Add a link
Reference in a new issue