DSH UI Harmonizer:用官方設計令牌統一 Web 界面

前言

DeepSeek Harness(DSH)的 Web 端支持通過插件擴展界面與能力。裝多個插件後,常見問題是:官方界面仍有未完成或自相矛盾的細節,第三方設置頁標題、間距、圖標各寫各的,better-sidebar、widgets 等插件之間還會出現樣式衝突。逐個改插件源碼成本高,也不利於卸載回退。

下面介紹 Physicolor 維護的客戶端插件 dsh-ui-harmonizer(npm 包名 dsh-ui-harmonizer)。它不改會話日誌、不增加模型工具,只在瀏覽器側通過官方 slot 與 --dsw-* 語義令牌做 CSS 覆蓋和運行時 DOM 協調,把界面拉回官方設計語言,並可一鍵卸載、不留殘留。

這是什麼

dsh-ui-harmonizer 是 純客戶端 DSH bundle 插件。宿主(node)側爲 no-op,所有改動發生在瀏覽器半側。它通過 settings.sectionsettings.general.itemshell.overlay 等官方 slot 注入樣式與邏輯,不修改插件源碼。

  • 維護者:Physicolor
  • 分類:客戶端(dsh.client.platform: web
  • 許可證:MIT
  • 當前版本:v0.8.0
  • 兼容:DeepSeek Harness 0.1.0-rc.6 及後續兼容的 0.1.x

核心功能

官方 UI 規範化

針對官方界面中不一致或未完成的區域,插件做了統一處理:

能力 說明
單行頁頭 將對話 / 軌跡選擇器併入標題行,頁頭收攏爲單行
按鈕膠囊族 會話日誌、widgets、開關按鈕統一爲 32px 膠囊樣式
右側欄貼邊圓角矩形 better-sidebar 面板 overlay 佈局協調,頁頭保持固定
統一設置頁頭 標題 18/600、描述 13px、細線分隔
原生 title 工具提示 僅帶 HTML title 的元素改爲官方深色 Tooltip 氣泡,而非系統原生彈窗

插件視覺協調

對已知的第三方插件做針對性樣式對齊:

目標 做法
dsh-better-sidebar 開關按鈕膠囊化、面板背景統一、佈局與過渡協調
dsh-widgets 統計膠囊族對齊、頁頭工具區對齊
第三方設置頁 自動補全標題、去掉冗餘圖標、統一間距

已知協調對象還包括 dsh-notificationdshmarket。插件通過官方 slot 順序共存,卸載或禁用後頁面恢復默認,無殘留。

設置頁自動規範化

當第三方插件向 settings.section 註冊的頁面不符合官方規範時,插件會自動修正:

檢查項 修正
缺少頁面標題 從導航標籤或已知映射注入 18/600 標題
標題旁冗餘圖標 移除標題行 logo,保留純文本
標題與描述間距過緊 統一爲 4px 間距 + 細線分隔
字號不一致 標題 18/600,描述 13/20,加 border-bottom

UI 自定義

設置 → 通用 下會出現「UI Customization」區塊,支持即時調整:

  • 對話區寬度
  • Markdown 字號
  • 工作區縮放
  • UI 字體棧
  • 圓角卡片(rounded card):對話區以圓角左上 + 陰影呈現爲卡片,隨側欄寬度與詳情列自動伸縮

v0.8.0 起,圓角卡片模式會包裹會話頁頭;better-sidebar 開關簇在面板關閉時有不透明底座,打開時收攏爲緊湊浮動芯片。

架構要點

  • 零模型成本:不調用模型,不改會話數據。
  • 官方設計令牌:樣式基於 --dsw-*,自動跟隨淺色 / 深色主題。
  • 雙通道注入:CSS Modules 靜態規則 + 動態 <style data-plugin> 標籤。
  • 可逆清理:fiber-effect disposer 管理副作用,卸載即恢復。

安裝與啓用

通過 DSH 插件市場(npm)安裝:

dsh plugin --profile web add dsh-ui-harmonizer

安裝後需在瀏覽器中 硬刷新(Ctrl+Shift+R)。刷新後,在 設置 → 通用 中應能看到「UI Customization」區塊。

本地開發可用 link 方式掛載(README 示例路徑爲開發者本機目錄,按需替換):

dsh plugin --profile web add link:D:/dsh-home/plugins/harness-ui-enhancer

典型用法

安裝並硬刷新後,無需額外命令。界面規範化與插件協調在後臺自動生效。

若需調整視覺參數,打開 設置 → 通用 → UI Customization,按需修改對話寬度、Markdown 字號、工作區縮放、字體棧或圓角卡片開關,改動即時生效。

若某子樹需要退出原生 title 的 Tooltip 統一(v0.8.0),可在祖先元素上設置 data-enhc-no-tooltip,該子樹恢復使用原始 title 行爲。

適用場景與注意

適合誰

  • 同時安裝多個 DSH Web 插件,界面風格雜亂、設置頁排版不統一
  • 希望在不改插件源碼的前提下,把 Web UI 對齊官方 --dsw-* 設計語言
  • 需要可調對話區寬度、字號、圓角卡片等個性化選項,且要求卸載可回退

注意事項

  1. 插件以當前 DSH 進程權限運行,安裝前建議閱讀 GitHub 倉庫 源碼並確認 MIT 許可證。
  2. 僅適用於 Web profile(--profile web),不提供宿主側能力。
  3. 路線圖顯示官方 UI 規範化、插件兼容協調、統一視覺風格(含圓角卡片、Tooltip 統一等)仍在持續迭代;Liquid Glass 等材質層爲可選實驗方向,尚未作爲默認能力發佈。
  4. SkillHub 目錄頁與 GitHub 由社區維護,與 DeepSeek / 幻方無官方從屬關係;安裝命令以 README 與目錄頁爲準,勿憑包名自行拼接 github:owner/repo 形式。

結尾

dsh-ui-harmonizer 把「多插件並存時的 UI 摩擦」收斂到一層可卸載的客戶端拋光層:規範化官方未完成細節、協調 better-sidebar / widgets 等已知插件、自動修正設置頁排版,並在設置中提供可即時調整的寬度、字號與圓角卡片。若你正在堆疊 DSH Web 插件,可以先裝這一個,再硬刷新看效果。

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

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

小夜