前言¶
DSH(DeepSeek Harness)的生態建立在「一切皆插件」的理念上,外觀也不例外:皮膚以插件形式分發,通過覆蓋界面的語義 token 生效。對每天長時間面對 web 界面的用戶來說,配色與字體決定了大部分觀感,與其手工改樣式,安裝一個遵循成熟設計規範的皮膚包更省事。下面介紹 mtaech/dsh-material-you,它把 DSH web 界面按 Google Material You / Material 3 (M3) 規範重新着色與排印。
這是什麼¶
mtaech/dsh-material-you 是 mtaech 維護的 DeepSeek Harness 皮膚插件,在社區插件目錄中被歸入「趣味換裝」分類。它提供淺色、深色兩套外觀的 Material You (M3) 皮膚:配色由 Material Color Utilities 的 HCT 算法從種子色 #3B82F6 推導,字體採用 Maple Mono NF CN。
包內 package.json 聲明的包名爲 @deepseek-ai/dsh-skin-material-you,版本 0.1.0-rc.2,標記 private: true,許可證爲 MIT。倉庫已歸檔,開發遷移至 mtaech/melon(源碼位於 packages/skin-material-you 目錄),issue 與 PR 請提到 melon 倉庫。
配色:HCT 色調色板與 token 覆蓋¶
配色部分的做法:從種子色 #3B82F6 出發,用 Material Color Utilities 的 HCT(Hue–Chroma–Tone,tone 0–100)算法推導色調色板,共 5 條:primary / secondary / tertiary / neutral / neutral-variant。
這些顏色不直接寫進界面,而是通過覆蓋 --dsw-alias-* 與 --dsw-specific-* 兩類語義 token 生效。完整覆蓋清單約 80 個 token × 雙外觀,集中在 src/tokens.mjs。安裝後 system 偏好下淺色、深色兩種外觀均爲 Material You 配色。
改主題時有一個對比度約束要注意:--dsw-specific-sidebar-nav-item-active-accent 是 ask_user_question「推薦」徽章的背景色(取 primary-container),--dsw-alias-button-info-fill 是徽章的文字色(取 primary),兩者必須保持對比。
排印:Maple Mono NF CN¶
字體採用 Maple Mono NF CN(Nerd Font + 中文等寬)。包內自託管 Regular 字重的 woff2 文件(約 6.1MB),@font-face 用 font-weight: 100 800 聲明覆蓋全部字重;未打包的 Medium/Bold 由瀏覽器合成加粗,或回退到系統已安裝字體:
@font-face {
font-family: 'Maple Mono NF CN';
font-style: normal;
font-weight: 100 800;
src: url('../fonts/MapleMono-NF-CN-Regular.woff2') format('woff2');
font-display: swap;
}
排印節奏沿用 M3 的字號、行高、字距,字重按 M3 的 400/500/700 映射到 Maple Mono 的 Regular/Medium/Bold,相關 token 以 --m3-typescale-* 命名。動效採用 M3 的 emphasized/standard 緩動並支持 prefers-reduced-motion;形狀遵循 M3 圓角體系(4/8/12/16/28/full px)。
如需更忠實的 Medium/Bold 字重¶
先找到對應字重的 TTF,用 fontTools 轉成 woff2 放入 fonts/,再補上對應的 @font-face 規則,每份約 6MB。
插件形態:bundle patch¶
這個插件採用 bundle patch 形態:package.json 裏聲明 dsh.bundle.patch 指向自帶的 cordis.patch.yml。cordis.patch.yml 的內容爲:
- insert:
- id: ui-skin-material-you
name: '@deepseek-ai/dsh-skin-material-you'
安裝後插件包會自動加入 profile 的 dsh.profile.bundles,patch 再用 insert 把 id 爲 ui-skin-material-you 的皮膚行插進加載列表,不需要手動編輯 profile。
另有一個容易混淆的點:inject 分兩層,含義不同。package.json 的 dsh.client.inject 是包名數組,當前包含 @deepseek-ai/dsh-client-runtime 與 @deepseek-ai/dsh-client-ui-theme,platform 爲 web;lib/client.js 的 exports.inject = ['theme'] 是服務名數組。自己寫皮膚類插件時注意區分這兩處。
安裝與啓用¶
倉庫歸檔聲明寫明:安裝方式已從 git 改爲 npm。現行安裝命令如下,把 <你的 profile> 換成實際使用的 profile 名:
dsh plugin --profile <你的 profile> add dsh-skin-material-you
README §7 還保留了另外兩種來源的寫法。從 GitHub 安裝:
dsh plugin --profile web add github:mtaech/dsh-material-you
從本地倉庫目錄安裝:
dsh plugin --profile web add "file:E:/Dev/Code/dsh-material"
其中 GitHub 安裝會走包內 prepare 構建流程,而 pnpm 默認阻止構建腳本。若提示 Ignored build scripts,在 profiles/web/pnpm-workspace.yaml 的 allowBuilds 里加入包名後重新執行即可——本包無需構建腳本也能直接運行。
啓用分三步:先執行安裝命令,再重啓 dsh web,最後按需固定主題。經過上面的步驟,界面默認跟隨 system 偏好,淺色、深色兩種外觀均爲 Material You 配色;如需固定某一外觀,在設置 → 外觀裏選擇 material-you-light 或 material-you-dark。
適用場景與注意事項¶
適合兩類人:一是偏好 Material You / M3 視覺語言、希望 DSH web 界面配色與字體遵循同一套規範的用戶;二是想在 DSH 上編寫皮膚插件的開發者,可以參考它的 bundle patch 結構與 token 覆蓋方式。
幾點注意:
1、插件以當前 dsh 進程的權限運行,安裝前應檢查插件源碼與許可證(本項目爲 MIT);
2、倉庫已歸檔,功能更新看 mtaech/melon,安裝命令以歸檔聲明給出的 npm 方式爲準;
3、字體只隨包攜帶 Regular 字重,Medium/Bold 爲合成或回退效果,對字重敏感的場景按上文方法自行補齊。
結尾¶
mtaech/dsh-material-you 用一套 HCT 推導的色調色板和 Maple Mono NF CN 等寬字體,把 DSH web 界面統一到 Material You 規範下,一條安裝命令、一次重啓即可啓用。更多信息見:
- 社區目錄頁:skillhub.cn/plugins/mtaech/dsh-material-you
- GitHub 倉庫:github.com/mtaech/dsh-material-you
- 後續開發倉庫:github.com/mtaech/melon