dsh-apple-hig:用 Apple HIG 叠加校正 DeepSeek Harness 桌面界面

前言

DeepSeek Harness(DSH)把能力拆成插件,界面本身也可以靠插件微调,而不必改宿主源码。日常写 Harness、长时间盯对话页时,常见痛点是:键盘焦点环在基座 CSS 里实际不可见、浅色主题下部分说明文字对比度低于 WCAG 建议、输入卡与正文宽度对不齐、侧栏行高和命中区不一致。换一套全局「玻璃」主题插件又容易和别的换装抢同一层。

下面介绍维护者 Yu-jianhai 发布的 dsh-apple-hig(当前版本 0.6.1,MIT 许可)。它按 Apple Human Interface Guidelines(HIG)做 token + CSS 叠加:不改功能布局,每一档可单独关闭,卸载后界面恢复 DSH 原样。社区目录 SkillHub 将其归类为「趣味换装」;仓库地址为 https://github.com/Yu-jianhai/dsh-apple-hig。

这是什么

dsh-apple-hig 是仅作用于 DSH 客户端 的叠加层插件(inject: ['slots','theme']),覆盖范围对应方案里的 L0(token)、L1(排版)、L2(材质与形状)、L3(布局)。它不替换宿主逻辑,只在运行时通过 theme.overrideTokens、设置页插槽和门控 CSS 改写视觉 token 与样式。

插件要求 DSH 引擎 >=0.2.0-rc.1 <0.3.0-0,Node >=20。偏好保存在 localStorage['dsh-apple-hig:v1'],字段校验失败会回落默认,避免坏 JSON 导致插件无法启动。

核心功能

无障碍与文字(L0 / L1)

开启「焦点环」后,将 --dsw-focus-ring-color 从透明改为主色别名,并把 --dsw-focus-ring-width 从 2px 调到 3px,解决基座里焦点环 token 已定义为 transparent、fallback 永不生效的问题。

「文字对比度」在浅色主题下把三级、说明文字色加深,使对比度从约 3.71:1 / 2.13:1 提升到约 5.13:1 / 4.84:1;深色档对已达标颜色写回原值。仓库提供 node tools/contrast.mjs 做验收。

「品牌字体归一」让品牌位回落正文字体栈,避免 Montserrat light 等与 HIG「少用 light 字重」冲突。「字体预设」可在 native(Windows 原生感)、apple(SF Pro 优先)或 off(不覆盖)之间选择;只动 --dsh-font-family-text-default,不改用户在设置里选过的 --dsh-font-family-text,字号也不改。

材质、圆角与间距(L2)

「控件材质」仅给 composer 输入卡 加半透明与 backdrop-filter 玻璃效果,并补侧栏、状态栏 0.5px 分隔线;侧栏背后不用 blur,避免无意义的 GPU 开销。文档明确不与 dsh-plugin-liquid-glass 抢整窗贴膜。

「连续圆角梯度」统一调整六个 --dsw-radius-* token;「间距节奏」抬升对话流默认行距、输入卡与侧栏内边距,并加宽内容区最窄留白。可选「squircle 圆角」使用 corner-shape: superellipse(1.2),默认关闭(Chromium 支持不确定)。

布局与控件形态(L3)

「顶栏紧凑 + 分段标签」压缩顶栏高度,并把视图切换从下划线标签改为分段控件样式,保留 role / aria-selected 与键盘导航。

「阅读宽度对齐」让正文与输入卡共用 min(calc(100% - 40px), 780px),边缘对齐。

「底部读数行统一」整理 [data-composer-dock] 内统计、费用明细与会话费用等读数的字号与盒型(真实读数行在此,而非无人注册的 [data-shell-bottom] 空槽)。

「控件行统一」把输入卡下方多来源芯片统一到 26px 高、12px/500 字重等几何规则,不覆盖各插件的状态强调色。

「侧栏行高与命中区」统一列表行高、放大行内动作命中区、区分选中与 hover,并规范用量卡数字样式。

