前言¶
DeepSeek Harness(DSH)的 Web 界面默认提供一套通用主题 token,换肤往往只是改几个主色变量,侧边栏、消息气泡、代码高亮与对比度未必成体系。若你希望界面有明确的文化气质,又不愿手工维护几十套 CSS 变量,就需要一套能覆盖完整 token 词汇表、并通过可读性校验的主题方案。
dsh-theme-plugin 由 nevertoday 维护,以 npm 包 dsh-theme-plugin 发布,属于 SkillHub 目录中的「趣味换装」分类。它将 49 个中国传统色锚点各生成 light / dark 两套主题,共 98 套;每套写入 98 个 token(89 个 --dsw-* 加 9 个 --shiki-token-* 语法高亮槽位),并在 3136 条对比度断言上通过 WCAG AA。当前版本 0.3.3,许可证 MIT。
这是什么¶
一句话定位:把中国传统色系统化为 DSH Web 客户端可切换的完整主题包,而非零散配色补丁。
维护者 nevertoday 在 GitHub 仓库 nevertoday/dsh-theme-plugin 持续迭代;社区目录页见 SkillHub。DSH 生态奉行「一切皆插件」,SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
98 套主题与完整 token 覆盖¶
49 个锚点色各对应 light 与 dark 分支,合计 98 套主题。每套主题填充完整 DSH 设计 token 词汇表,并同步配置 shiki 代码高亮的九个 --shiki-token-* 槽位。安装后浏览器控制台应输出 registered 98/98 themes (49 light / 49 dark)。
四层设计:纸 · 帘 · 印¶
主题按中国画作色顺序分层构建,而非简单把传统色「变浅做背景」:
- 纸(Paper) — 约占画面 60%。四种纸材家族(素绢、熟宣、雪青、赭纸)在 OKLab 色度上刻意分离,浅色底约在 L ≈ 0.963–0.971,偏米白而非纯白。
- 帘(Veil) — 约占 25%。侧边栏与消息气泡使用锚点色本身,与纸面保持 1.25–1.55 对比度带;识别当前主题主要靠气泡色,而非背景。
- 印(Seal) — 主按钮与发送按钮为锚点色压深后的焦点色;策展相对色(
sealName/sealRel)仅作导航激活点缀。 - 墨(Ink) — 正文、分割线、次级表面沿同一墨色阶梯下行;light / dark 共享同一结构。
代码块方面,五个语法 chromatic 槽位(keyword / string / constant / function / parameter)沿用程序员熟悉的色相约定,颜色取自 742 色名册;当锚点色相落入某槽位窗口时,锚点色本身扮演该槽位(例如竹青主题中字符串为竹青)。注释与标点走墨色,九个槽位均在代码块底色上达到 4.5 对比度。
主题选择与检索¶
设置面板 Settings → Traditional Colors 提供四种找色方式:
- Browse — 按纸材家族分组展示当前分支全部 49 个锚点,每行 chip 预览真实纸、帘、印。
- By working mood — 六个时段 chip(晨起 → 天亮等),例如选「凌晨 夜航」可筛出八个偏暗、偏静的主题。
- Search — 支持中文名、拼音、印章名与 mood 检索;输入
lv可找到全部十二个绿色主题。 - Curated only — 十二个策展精选,覆盖四种纸材与六种 mood;dark 分支面板本身以主题包样式渲染。
其中十二个锚点被标为策展短名单。面板仅引用 --dsw-* token,随当前选择实时变色,兼作预览。
质量门禁¶
pnpm check 从生成结果重算全部断言:3136 条对比度行,以及帘色度、单一焦点、语法槽位色相分离、锚点登台规则、层级方向与 token 全覆盖等不变量。生成器自述不经信任,须由检查脚本验证。
安装与启用¶
插件通过 npm 预构建包安装,无需 clone 仓库或本地 build。首次启动会在 ~/.dsh/profiles/web 创建 web profile。
npx -y @deepseek-ai/dsh plugin --profile web add dsh-theme-plugin@latest
npx -y @deepseek-ai/dsh --profile web
启动后打开 http://127.0.0.1:3080/。
验证安装:
dsh --profile web --dump-config
配置中应出现 theme-zhongguo 相关行;浏览器控制台应显示 98/98 主题注册成功。
更新:重复执行 add 命令。卸载:
dsh plugin --profile web remove dsh-theme-plugin
运行环境要求 Node.js >= 20(见 package.json engines 字段)。
典型用法¶
设置面板切换¶
打开 Settings → Traditional Colors,点选主题后立即生效。
深链接切换¶
修改 URL hash 可实时换肤;深链接优先于本地记忆的选择:
http://127.0.0.1:3080/#theme=zhuqing-light
http://127.0.0.1:3080/#theme=qunqing-dark
记忆的选择保存在 localStorage,不在 settings.yaml 中,因此不会跨设备同步。
适用场景与注意¶
适合谁
- 长期在 DSH Web 界面工作的开发者或智能体搭建者,希望界面有稳定、可辨识的中国传统色视觉体系。
- 需要代码高亮与 UI 主色在同一套生成规则下对齐,且对比度有自动化校验的场景。
- 偏好通过 mood、拼音或策展列表快速选色,而非记忆 49 个色名。
注意事项
- 插件随当前
dsh进程权限运行;安装前建议阅读 GitHub 源码 与 MIT 许可证。 - 仅面向 DSH Web profile(
client.platform: web);CLI 或其他 profile 不在此包覆盖范围内。 - 主题选择默认存于浏览器
localStorage;换设备或清缓存后需重新选择,除非使用深链接。 - 仓库 README 提供 中文文档 README.zh-CN.md,设计细节与纸帘印分层说明以该文档为准。
结尾¶
dsh-theme-plugin 把 49 个中国传统色锚点扩展为 98 套完整 DSH 主题,用纸、帘、印分层与自动化对比度检查,解决「换肤只改主色、代码块与可读性脱节」的常见问题。若你已在用 DSH Web,一条 add 命令即可在设置里浏览竹青、群青、朱红、藤黄等主题。