前言¶
DeepSeek Harness(DSH)的界面颜色由设计令牌体系驱动:--dsw-alias-* 表示语义色(成品),--dsw-static-* 表示原材料色阶。若只想改某几个 token、又不想写整份皮肤 CSS,或担心改样式表后出现 FOUC、与皮肤插件抢优先级,就需要一种在页面 paint 前写入、且不与样式表缠斗的覆盖方式。dsh-palette 是维护者 abluefan 发布的 DSH 插件,分类为「趣味换装」,在设置页提供调色盘,把逐项覆盖写进 body 的 inline custom property,并持久化到本地 JSON。
这是什么¶
dsh-palette 的定位是:DSH 的调色盘 —— 逐项覆盖语义色与原材料色,写进 body 的 inline custom property。它不负责替换整套主题皮肤,而是对 alias / static 两类变量做细粒度 override,浅色与深色 scheme 分别存储。
社区目录页:https://www.skillhub.cn/plugins/abluefan/dsh-palette
源码与说明:https://github.com/abluefan/dsh-palette
为什么用 inline custom property¶
README 里强调两个好处,缺一不可:
- 无 FOUC —— 页面加载时同步写入,paint 之前就完成。
- 不与皮肤插件冲突 —— inline 优先级高于任何样式表,不需要
!important。
覆盖范围¶
| 前缀 | 含义 |
|---|---|
--dsw-alias-* |
语义色(成品)—— 101 个,分 9 组 |
--dsw-static-* |
原材料色阶 —— 77 个,按色系分组(改一级会连锁) |
浅色 / 深色分别存储。写入前会过两道白名单:变量名只允许上述前缀;值必须是安全的 CSS 色彩字面量。坏数据一律退化成空表,不阻塞启动。
核心功能¶
- 设置页「调色盘」面板。
- 拖动即时预览(只写单个变量);停手 150ms 才结算保存。
- 单体重设 / 当前 scheme 全部重设。
- 导出 / 导入 JSON。
- 设置页遮罩开关(默认关闭)。
仓库内还提供 scripts/extract-tokens.mjs:从 DSH 源码的 design-platform.css 抽出全部 --dsw-alias-* 的浅色/深色预设值(只抽 alias 层,不抽 static 原材料阶梯);路径在脚本开头改。
存储格式¶
文件路径:$DSH_HOME/palette.json。
{
"light": { "--dsw-alias-bg-base": "#87f5f7" },
"dark": { "--dsw-alias-bg-base": "#101418" }
}
key 可以是 alias 或 static,同一层 map 内混用均可。
安装与启用¶
环境要求:DSH ≥ 0.2.1(package.json 中 engines.dsh 为 >=0.2.1-rc.2)。
通过插件市场(推荐)¶
在 awesome-dsh-plugin 的目录里找到本插件,或在 dsh 的 插件 → 发现 里搜索 dsh-palette,点安装。awesome-dsh-plugin 是社区目录站点,与 DeepSeek / 幻方无官方从属关系。
手动安装¶
任选一种,不要两种同时用。
A. 复制 + 手写 insert(适合本地开发)
- 把本目录复制到
$DSH_HOME/profiles/web/node_modules/dsh-palette/。 - 在
$DSH_HOME/profiles/web/cordis.patch.yml加:
- insert:
- id: dsh-palette
name: 'dsh-palette'
- 重启 dsh,或让 Loader 重载配置。
B. dsh plugin add(需要包已发布到 npm)
dsh plugin --profile web add dsh-palette
用 B 之后,包名会进 dsh.profile.bundles,bundles 层会读本包自带的 cordis.patch.yml;此时不要再做 A 的第 2 步 —— 同一个 id 会被插两次,DSH 启动会直接失败。
典型用法¶
- 按上文完成安装并重启或重载配置。
- 打开 DSH 设置页,进入「调色盘」面板。
- 在浅色或深色 scheme 下选择 alias 或 static 分组,拖动色值即时预览;停手约 150ms 后自动写入
palette.json并应用到bodyinline 变量。 - 需要备份或迁移时,使用面板内的导出 / 导入 JSON;单 token 或整 scheme 可用重设功能恢复默认。
适用场景与注意¶
适合希望在不动整包皮肤的前提下,微调 DSH Web 界面语义色或原材料阶梯的开发者或自用部署者。改 static 时需注意色阶连锁:改一级可能影响同组衍生色。
安装前建议自行查看 GitHub 源码与许可证;插件以当前 dsh 进程权限运行,会读写 $DSH_HOME/palette.json。npm 包当前版本为 0.1.0(private: true,以仓库发布状态为准)。
结尾¶
dsh-palette 把 DSH 设计令牌的可视化编辑收敛到 inline custom property + 本地 JSON,兼顾加载时无闪烁、与皮肤插件低冲突。目录与安装入口见 skillhub 插件页,细节以 GitHub README 为准。