「切换动画」调整侧栏收展缓动,并在换会话时为内容区加短淡入;关闭该开关会撤掉 MutationObserver。系统开启 prefers-reduced-motion: reduce 时,「减少动态效果」会把 animation/transition 时长压到 0.01ms,且不冻结加载转圈的 iteration-count。

各开关默认值与 README 第 3 节表格一致;带「看得见」字样的项对应文档中标注的视觉改动。

安装与启用

README 说明:维护者环境中没有可用的 dsh plugin CLI,desktop profile 里同类插件采用 link:<源码目录> + dsh.profile.bundles + node_modules junction 的方式挂载。仓库提供 install.mjs 复刻这三步(默认 dry-run,写文件前会备份 profile 的 package.json)。

在插件包根目录(与 install.mjs 同级)执行:

node install.mjs
node install.mjs --apply

可选指定 profile 路径:

node install.mjs --profile "~/.dsh/profiles/desktop"

卸载:

node install.mjs --apply --uninstall

执行 --apply 后,必须完全退出并重启 DSH Desktop(profile 中 hmr 为 disabled,改插件不会热更新)。启动后应在「设置 → 插件」看到 dsh-apple-hig,侧栏或对话页设置里出现 Apple 规范 一节。

SkillHub 目录页 还提供「发送给 DeepSeek Harness 安装」的说明,可让 Harness 按 Yu-jianhai/dsh-apple-hig 读取并安装;具体步骤以你当前 DSH 版本的插件机制为准。安装前请自行查看仓库源码与 MIT 许可证——插件与 DSH 进程同权限运行。

典型用法

在设置里按需开关

路径:设置 → 插件 → Apple 规范。每个开关独立建/撤 token 层,关掉即恢复 DSH 原值。例如只想保留对比度与焦点环、关闭顶栏分段控件,可逐项关闭带「看得见」的 L3 项,而保留「焦点环」「文字对比度」。

macOS 上常把「字体预设」设为 apple,Windows 上默认 native;若已与系统字体策略冲突,设为 off。

运行期调试(可选)

浏览器控制台可用:

window.dshAppleHig.get()
window.dshAppleHig.layers()
window.dshAppleHig.set({ /* 字段见 get() 返回 */ })
window.dshAppleHig.reset()

改偏好后插件会先撤销旧 token 层再建新层,避免残留。

维护者自检命令

在插件包内(需已安装依赖环境):

node tools/contrast.mjs
node test/boot-smoke.mjs

check 脚本对应 boot-smoke.mjs,用于 bundle 与默认开关层的冒烟断言。

适用场景与注意

适合:希望在 不改布局、不重排功能 的前提下,让 DSH 桌面端更接近 HIG 的可访问性、排版与控件一致性;与「整窗 liquid glass」类插件并存时,只想要 composer 卡一层玻璃的场景。

注意:

  • 只覆盖 DSH 内置浅/深主题;第三方主题若重定义 label 相关 token,本插件覆盖层仍在其上。
  • 不处理 Windows 高对比度 forced-colors。
  • 底部读数行、芯片行部分选择器依赖其他插件类名(如 cost meter、文献、记忆等);对方改名后对应规则会静默失效。
  • 侧栏宽度受 dsh-client-ui-layout 内联 grid-template-columns 约束,本插件 不改侧栏宽度,需宽一点请用宿主自带拖曳。
  • 部分组件级间距变量在元素自身声明,插件用 CSS 特异性或只改默认值,无法也不应强行 !important 压平宿主特例。

结尾

dsh-apple-hig 把 Apple HIG 里可落地的部分拆成多档独立开关:从焦点环、对比度、字体,到输入卡材质、分段控件、读数行与侧栏命中区,再到换会话动画,全部通过 token 与 CSS 叠加完成,卸载即还原。若要浏览简介或跟进版本,可看社区目录 https://www.skillhub.cn/plugins/Yu-jianhai/dsh-apple-hig 与 GitHub 仓库 https://github.com/Yu-jianhai/dsh-apple-hig。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