Skip to content

v0.6.5 — 网页端死代码清理 + 回归设计语言 + 触摸端 hover 守卫

Choose a tag to compare

@High-cla High-cla released this 23 Sep 18:58
· 26 commits to master since this release

改动

本次仅动网页端(docs/items_browser.html、docs/items_data_full.js),无 C# 源码变更。但网页三个文件是内嵌资源(<EmbeddedResource> + LogicalName 前缀 web.),由 TryRouteWeb 从 GetManifestResourceStream 提供、本地 http://localhost:26880/ 自服务,故 ProgressMod.dll 字节已变。InventorySorter.dll 与 NetworkUnlockMod.dll 与 v0.6.4 逐字节相同(sha256 一致)。

1. 死代码清理(4 条,均有 grep / ast-grep 证据)

规则 判据
.card:focus-visible card 渲染为 <article role="group">;全文件 tabindex 出现 0 次、<button class="card" 0 次 ⇒ 永不匹配
.btn:disabled 全文件 disabled 仅此 1 处(它自己的定义),JS 从不置 disabled
.btn.ok / .btn.bad 无任何赋值

注意 .toast.ok / .toast.bad(L304/L305)是活代码,未误删;nav-item.active、dot.on、dot.off、fav.on 经 grep 证明均在 classList.toggle / className 赋值中使用。

2. 回归设计语言(docs/nvdesign.md)

  • 删自造色:.btn:hover{background:#8ad100} —— #8ad100 不在 nvdesign 任何 token 中,且比 :active 的 primary-dark 更亮 ⇒ 按压反馈方向反了。改回 var(--primary-dark)(#5a8d00)。
  • 消除强调色稀释:原先每张卡片 3 个绿元素(生成 / 生成十个 / 详情),其中两个同权重 2px outline 抢焦点。按文档 L169 的 button-ghost-link 把「详情」降级为新 .btn.link(绿字、无边框)⇒ 绿边框由 1.94 → 0.98 / 卡,回到文档 L276 的 primary + outline 一对。

3. 缺陷修复

  • .card{cursor:pointer} 是假承诺:卡片无 click handler,实测点击卡片标题抽屉不打开、无任何响应(先前删掉整卡点击后的残留),鼠标指针在骗用户 ⇒ 删除。删除后按钮仍靠全局 button{cursor:pointer} 保留手型。
  • --ash 对比度不达标:#6e6e6e 实测 4.12(纯黑)/ 3.81(surface)全底色低于 AA 正文 4.5。抬到 #8a8a8a(5.63)。影响 placeholder 与 kbd 两处;此前 L187 已因同一原因修过 .card-desc:empty。
  • 字面标签泄漏:items_data_full.js 中 alarm_module_transmitter 的描述含 <b>治安部</b>,经 esc() 渲染后用户看到裸标签。移除标签并同步 bump ?v=20260921 → 20260923(不 bump 则旧缓存用户看不到修复)。

4. 触摸端 hover 粘滞(@media (hover:hover))

L356 注释自称「桌面工具, 只服务鼠标」,但 14 条 :hover 规则全部裸放,全文件无 hover:hover / pointer:fine / any-hover 守卫 —— 名实不符。触摸设备无真悬停,移动端浏览器 tap 后会「粘住」:hover(按钮/卡片停在悬停态),并与 :focus-visible 同时命中成双重高亮。整段包进 @media (hover:hover){}。

选 (hover:hover) 而非 (any-hover:hover):后者在触屏笔记本上仍为 true,挡不住触摸粘滞。

验证

项 前 后
卡片高度 232px × 1 种 232px × 1 种(未动刻度)
字面 <b> 卡片 1 0
每卡绿边框 1.94 0.98
.card cursor pointer auto
--ash #6e6e6e #8a8a8a
img/svg/canvas/gradient 0 0(设计约束守住)
  • hover 守卫双向实测:桌面 (hover:hover)=true、14 条规则仍在媒体块内生效;390×844 hasTouch 下 (hover:hover)=false / (pointer:coarse)=true,块被正确跳过,卡片边框保持 rgb(94,94,94)。CSSOM 顶层 145 条规则、大括号配平,prefers-reduced-motion 与末端规则完好。
  • 三个 csproj dotnet build -c Release 均 0 警告 0 错误。
  • DLL 二进制标记确认内嵌资源已更新:8ad100=0、btn:disabled=0、ash:#8a8a8a / btn.link / button-ghost-link / hover:hover 均在。

未做:游戏侧运行时测试不在本次范围;游戏内生成行为未改动。