DeepSeek Harness Liquid Glass 主題插件

前言

DeepSeek Harness(DSH)支持通過插件擴展界面和功能。開發者想要調整界面樣式時,需要手動修改應用代碼,改動成本高且難以回退。下面介紹的 dsh-glass-theme 插件通過覆蓋樣式表和客戶端腳本,重繪了 DSH 的所有界面元素,無需修改應用本體。

這是什麼

dsh-glass-theme 是一個爲 DSH Web GUI 設計的 Apple Liquid Glass 主題,由維護者 Ayelsh 發佈。它是一個純 CSS 皮膚,配合約 150 行的客戶端運行時,將應用的所有表面重新繪製:背景是環境光場上的浮動玻璃鉻,對話區域是不透明的閱讀面,所有面板、彈窗和對話框共享同一套材質層級。

核心功能

重繪所有界面

主題通過 15 個樣式表覆蓋了 DSH 的所有界面元素:外殼、側邊欄、對話區、輸入框、覆蓋層、模型選擇、統計、設置、頁面、組件、動畫。這些樣式表按級聯順序加載,在應用自身的樣式之後注入,因此不會改變應用代碼。

Token 詞彙重鍵

主題發佈了一個空的 token 集合,將調色板完全交給 CSS 定義。src/css/tokens.css 在 body 和 body[data-ds-dark-theme] 上重新聲明瞭約 250 個 --dsw-* 自定義屬性,使任何頁面都能繼承這套重新設計,無論主題之前是否見過該頁面。同時它還定義了 11 個 DSH 構建使用但未定義的屬性。

替換模型選擇器

主題在 conversation.input.model 位置掛載了一個 React 卡片,替換了原有的模型選擇器。新卡片支持:
- 按供應商分組模型
- 每個模型一行描述
- 代理商價格比顯示爲徽章
- 實時高峯/低谷標籤,跟隨所選模型的供應商(DeepSeek 工作日 9:00–12:00 + 14:00–18:00,約 2×;智譜工作日 14:00–18:00,約 2×;無排期的供應商不顯示標籤)
- 模型列表旁的 effort 分段控件,兩者同時可見

已配置的供應商會精簡默認列表,其餘模型隱藏在「所有供應商」行後。

合併使用統計

主題通過 src/stats.js 將原本分散的兩個統計藥丸和上下文環替換爲一個控制組件:點擊後打開一個面板,顯示上下文壓力及其三個桶、會話計時和 token 記賬。藥丸位於輸入框右側,面板從同一側掛出。

添加設置頁面

主題在 settings.section 下注冊了「Liquid Glass」頁面。該頁面使用一個內部光源照亮的磨砂板作爲材質對象(設置表單本身已是玻璃,再加一層卡片會形成玻璃疊加玻璃的效果)。頁面包含容量計量器、圖標方塊、交錯入場動畫和蝕刻紋理,並響應 prefers-reduced-transparency。

可訪問性支持

主題支持以下可訪問性需求:
- prefers-reduced-transparency
- prefers-contrast
- prefers-reduced-motion
- hover: none
- 鍵盤焦點環(根據輸入模態性啓用,指針用戶不會看到)

外部頁面樣式

第三方插件將未分類的 HTML 渲染到 main 插槽時,這些控件會繼承應用的類型和控件縮放,無需進入 markdown 輸出區域。

安裝與啓用

前置要求

  • DSH 版本 >= 0.1.7
  • Node.js 環境(用於安裝步驟)

安裝步驟

  1. 克隆倉庫後,複製整個目錄到指定 profile 的 node_modules:
   cp -r . ~/.dsh/profiles/desktop/node_modules/dsh-glass-theme
  1. 修改該 profile 的 package.json,在 dsh.profile 下添加 bundle 條目:
   { "dsh": { "profile": { "bundles": ["dsh-glass-theme"] } } }
  1. 重啓 DSH 應用。

重啓是必須的:插件列表在窗口打開前從 profile 構建而成,主機部分(路由、峯值速率緩存、使用記賬)在啓動時掛載。刪除插件文件夾和 bundle 條目即可完全恢復原始界面。

設計規則

主題遵循以下設計原則:
- 頁面是閱讀面,控件是玻璃
- 所有控件共享同一套材質層級
- 背景是環境光場上的浮動玻璃鉻
- 對話區域是不透明的閱讀面
- 材質層級不因面板類型而改變

驗證與構建

倉庫包含驗證工具鏈:
- node tools/verify.mjs:檢查每個選擇器是否能在已安裝構建中解析
- node tools/leak.mjs:確保 [class*=] 不發生過度匹配
- node tools/build.mjs:將樣式表內聯到客戶端,複製主機部分
- node tools/smoke.mjs:在模擬 DOM 中評估打包後的包
- node tools/assert-built.mjs:確保原始規則在打包後仍然存在

驗證工具會解析應用生成的 CSS 模塊類名(_local_hash),並使用這些類名檢查選擇器。如果缺少正確的哈希前綴或本地類名重命名,選擇器將無法匹配,表面會保持原樣,不會報錯或警告。

適用場景

適合希望在不修改 DSH 應用代碼的情況下改變界面風格、統一所有面板材質效果、替換模型選擇器和統計面板的開發者。插件通過純 CSS 覆蓋和客戶端腳本掛載實現,卸載後可完全恢復原狀。

注意事項

  • 插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證(MIT)
  • DSH 版本需 >= 0.1.7
  • 插件沒有內置構建步驟,lib/ 目錄已提交,可直接加載
  • 主題支持 Light 和 Dark 兩種主題

結語

dsh-glass-theme 通過純 CSS 覆蓋和客戶端腳本掛載,在不修改應用本體的情況下重繪了 DSH 的所有界面元素,提供了統一的 Apple Liquid Glass 材質系統。它支持重鍵 token 詞彙、替換模型選擇器、合併使用統計,並包含完整的可訪問性支持。如需查看源碼和文檔,可訪問插件目錄頁或 GitHub 倉庫。

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

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

小夜