dsh-ui-colors:用少量控件覆盖 DSH Web 界面主题

前言

DeepSeek Harness(DSH)的 Web 客户端有一套默认界面样式。若你长期在 VS Code 里用 DSH,编辑器主题已经定制过,却没法直接把 VS Code 主题「搬」进内置的 dsh web 窗口——通常要么写粗糙适配层,要么让智能体零散改 CSS。维护者 scsmash3r 基于社区里的 dsh-web-ui-design-spec 做了 dsh-ui-colors:在 Settings → Customize 里用光谱、预设和细粒度色板改 DSH GUI 观感,边框与圆角一并可调。插件归类为社区目录中的「趣味换装」,当前 GitHub 星标为 0;生态上 DSH 强调「一切皆插件」,SkillHub 目录页 与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-ui-colors 是面向 DSH Web GUI 的 UI 插件(npm 包名同插件 id,版本线见仓库 package.json,当前为 0.32.0-alpha.1,MIT 许可证)。它不改 DOM 补丁,而是通过 DSH 支持的主题 seam 调用 ctx.theme.overrideTokens,改基础 primitive 与 color token,使同样使用默认 DSH CSS 的其他插件界面也能保持一致。配置写入 profile patch,改色后 override 层即时生效,多数选项无需整页重启 DSH 进程。

核心功能

下面介绍 Settings → Customize 下已文档化的能力(与 README 一致)。

Palette(色板)

  • Spectrum:九条光谱,选主强调色。
  • Preset:基础预设,会联动表面填充、中性色阶与边框色。
  • Full semantic theme:开启后,光谱色不仅作用于色相/饱和度,还会在独立 inner color scope 里展开更多语义色。

Syntax highlighter(语法高亮)

DSH 使用 Shiki。插件提供六种 token 主题:Default、GitHub、Nord、Dracula、Solarized、Monokai。

Selection(选区)

Apply spectrum to ::selection 可单独把光谱应用到文字 ::selection,与是否开启 Full semantic theme 无关。

Colors / Neutral / Borders

  • Colors:按表面(Sidebar、Main、Raised Surface、Composer、用户气泡、代码块等)分别填 light/dark,格式 #RRGGBBAA,六位 hex 视为不透明。
  • Neutral:16 级 --dsw-static-neutral-*(00–1000)独立 light/dark;空值保留主题默认;有独立 Reset。
  • Borders:四级 --dsw-alias-border-l1–l4 独立 light/dark;网格默认折叠在 Show border inputs 下。

Border radius(圆角)

可选 Default、Half、None(直角)。

Language(语言)

Customize 区块随 DSH locale 显示英文或简体中文,切换 DSH 语言后该区块可更新而无需 reload。

扩展光谱或预设时,数据在 lib/client.js,可自行增改或由智能体协助;仓库另有 Architecture、Token policy、Adding themes 等文档说明 token 分层与审计。

安装与启用

环境要求(来自 docs/install.md):DSH Web profile 位于 $DSH_HOME/profiles/web;已安装 dsh CLI 与 pnpm;开发需 Node.js ≥ 20。package.json 声明 dsh 引擎为 >=0.2.1-rc.2 <0.3.0-0。

从 npm 安装 alpha 标签:

dsh plugin --profile web add dsh-ui-colors@alpha

然后在 DSH Web 的 Plugins 页面启用 dsh-ui-colors。包声明了 dsh.bundle,会应用自带的 cordis.patch.yml;不要再手动插入重复的 ui-colors patch 项。

本地 checkout 开发时:

dsh plugin --profile web add /path/to/dsh-ui-colors

启用 bundle 后,必要时重启 dsh web;移动目录后需用新路径重新 add。

变更类型 建议操作
仅浏览器端 UI、CSS、预设、光谱或 Shiki 数据 刷新 Web 页
新增或重命名 Host Config 字段 重启 dsh web
换包或 bundle 选择 重启 dsh web

卸载:先从 cordis.patch.yml 去掉含 id: ui-colors 的 - insert: 块,再执行 dsh plugin --profile web remove dsh-ui-colors,并重启 dsh web。

典型用法

1、完成安装并在 Plugins 中启用 dsh-ui-colors。

2、打开 DSH Web Settings → Customize。

3、在 Palette 里选一条 Spectrum,或选一个 Preset 快速改表面与中性与边框;若希望强调色带动更多语义色,打开 Full semantic theme。

4、需要与 IDE 选区风格一致时,勾选 Apply spectrum to ::selection。

5、在 Syntax highlighter 里切换 Shiki 主题(例如 Nord 或 Dracula)。

6、细调时展开 Colors、Show neutral inputs、Show border inputs,按表面或 token 填色;Border radius 选 Half 或 None。

7、验收配色时,可按仓库 docs/visual-test.md 粘贴 Markdown,检查表面、链接、选区与 Shiki 渲染。

经过上面的步骤,界面应随 token override 即时更新;若新增表单项无法保存选中状态,多半是 Host schema 过旧,需重启 dsh web 而非仅刷新浏览器。

适用场景与注意

适合:希望在少量控件下尽量覆盖 DSH Web 主题、让 dsh web 接近 VS Code 编辑器观感、或统一侧边栏/主栏/输入框/代码块/边框的开发者。

注意:

  • 插件与 DSH 进程同权限运行;安装前请阅读 GitHub 源码 与 MIT 许可证,自行判断是否信任维护者 scsmash3r。
  • 主栏、侧栏、右栏的部分 scoped 规则依赖 CSS module 后缀;若上游重命名模块,token 仍生效但容器级样式可能回退(文档称 best-effort bridge)。
  • 聚焦环 --dsw-focus-ring-color 仍由主题控制,不属于 Borders 四级之一。

结尾

dsh-ui-colors 用官方 theme override 与可持久化的 volatile 配置,把 DSH Web 的换肤收成 Customize 一处:光谱、预设、Shiki、选区、表面色、中性阶、边框与圆角。目录与说明见 SkillHub:scsmash3r/dsh-ui-colors,源码与文档见 GitHub:scsmash3r/dsh-ui-colors。

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

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

小夜