DSH UI Harmonizer:用官方设计令牌统一 Web 界面

前言

DeepSeek Harness(DSH)的 Web 端支持通过插件扩展界面与能力。装多个插件后,常见问题是:官方界面仍有未完成或自相矛盾的细节,第三方设置页标题、间距、图标各写各的,better-sidebar、widgets 等插件之间还会出现样式冲突。逐个改插件源码成本高,也不利于卸载回退。

下面介绍 Physicolor 维护的客户端插件 dsh-ui-harmonizer(npm 包名 dsh-ui-harmonizer)。它不改会话日志、不增加模型工具,只在浏览器侧通过官方 slot 与 --dsw-* 语义令牌做 CSS 覆盖和运行时 DOM 协调,把界面拉回官方设计语言,并可一键卸载、不留残留。

这是什么

dsh-ui-harmonizer 是 纯客户端 DSH bundle 插件。宿主(node)侧为 no-op,所有改动发生在浏览器半侧。它通过 settings.sectionsettings.general.itemshell.overlay 等官方 slot 注入样式与逻辑,不修改插件源码。

  • 维护者:Physicolor
  • 分类:客户端(dsh.client.platform: web
  • 许可证:MIT
  • 当前版本:v0.8.0
  • 兼容:DeepSeek Harness 0.1.0-rc.6 及后续兼容的 0.1.x

核心功能

官方 UI 规范化

针对官方界面中不一致或未完成的区域,插件做了统一处理:

能力 说明
单行页头 将对话 / 轨迹选择器并入标题行,页头收拢为单行
按钮胶囊族 会话日志、widgets、开关按钮统一为 32px 胶囊样式
右侧栏贴边圆角矩形 better-sidebar 面板 overlay 布局协调,页头保持固定
统一设置页头 标题 18/600、描述 13px、细线分隔
原生 title 工具提示 仅带 HTML title 的元素改为官方深色 Tooltip 气泡,而非系统原生弹窗

插件视觉协调

对已知的第三方插件做针对性样式对齐:

目标 做法
dsh-better-sidebar 开关按钮胶囊化、面板背景统一、布局与过渡协调
dsh-widgets 统计胶囊族对齐、页头工具区对齐
第三方设置页 自动补全标题、去掉冗余图标、统一间距

已知协调对象还包括 dsh-notificationdshmarket。插件通过官方 slot 顺序共存,卸载或禁用后页面恢复默认,无残留。

设置页自动规范化

当第三方插件向 settings.section 注册的页面不符合官方规范时,插件会自动修正:

检查项 修正
缺少页面标题 从导航标签或已知映射注入 18/600 标题
标题旁冗余图标 移除标题行 logo,保留纯文本
标题与描述间距过紧 统一为 4px 间距 + 细线分隔
字号不一致 标题 18/600,描述 13/20,加 border-bottom

UI 自定义

设置 → 通用 下会出现「UI Customization」区块,支持实时调整:

  • 对话区宽度
  • Markdown 字号
  • 工作区缩放
  • UI 字体栈
  • 圆角卡片(rounded card):对话区以圆角左上 + 阴影呈现为卡片,随侧栏宽度与详情列自动伸缩

v0.8.0 起,圆角卡片模式会包裹会话页头;better-sidebar 开关簇在面板关闭时有不透明底座,打开时收拢为紧凑浮动芯片。

架构要点

  • 零模型成本:不调用模型,不改会话数据。
  • 官方设计令牌:样式基于 --dsw-*,自动跟随浅色 / 深色主题。
  • 双通道注入:CSS Modules 静态规则 + 动态 <style data-plugin> 标签。
  • 可逆清理:fiber-effect disposer 管理副作用,卸载即恢复。

安装与启用

通过 DSH 插件市场(npm)安装:

dsh plugin --profile web add dsh-ui-harmonizer

安装后需在浏览器中 硬刷新(Ctrl+Shift+R)。刷新后,在 设置 → 通用 中应能看到「UI Customization」区块。

本地开发可用 link 方式挂载(README 示例路径为开发者本机目录,按需替换):

dsh plugin --profile web add link:D:/dsh-home/plugins/harness-ui-enhancer

典型用法

安装并硬刷新后,无需额外命令。界面规范化与插件协调在后台自动生效。

若需调整视觉参数,打开 设置 → 通用 → UI Customization,按需修改对话宽度、Markdown 字号、工作区缩放、字体栈或圆角卡片开关,改动即时生效。

若某子树需要退出原生 title 的 Tooltip 统一(v0.8.0),可在祖先元素上设置 data-enhc-no-tooltip,该子树恢复使用原始 title 行为。

适用场景与注意

适合谁

  • 同时安装多个 DSH Web 插件,界面风格杂乱、设置页排版不统一
  • 希望在不改插件源码的前提下,把 Web UI 对齐官方 --dsw-* 设计语言
  • 需要可调对话区宽度、字号、圆角卡片等个性化选项,且要求卸载可回退

注意事项

  1. 插件以当前 DSH 进程权限运行,安装前建议阅读 GitHub 仓库 源码并确认 MIT 许可证。
  2. 仅适用于 Web profile(--profile web),不提供宿主侧能力。
  3. 路线图显示官方 UI 规范化、插件兼容协调、统一视觉风格(含圆角卡片、Tooltip 统一等)仍在持续迭代;Liquid Glass 等材质层为可选实验方向,尚未作为默认能力发布。
  4. SkillHub 目录页与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;安装命令以 README 与目录页为准,勿凭包名自行拼接 github:owner/repo 形式。

结尾

dsh-ui-harmonizer 把「多插件并存时的 UI 摩擦」收敛到一层可卸载的客户端抛光层:规范化官方未完成细节、协调 better-sidebar / widgets 等已知插件、自动修正设置页排版,并在设置中提供可实时调整的宽度、字号与圆角卡片。若你正在堆叠 DSH Web 插件,可以先装这一个,再硬刷新看效果。

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

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

小夜