将 DSH 设置界面归一为同一套设计语言:统一各设置页的排版、卡片、控件、焦点与动效,包括其他插件贡献的页面。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-settings-beautify
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:leogottadothebest/dsh-settings-beautify
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
一套贯穿 DSH 所有设置界面的设计语言。
它能做什么
DSH 的设置界面由大量插件组合而成,历史上每一页都说着略有不同的排版与表面语言——页面标题 16/18/22px 不一,解释文字 12/13/14px 不一,卡片圆角 8/10/12px 不一,控件各自有各自的高度与焦点样式。
dsh-settings-beautify 把所有设置页面统一到同一套设计语言上:
- 架构:每一页都由相同的三段层级构成——标题 → 解释 → 具体内容(通用设置保持偏好行形式,即同一层级关系的紧凑变体)。
- 排版:所有页面标题一个字号,所有解释一个字号,所有条目标题、条目解释各一个字号——无论页面由哪个插件贡献。
- 表面:统一的卡片圆角/描边/底色、统一的行、控件、焦点环、标签页、徽章与滚动条,全部由 DSH 自身的
--dsw-*token 驱动,浅色 / 深色 / 跟随系统主题自然生效。 - 动效:克制的悬停微动效与过渡,尊重
prefers-reduced-motion,可单独关闭。 - 可扩展:任何页面——包括其他插件贡献的页面(例如已归档对话列表)——只需在根节点加一个属性(
data-dshb-scan)即可套用同一设计语言,其余交给 DOM 归一化器处理。 - 无界面化:插件不会在设置导航栏添加任何条目——没有自己的设置页。偏好可选、仅存于
localStorage。
插件无需改动 DSH 源码:它观察设置面板,为每个结构角色打上稳定的 data-dshb-* 属性(内置类名是构建期哈希,不可依赖),再由作用域样式表在其上应用设计语言。
覆盖范围
| 界面 | 内置支持 |
|---|---|
| 设置外壳(导航栏、头部、关闭、滚动条) | ✅ |
| 通用 General —— 每一条偏好行(语言、外观、字号、回车行为、智能体预设、权限预设等) | ✅ |
| 模型 Models | ✅ |
| 智能体预设 Agent presets | ✅ |
| 插件 Plugins(标签页、卡片、配置字段) | ✅ |
| 插件市场 Plugin market(已安装清单页) | ✅ |
| 桌面 Desktop(配置文件、网络、通知) | ✅ |
任何在根节点添加 data-dshb-scan 的第三方页面(例如已归档对话页) |
✅ |
安装
从插件市场
dsh-settings-beautify 遵循 DSH Community Market 的包规范(dsh.bundle.patch + dsh.client 清单),可从市场安装,或使用:
dsh plugin --profile <profile> add dsh-settings-beautify
手动安装(开发)
pnpm add dsh-settings-beautify # 安装到当前 Profile 的包集合
# 并通过 Profile patch 声明 bundle 入口,例如:
# - insert:
# - id: dsh-settings-beautify
# name: dsh-settings-beautify
安装后重启 DSH Desktop(或刷新 Web 窗口)即自动生效——设置导航栏不会新增任何条目。
偏好(无界面化)
插件没有自己的设置页。偏好从浏览器 localStorage 的 dsh-settings-beautify:prefs 键读取:
| 键 | 取值 | 效果 |
|---|---|---|
enabled |
true / false |
应用设计语言,或恢复 DSH 原始外观。 |
density |
compact / default / comfortable |
行与列表间距。 |
motion |
true / false |
卡片悬停微动效。prefers-reduced-motion 始终优先。 |
默认值:{"enabled": true, "density": "default", "motion": true}。如需调整,在浏览器控制台执行:
window.DSHB.setPrefs({ density: "compact" }) // 或 { enabled: false }、{ motion: false }
不触碰任何主机文件或设置命名空间。
设计语言
完整规范——token、层级、间距/圆角/动效刻度,以及 data-dshb-* 属性契约——见 docs/DESIGN.zh.md。速览:
| 角色 | 字体 | 颜色 |
|---|---|---|
| 页面标题 | 18px / 600 / 26px | --dsw-alias-label-primary |
| 页面解释 | 13px / 400 / 20px | --dsw-alias-label-tertiary |
| 组标题 | 14px / 600 / 22px | --dsw-alias-label-primary |
| 条目标题 | 14px / 500 / 22px | --dsw-alias-label-primary |
| 条目解释 | 13px / 400 / 20px | --dsw-alias-label-tertiary |
| 正文 | 14px / 400 / 22px | --dsw-alias-label-primary |
| 辅助文字 | 12px / 400 / 18px | --dsw-alias-label-tertiary |
卡片:12px 圆角 · --dsw-alias-border-l2 · --dsw-alias-bg-layer-3(相对面板抬升)。控件:8px 圆角、36px 最小高度、品牌色焦点环。标题与下方注释小字之间的距离在所有被覆盖的页面上统一为 4px(--dshb-gap-title-desc,与 DSH 行内一致)。半径等均以 --dshb-* token 化,未来版本可平滑提供其他外观方案。
为其他插件页面接入
DOM 归一化器自动覆盖内置页面。对于你自己插件的页面,二选一:
- 在页面根节点添加
data-dshb-scan(被托管在设置对话框内的第三方节同样适用)——归一化器会用同样的标题/解释/卡片/行/控件规则泛化处理,标题 → 注释间距也会统一为 4px;或 - 直接使用属性(
data-dshb-page-title、data-dshb-item-title、data-dshb-card等)获得完全控制。
见扩展契约。
设计说明
插件刻意保持无界面化:只重绘设置界面本身。如果你更希望有一个可见的控制页,那是一个很小的后续改动——提个 issue,可以在偏好开关后面加上。
开发
pnpm install
pnpm check # 语法检查
pnpm test # DOM 归一化器的 jsdom 测试(86 条断言)
pnpm sync-styles # 由 lib/client.js 重新生成 lib/styles/settings.css
测试套件在 jsdom 中重建真实 DSH 设置 DOM(通用条目、模型卡片、插件标签页/字段、桌面分组、一个接入的第三方页面),并断言完整的 data-dshb-* 标记契约。
兼容性
- DSH Desktop 2.x(内置 Web UI)。归一化器是防御性的:无法识别的部分一律保持原样。
- 样式表只在设置面板作用域内生效;设置之外的界面不会被重绘。
安全
无网络请求、无主机 API、无文件读写、无远程代码。偏好仅存于 localStorage。见 SECURITY.zh.md。
许可证
MIT —— 见 LICENSE。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 6815
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 6815
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
omdsh-dev/DSH-better-sidebar★ 3318
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
ccch1mneyyy/dsh-TUI★ 2823
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 1695
右下角常驻的小鲸鱼余额挂件:显示余额、今日已用、每轮对话消耗与随机台词,带音效与设置菜单。
Devin-AXIS/deepseek-design#deepseek-idesign★ 720
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。