潮汐玻璃——给 DeepSeek Harness 的冰蓝玻璃主题,附带一组界面增强:单行状态 HUD 与用量看板、按回合绘制的子代理委派图、侧栏归档分页与实时筛选、输入框下方的模型/思考等级控件、每轮回答耗时。一个总开关控制 HUD、用量看板与委派图是否套用插件的玻璃材质,关闭后完整回落到 DSH 原生表面;主题叠在官方明暗配色之上而非另开一套配色。npm: dsh-tide-theme。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-tide-theme
# Release 预构建包
dsh plugin --profile web add "https://github.com/zdt3476/dsh-tide-theme/releases/download/v0.4.1/dsh-tide-theme-0.4.1.tgz"
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:zdt3476/dsh-tide-theme
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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-simplify-theme(极简主题),后更名为dsh-tide-theme(潮汐主题 · Tide Theme)。 如果你是从旧包升级过来的,请先卸载旧包再安装新包;本地配置需重新设置一次(存储键已随包名更新)。
Tide Theme 为 DSH 提供深海潮汐蓝的表面体系、清晰的文字层级与克制的信息密度,并完整保留宿主的对话、导航及分屏结构。
本文的功能截图由插件组件在隔离浏览器中使用演示数据渲染,用于展示组件样式;它们不代表当前用户会话或完整 DSH 应用的实际界面。真实宿主的布局与交互另外通过宿主结构契约测试验证。
设计基线
主题遵循一套固定的设计契约,而不是逐处调色。改动前先读 docs/ui-design-contract.md。
配色(6-3-1,单一 Token 来源)
| 占比 | 角色 | 暗色(深海暗潮) | 亮色(潮平岸阔) |
|---|---|---|---|
| 60% | 主画布 / 侧栏 / 对话视口 | #0b121e · #0e1726 |
#f5f8fc · #edf3fa |
| 30% | 卡片 Surface / 浮层 / 发丝描边 | #142034 · rgba(96,165,250,.16) |
#ffffff · rgba(37,99,235,.12) |
| 10% | 唯一强调色(潮汐蓝) | #38bdf8 / #60a5fa |
#1d4ed8 / #2563eb |
- 禁用纯黑
#000000:底色取自深海蓝灰,最暗处仍保留色相。 - 单一强调色、饱和度克制:状态色仅按语义扩展(成功
#047857/ 警戒#b45309/ 失败#dc2626),不引入第二主色。 - 无霓虹辉光、无蓝紫渐变:不使用
radial-gradient彩色光斑、drop-shadow发光或彩色box-shadow: 0 0 Npx;层次靠 0.5px 发丝边、明度台阶与融入背景的漫反射柔影建立。 - 对比度达标:正文与辅助文字满足 WCAG AA(≥ 4.5:1),主标题与核心读数按 AAA(≥ 7:1)取值。
字阶与读数
| 层级 | 字号 / 行高 | 用途 |
|---|---|---|
| KPI 读数 | 16px / 20px | 看板大指标(TPS、TTFT、耗时) |
| HUD 读数 | 13px / 20px | 底栏常驻指标 |
| 正文 | 12px / 16px | 常规信息与选项 |
| 辅助说明 | 11px / 14px | 提示、单位、时间戳 |
- 度量读数一律等宽:TPS、Token、耗时、百分比使用
Geist Mono→JetBrains Mono→ui-monospace的字体栈,并开启font-variant-numeric: tabular-nums与font-feature-settings: "tnum" 1,数值刷新时零抖动。 - 只使用整数像素字号:不使用 10.5px / 11.5px 一类半像素值,避免 1x 屏子像素发虚。
- 不引入网络字体:界面文本走宿主系统无衬线字体。
间距与状态
- 8pt 步长:4px(图标与读数)/ 8px(HUD 单元格)/ 12px(卡片网格)/ 16px(浮层内衬)/ 24px(大区块)。
- 状态完整:加载中(与正式尺寸 1:1 的骨架条)、空数据、错误/重试、超长文本截断(
min-width: 0+ellipsis)、Hover / Active / Focus-visible / Disabled 均有独立实现。 - 焦点可见:所有可聚焦控件(标签页、开关、步进器、重置按钮、停止按钮)均提供 2px 语义焦点环。
- 视口防御:看板浮层限制
max-height: min(560px, calc(100vh - 48px))并可内部滚动,矮视口不会截断内容。
主题材质开关
底栏 HUD、用量看板与委派图这三个自绘组件,统一跟随插件设置里的主题材质开关:
| 开关 | 三个组件的外观 | 预览 |
|---|---|---|
| 开启(默认) | 套用潮汐材质:深海哑光微透表面、0.5px 发丝描边、自然漫反射柔影、克制的语义状态点 | 见下方各功能的「主题」图 |
| 关闭 | 全部回落到 DSH 原生 token 表面(--dsw-specific-menu / --dsw-alias-bg-layer-* / --dsw-elevation-*),与宿主外观完全一致 |
见下方各功能的「原生」图 |
开关位于 设置 → 插件 → 潮汐主题 → 潮汐主题材质,实时生效、无需重启。明暗两套配色各自成立,切换深浅色不会冷暖混用。
核心特性一览
1. 底栏性能 HUD 与用量看板
取代原生埋在弹窗里的统计胶囊,把关键运行指标固定在任何时候都看得见的位置:
- 单行常驻 HUD:会话规模、上下文容量、真实端到端 TPS、缓存命中率、模型累计耗时五项一行排布,形制对齐宿主原生 TodoPanel(36px 高、
radius-lg圆角)。窄屏按 760px / 640px 两级断点自动收窄,绝不截断读数。 - 加载态不突跳:数据尚未就绪时渲染与正式高度一致的骨架条,数据到达后原位替换,不产生累积布局位移。
- 严格计入首字延迟(TTFT)的真实 TPS:原生口径只算纯解码时间(会出现 200+ t/s 的虚高值);本插件把网络往返与推理思考一并计入,还原真实生成速率。
- 上下文容量三档语义色:≤50% 安全绿、50–75% 提醒琥珀、>75% 警戒红,进度条与徽章同步换色。
- 上下文压缩即时刷新:接入
projectedTokens与contextBreakdown,压缩发生后容量读数立刻下降,不会停在旧采样值。 - 点击展开用量看板:系统/工具/消息三段式容量条、四张性能 KPI 卡、Token 计费构成表与会话耗时拆解。浮窗水平居中于 HUD、底边严丝合缝贴住 HUD 顶边,空间不足时自动翻转到下方或贴视口底;内容超高时浮窗内部滚动。
2. Agent Graph 子代理拓扑
无论工作步骤是否被宿主折叠收起,子代理的派发记录始终常驻可见:
- 弧形扇出连线:SVG 按真实几何绘制——外侧分支从枢纽侧缘引出,内侧从底部引出,以贝塞尔曲线落到卡片顶边;有子代理运行时用 1px 语义色导线配合虚线流动表示活动,不加外发光。卡片换行时只画主干,避免连线穿过上一行卡片。
- 横向 Agent 卡片阵列:网格按可用容器宽度排布,每张卡片保留标题、模型、状态与实际步骤数;步骤数不代表已完成的任务清单。
- 四色职能映射:按标题关键词把子代理归到 Research(天青)/ Code(绿)/ Analyze(琥珀)/ 其它(蓝),图标以单色前景 + 同色低透明度底呈现,不整卡套艳色渐变;关闭主题材质后统一回落为中性图标。
- 多轮次递增时序防冲突:会话级单调递增编号(第 1 次委派、第 2 次委派…),配合行级粘性绑定(
claimedByRow),杜绝跨轮次编号重置或盗用旧图。 - 宁可缺省也不张冠李戴:无法确定某个工具行对应哪个子会话时不显示该节点(失败或仍在排队的
spawn_teammate调用不会凭空占位),而不是按顺序猜一个。未匹配的错误本身仍原样留在原生工具行里。 - 交互:点击卡片打开对应子会话;支持取消的运行中卡片提供独立「停止」按钮,停止操作不触发会话跳转。
3. 侧栏独立小节置顶
告别工作区文件夹混杂堆叠,用小节与发丝分割线重塑清晰层级:
- 小节标头:置顶与普通文件夹分立为
📌 置顶 (N)与工作区 (M)两小节,标头挂在工作区列表容器内部(不会漂到搜索框上方)。 - 置顶标识:置顶项带语义琥珀色
★前缀,与普通项之间用发丝虚线隔开。 - 选中侧条:当前工作区左侧出现 3px 品牌蓝实心竖条,无外发光。
- 未归档 / 归档分页:双标签页切换活跃状态,与宿主视图状态双向同步。
- 实时筛选框:即输即搜,命中会话时保留其工作区组头。
- 数量上限独立可调:置顶与未置顶的折叠上限分别配置(置顶设为 0 表示不限,全部常驻)。
4. 插件页可视化配置面板
所有开关与步进器直接挂在 DSH 插件设置页,改动即时保存到 localStorage,无需重启或手改配置文件:
- 设置卡片套用与浮层同源的潮汐 Surface,明暗两套各自成立。
- 分组标题、各项说明、开关与步进器均复用语义 token,无硬编码色值。
5. 输入区控件与体验细节
- 模型与思考等级控件:输入框左下方提供供应商分类的模型面板与平滑思考等级(Reasoning Effort)滑块。列表按供应商分组、带粘性组头,模型名后标注可用档位数;超长模型名单行截断并附完整 Tooltip:
- 权限预设切换:输入框右下方一行切换只读 / 可写 / 全放行等权限预设。
- 每轮耗时徽标:每轮回复的操作栏尾部常驻该轮端到端实际耗时。
- 克制的动效:所有动画尊重
prefers-reduced-motion,减弱动态时停止脉冲与流动。
安装
方式 1:通过官方插件市场(推荐)
在 DSH 插件市场搜索 dsh-tide-theme(显示名「潮汐主题」),点击安装后重启客户端。
方式 2:通过命令行安装
# npm
dsh plugin --profile desktop add dsh-tide-theme
# GitHub 源码
dsh plugin --profile desktop add git+https://github.com/zdt3476/dsh-tide-theme.git
# 本地开发软链(link)
dsh plugin --profile desktop add link:"$PWD"
# GitHub Release 预构建包
dsh plugin --profile desktop add https://github.com/zdt3476/dsh-tide-theme/releases/download/v0.5.0/dsh-tide-theme-0.5.0.tgz
安装后在 设置 → 插件 中启用,并按下 Cmd/Ctrl + R 重载客户端。
本地开发与测试
pnpm install
pnpm test # TypeScript 类型检查 + Vitest 单元测试(110 tests)
pnpm build # 编译产出 lib/index.js (Host) 与 lib/client.js (Client)
pnpm check # test + build 全量流水线检查
# 浏览器契约测试(真实 Chromium,54 项)
# 注意:必须逐个列出测试文件。tests/client/ 下还有 dock-stats-fixture.mjs 等夹具,
# 用 glob 会把夹具当成测试文件从而误报失败。
PLAYWRIGHT_MODULE=<playwright/index.mjs> CHROMIUM_EXECUTABLE=<chromium> \
node --test --test-concurrency=1 \
tests/client/dock-stats-browser.mjs \
tests/client/host-layout-browser.mjs \
tests/client/plugin-settings-browser.mjs \
tests/client/theme-reference-browser.mjs \
tests/client/sidebar-section-browser.mjs \
tests/client/theme-lifecycle-browser.mjs \
tests/client/delegation-browser.mjs
# 重出 README / 市场画廊截图:用插件组件在真实浏览器里渲染,不是手绘。
# 一次生成「明暗 × 主题开关」四态共 16 张截图(加上应用图标共 17 张参考图)。
PLAYWRIGHT_MODULE=<playwright/index.mjs> node scripts/capture-docs-screenshots.mjs
截图命名约定
| 文件名 | 含义 |
|---|---|
<name>-dark.png / <name>-light.png |
暗色 / 亮色,主题材质开启 |
<name>-dark-native.png / <name>-light-native.png |
暗色 / 亮色,主题材质关闭(回落 DSH 原生外观) |
目录结构
├── src/
│ ├── client/
│ │ ├── composer-stats.ts # 容量占用、真实 TPS、缓存命中算法模型
│ │ ├── dock-stats.ts # 底栏单行 HUD、骨架态与用量看板浮窗
│ │ ├── delegation-panel.ts # Agent Graph 拓扑、母线连线与四色卡片映射
│ │ ├── popup.ts # 浮窗定位(居中 + 边框贴合 + 边界翻转)
│ │ ├── sidebar-groups.ts # 侧栏独立小节标头、置顶排序与数量控制
│ │ ├── sidebar-tabs.ts # 侧栏未归档/归档分页与筛选框
│ │ ├── plugin-config.ts # 插件全局配置数据模型与持久化驱动
│ │ ├── plugin-settings.ts # 插件页可视化设置面板
│ │ ├── tokens.ts # 潮汐主题 Token 覆盖唯一定义(亮/暗成对)
│ │ └── styles.ts # 全部组件运行期样式表 + 主题材质门控层
│ └── host/
│ └── index.ts # Host 插件规范声明
├── docs/
│ ├── images/ # 真实渲染的明暗 × 主题开关四态截图
│ └── ui-design-contract.md # 布局、配色、字阶与验收矩阵契约
├── scripts/capture-docs-screenshots.mjs # 用插件组件重出全部截图
├── tests/client/native-tokens.json # 宿主原生 token 基准(用于关态截图与契约比对)
└── icon.png # 256x256 专属应用图标
开源许可
MIT License © 2026 zdt3476
链接
同类插件
elysia395/dsh-wallpaper-engine★ 4500
前置要求:DeepSeek Harness 0.1.5-rc.1+(DSH Desktop ≥ 2.0.7)且 dsh-better-sidebar ≥ 0.19.0,安装或更新本插件前请先更新两者。把本机 Wallpaper Engine 的 Video/Web 壁纸实时播放到聊天界面后方,Scene 壁纸由内置渲染器输出完整场景帧,支持内容分级/类型过滤、自定义壁纸上传与 iOS 液态玻璃设置窗口。
Small-tailqwq/dsh-deep-whale#maid-atelier★ 3000
DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。
Nwflower/dsh-claude-style★ 434
为 DSH Web GUI 复刻 Claude Code Desktop 的视觉与交互——象牙白/暖黑双画布、陶烬橙强调色、三字体排版、权限分段控件与品牌切换,以 CSS 覆盖与客户端 DOM override 实现。
d-dev0101/open-sea-skin★ 387
实时 WebGPU 海洋皮肤,可快捷调节波浪、日光、玻璃不透明度与自动昼夜循环。
kingOfSoySauce/dsh-liang-skin★ 356
自适应推理等级滑块皮肤,将当前模型可用档位映射到 0–30 视觉强度,并同步人物、背景和界面配色。
RevolutionLA/dsh-dream-skin★ 299
一键换肤插件:8 套原创主题、背景壁纸(透明度/模糊)、强调色、主题包导入/导出+分享链接、收藏与随机,纯原生 token 系统接入。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。