dsh-apple-hig:用 Apple HIG 疊加校正 DeepSeek Harness 桌面界面

前言

DeepSeek Harness(DSH)把能力拆成插件,界面本身也可以靠插件微調,而不必改宿主源碼。日常寫 Harness、長時間盯對話頁時,常見痛點是:鍵盤焦點環在基座 CSS 裏實際不可見、淺色主題下部分說明文字對比度低於 WCAG 建議、輸入卡與正文寬度對不齊、側欄行高和命中區不一致。換一套全局「玻璃」主題插件又容易和別的換裝搶同一層。

下面介紹維護者 Yu-jianhai 發佈的 dsh-apple-hig(當前版本 0.6.1,MIT 許可)。它按 Apple Human Interface Guidelines(HIG)做 token + CSS 疊加:不改功能佈局,每一檔可單獨關閉,卸載後界面恢復 DSH 原樣。社區目錄 SkillHub 將其歸類爲「趣味換裝」;倉庫地址爲 https://github.com/Yu-jianhai/dsh-apple-hig。

這是什麼

dsh-apple-hig 是僅作用於 DSH 客戶端 的疊加層插件(inject: ['slots','theme']),覆蓋範圍對應方案裏的 L0(token)、L1(排版)、L2(材質與形狀)、L3(佈局)。它不替換宿主邏輯,只在運行時通過 theme.overrideTokens、設置頁插槽和門控 CSS 改寫視覺 token 與樣式。

插件要求 DSH 引擎 >=0.2.0-rc.1 <0.3.0-0,Node >=20。偏好保存在 localStorage['dsh-apple-hig:v1'],字段校驗失敗會回落默認,避免壞 JSON 導致插件無法啓動。

核心功能

無障礙與文字(L0 / L1)

開啓「焦點環」後,將 --dsw-focus-ring-color 從透明改爲主色別名,並把 --dsw-focus-ring-width 從 2px 調到 3px,解決基座裏焦點環 token 已定義爲 transparent、fallback 永不生效的問題。

「文字對比度」在淺色主題下把三級、說明文字色加深,使對比度從約 3.71:1 / 2.13:1 提升到約 5.13:1 / 4.84:1;深色檔對已達標顏色寫回原值。倉庫提供 node tools/contrast.mjs 做驗收。

「品牌字體歸一」讓品牌位回落正文字體棧,避免 Montserrat light 等與 HIG「少用 light 字重」衝突。「字體預設」可在 native(Windows 原生感)、apple(SF Pro 優先)或 off(不覆蓋)之間選擇;只動 --dsh-font-family-text-default,不改用戶在設置裏選過的 --dsh-font-family-text,字號也不改。

材質、圓角與間距(L2)

「控件材質」僅給 composer 輸入卡 加半透明與 backdrop-filter 玻璃效果,並補側欄、狀態欄 0.5px 分隔線;側欄背後不用 blur,避免無意義的 GPU 開銷。文檔明確不與 dsh-plugin-liquid-glass 搶整窗貼膜。

「連續圓角梯度」統一調整六個 --dsw-radius-* token;「間距節奏」抬升對話流默認行距、輸入卡與側欄內邊距,並加寬內容區最窄留白。可選「squircle 圓角」使用 corner-shape: superellipse(1.2),默認關閉(Chromium 支持不確定)。

佈局與控件形態(L3)

「頂欄緊湊 + 分段標籤」壓縮頂欄高度,並把視圖切換從下劃線標籤改爲分段控件樣式,保留 role / aria-selected 與鍵盤導航。

「閱讀寬度對齊」讓正文與輸入卡共用 min(calc(100% - 40px), 780px),邊緣對齊。

「底部讀數行統一」整理 [data-composer-dock] 內統計、費用明細與會話費用等讀數的字號與盒型(真實讀數行在此,而非無人註冊的 [data-shell-bottom] 空槽)。

「控件行統一」把輸入卡下方多來源芯片統一到 26px 高、12px/500 字重等幾何規則,不覆蓋各插件的狀態強調色。

「側欄行高與命中區」統一列表行高、放大行內動作命中區、區分選中與 hover,並規範用量卡數字樣式。

