dsh-theme-material:DSH 裏能不能一次給八套配色,點一下就換

前言

DSH 本身是「一切皆插件」的宿主,界面主題這類東西天然是社區插件的活。問題是這類插件通常要麼只給一套深色、要麼要改配置文件改很久,「想換個合併看看」這一步很輕的的事,做起來很重。dsh-theme-material 解決的就是這件事:它把八套 Material / 類 Material 的配色塞進一個插件,設置頁裏點一張色卡就換,深淺都有,裝完不用改任何配置文件。下面介紹這個插件。

它由 heinrich0505 維護,放在社區目錄的「趣味換裝」分類下,目錄頁標註星標爲 0,是一個很新的小插件。它不擴展功能、不改工作流,只是把界面顏色這一層交給用戶控制。

這是什麼

一句話定位:給 DeepSeek Harness Web 界面提供八套預設配色主題的皮膚包,深淺各幾套,在設置裏切換。

它解決的問題有兩個:一是默認配色不一定合每個人眼睛的習慣,二是挨個調 CSS 變量的成本太高、且容易調出讀不清的低對比度組合。這個插件把這兩件事變成「點一下」。

八套主題

README 給了一張表,每套列出底色、強調色和一句說明。下面照錄,色值可以作爲挑選依據。

主題 底色 強調色 說明
夜紫 Palenight #292D3E #80CBC4 Material 最有名的一套,靛藍灰底、青綠強調,側欄和正文同色
幽藍 Ocean #0F111A #80CBC4 壓到近黑的深藍,狀態色是屏幕上唯一還亮着的東西
墨灰 Darker #212121 #80CBC4 中性純灰,不帶色相,最不搶眼
素白 Lighter #FAFAFA #26A69A Material 唯一的淺色主題:冷白紙面、藍灰字、青綠強調
奶咖 Latte #EFF1F5 #8839EF Catppuccin 的淺色:灰紫底、紫強調
青苔 Vitesse #FFFFFF #1C6B48 近乎純白的極簡底加一抹墨綠,彩度全場最低
霓光 Snazzy #FAFBFC #09A1ED 冷白底配亮青強調
灰階 GitHub Gray #F0F0F0 #005CC5 整屏灰底配純黑字,README 裏說的加的那套

其中「灰階 GitHub Gray」就是維護者在簡介裏提到的 github light gray 那一套,相比其餘七套的原作者描述,這套是在 GitHub Light Gray 基礎上改的 GitHub 灰版。

安裝

README 給出兩種方式。應用內打開「插件 → 添加插件」,填入:

github:heinrich0505/dsh-theme-material

也可以走命令行,網頁端 profile 直接加:

dsh plugin --profile web add github:heinrich0505/dsh-theme-material

裝好按提示刷新窗口,插件纔會生效。

package.json 裏的聲明值得先看一眼:dsh.engines.dsh 是 >=0.2.0-rc.1 <0.3.0-0,compatibility.platform 只有 web,client.immediately 爲 true。換句話說它只保證在 Web 端按插件機制加載,對應版本區間是 DSH 0.2.x 的 rc 到 0.3 之前;版本明顯不在這個區間要先確認兼容性再裝。

換主題

換主題不需要命令,進 設置 → 通用 → 主題,點一張色卡即可。深色主題有夜紫、幽藍、墨灰三套,選它們時插件會把「外觀」一起切到深色;其餘五套淺色主題會切回淺色。之後如果你手動改「外觀」,就以你的爲準,插件不再接管。

選中的主題記在瀏覽器本地,而不是服務端。這意味着同一臺機器上用不同瀏覽器的人可以各自用一套,互相不覆蓋。

配色是怎麼算出來的

這套插件值得看的地方不是八張表,而是它怎麼把這麼少的定義變成一整套顏色。每套主題在 src/skins.mjs 裏只寫十個輸入:底色、卡片面、正文、註釋、強調色、次強調,以及幾個狀態色的來源。其餘按鈕、輸入框、邊框、代碼塊、提示條的顏色,由 src/derive.mjs 按用途推導出來,package.json 裏描述的是「一套 token 引擎按 appearance 推導 126 個 --dsw-* 顏色 token」。

推導時會保證讀得清:正文對比度不低於 7:1,次要文字和按鈕上的字不低於 4.5:1;達不到就把顏色往黑或往白調到最近的能滿足的值。npm run verify 會把每套主題的對比度打出來,哪一對不夠清楚直接標出來。

每套主題只定義它原生的那一面(深色或淺色),另一面自動補:深色主題的淺色版統一用 Material Lighter;淺色主題的深色版是中性夜色加這套主題自己的強調色。想自己做一套,照抄 src/skins.mjs 裏任意一段改顏色,然後跑上面的 verify 命令驗一遍即可。

適用場景與注意

適合這兩類人:一是想把自己的 DSH 界面調成順手習慣、但不想每次改 CSS 變量的人;二是需要給多套主題做對比、或者想抄它的 token 推導邏輯寫自己主題的人,它的 skins.mjs + derive.mjs + verify 這條鏈路可以直接當參考實現。

幾點必須清楚:

  1. 插件運行時以當前 DSH 進程的權限工作,裝之前應先檢查源碼(尤其是它對 cordis.patch.yml 的 patch 和 client 的加載聲明)再決定要不要啓用。
  2. 許可證是 MIT,源碼可以自由查看和修改。
  3. 它只做配色,不提供功能擴展,期望「裝了插件 DSH 就變強」是不合適的。
  4. 版本 0.4.2,星標 0,屬於剛起步的小項目,更新窗口和技術依賴要有預期。

結尾

把它當作一個乾淨的配色層來看比較合適:八套主題、深淺都有、點一下就換,同時它自帶的 token 推導和對比度校驗讓「自己再做一套」這件事成本很低。目錄頁在 https://www.skillhub.cn/plugins/heinrich0505/dsh-theme-material,源碼在 https://github.com/heinrich0505/dsh-theme-material。

需要說明的是,這個目錄站是社區站點,與 DeepSeek / 幻方沒有官方從屬關係,不是應用商店。

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

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

小夜