前言¶
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 命令即可在設置裏瀏覽竹青、羣青、硃紅、藤黃等主題。