「切換動畫」調整側欄收展緩動,並在換會話時爲內容區加短淡入;關閉該開關會撤掉 MutationObserver。系統開啓 prefers-reduced-motion: reduce 時,「減少動態效果」會把 animation/transition 時長壓到 0.01ms,且不凍結加載轉圈的 iteration-count。

各開關默認值與 README 第 3 節表格一致;帶「看得見」字樣的項對應文檔中標註的視覺改動。

安裝與啓用

README 說明:維護者環境中沒有可用的 dsh plugin CLI,desktop profile 裏同類插件採用 link:<源碼目錄> + dsh.profile.bundles + node_modules junction 的方式掛載。倉庫提供 install.mjs 復刻這三步(默認 dry-run,寫文件前會備份 profile 的 package.json)。

在插件包根目錄(與 install.mjs 同級)執行:

node install.mjs
node install.mjs --apply

可選指定 profile 路徑:

node install.mjs --profile "~/.dsh/profiles/desktop"

卸載:

node install.mjs --apply --uninstall

執行 --apply 後,必須完全退出並重啓 DSH Desktop(profile 中 hmr 爲 disabled,改插件不會熱更新)。啓動後應在「設置 → 插件」看到 dsh-apple-hig,側欄或對話頁設置裏出現 Apple 規範 一節。

SkillHub 目錄頁 還提供「發送給 DeepSeek Harness 安裝」的說明,可讓 Harness 按 Yu-jianhai/dsh-apple-hig 讀取並安裝;具體步驟以你當前 DSH 版本的插件機制爲準。安裝前請自行查看倉庫源碼與 MIT 許可證——插件與 DSH 進程同權限運行。

典型用法

在設置裏按需開關

路徑:設置 → 插件 → Apple 規範。每個開關獨立建/撤 token 層,關掉即恢復 DSH 原值。例如只想保留對比度與焦點環、關閉頂欄分段控件,可逐項關閉帶「看得見」的 L3 項,而保留「焦點環」「文字對比度」。

macOS 上常把「字體預設」設爲 apple,Windows 上默認 native;若已與系統字體策略衝突,設爲 off。

運行期調試(可選)

瀏覽器控制台可用:

window.dshAppleHig.get()
window.dshAppleHig.layers()
window.dshAppleHig.set({ /* 字段見 get() 返回 */ })
window.dshAppleHig.reset()

改偏好後插件會先撤銷舊 token 層再建新層,避免殘留。

維護者自檢命令

在插件包內(需已安裝依賴環境):

node tools/contrast.mjs
node test/boot-smoke.mjs

check 腳本對應 boot-smoke.mjs,用於 bundle 與默認開關層的冒煙斷言。

適用場景與注意

適合:希望在 不改佈局、不重排功能 的前提下,讓 DSH 桌面端更接近 HIG 的可訪問性、排版與控件一致性;與「整窗 liquid glass」類插件並存時,只想要 composer 卡一層玻璃的場景。

注意:

  • 只覆蓋 DSH 內置淺/深主題;第三方主題若重定義 label 相關 token,本插件覆蓋層仍在其上。
  • 不處理 Windows 高對比度 forced-colors。
  • 底部讀數行、芯片行部分選擇器依賴其他插件類名(如 cost meter、文獻、記憶等);對方改名後對應規則會靜默失效。
  • 側欄寬度受 dsh-client-ui-layout 內聯 grid-template-columns 約束,本插件 不改側欄寬度,需寬一點請用宿主自帶拖曳。
  • 部分組件級間距變量在元素自身聲明,插件用 CSS 特異性或只改默認值,無法也不應強行 !important 壓平宿主特例。

結尾

dsh-apple-hig 把 Apple HIG 裏可落地的部分拆成多檔獨立開關:從焦點環、對比度、字體,到輸入卡材質、分段控件、讀數行與側欄命中區,再到換會話動畫,全部通過 token 與 CSS 疊加完成,卸載即還原。若要瀏覽簡介或跟進版本,可看社區目錄 https://www.skillhub.cn/plugins/Yu-jianhai/dsh-apple-hig 與 GitHub 倉庫 https://github.com/Yu-jianhai/dsh-apple-hig。

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

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

小夜