🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

雾蓝轻主题 EatMyLunch/dsh-bloom-lite

DeepSeek Harness
EatMyLunch17 天前有提交已提供中文文档扫描:未发现敏感能力

用两条 CSS 规则给界面换上莫兰迪雾蓝配色

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add EatMyLunch/dsh-bloom-lite
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/11/03·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 17 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness Web UI 用的莫兰迪雾蓝主题,两条规则、零运行时,比原版小 75 倍,不用观察器、定时器或轮询。

README

由 DeepSeek 最新模型翻译生成
Bloom Lite 给 DeepSeek Harness Web UI 用的莫兰迪雾蓝主题,从 dsh-bloom-theme 重写而来,目标只有一个:极致性能。同一套配色,运行时开销全部去掉。 整个主题就是两条 CSS 规则,重新指向 Harness 自己的颜色 token。不覆盖组件,不用 !important,没有观察器,没有动画,没有滤镜,没有任何逐帧工作。 | | dsh-bloom-theme 0.18.1 | Bloom Lite | | 随包发布的客户端产物 | 206,024 B | 2,955 B | | 注入的 style 标签 | 3 | 1 | | 运行时求值的颜色 / 变体 | 10 套调色板 | 1 套调色板,构建时解析 | | backdrop-filter(毛玻璃模糊) | 33 | 0 | | @keyframes | 12 | 0 | | transition: | 20 | 0 | | will-change | 4 | 0 | | addEventListener | 18 | 0 | | MutationObserver | 2 | 0 | | requestAnimationFrame | 1 | 0 | | setInterval / setTimeout | 1 / 12 | 0 / 0 |
展开完整文档(README 剩余 1 节)
Bloom Lite

给 DeepSeek Harness Web UI 用的莫兰迪雾蓝主题,从 dsh-bloom-theme 重写而来,目标只有一个:极致性能。同一套配色,运行时开销全部去掉。

整个主题就是两条 CSS 规则,重新指向 Harness 自己的颜色 token。不覆盖组件,不用 !important,没有观察器,没有动画,没有滤镜,没有任何逐帧工作。

| | dsh-bloom-theme 0.18.1 | Bloom Lite |
| 随包发布的客户端产物 | 206,024 B | 2,955 B |
| 注入的 style 标签 | 3 | 1 |
| 运行时求值的颜色 / 变体 | 10 套调色板 | 1 套调色板,构建时解析 |
| backdrop-filter(毛玻璃模糊) | 33 | 0 |
| @keyframes | 12 | 0 |
| transition: | 20 | 0 |
| will-change | 4 | 0 |
| addEventListener | 18 | 0 |
| MutationObserver | 2 | 0 |
| requestAnimationFrame | 1 | 0 |
| setInterval / setTimeout | 1 / 12 | 0 / 0 |
| localStorage 读写 | 10 | 0 |
| 宿主 HTTP 路由 / 服务注入 | /api/bloom/dsh-version + inject: ['webServer'] | 无,inject: [] |
| 插件占用的 DOM | 3 个 style 标签 + 切换胶囊 + 3 个监听器 | 1 个 style 标签 |
| !important 声明 | 有 | 0 |

原版数据是 dsh-bloom-theme@0.18.1 已发布的 lib/client.js(206,024 字节)中实际出现的次数。Lite 的数据来自本包的构建产物。

工作原理,以及为什么这样更快

Harness 约 2,400 处 --dsw-alias- 颜色决策,本来就都通过一小撮原始 --dsw-static- 色阶来解析。重新指向这些色阶,就能给整个应用换色——亮色和暗色、每个面板、每种状态——完全不用碰任何组件规则。

* 规则 1 把 56 个原始色阶档位(neutral-bluish-、neutral-、blue-、deepseek-)改写成 Bloom 莫兰迪调色板,重新指向亮色强调色对,并把宿主用纯白绘制的表面——画布、三个面板层和侧边栏列——设成 Bloom 自己的亮色锚点。
* 规则 2 为暗色模式重新指向强调色对。

层叠事实,对照已安装的 Harness 样式表核实过,不是想当然:

| 宿主规则 | 优先级 | 我们的规则 | 优先级 |
| body{--dsw-static-}(静态色 + 亮色别名) | 0,0,1 | html body{...} | 0,0,2 |
| body[data-ds-dark-theme]{--dsw-alias-} | 0,1,1 | html body[data-ds-dark-theme]{...} | 0,1,2 |

我们的两条规则靠普通优先级就能胜出,所以样式表永远不需要 !important——亮暗切换也照常工作,因为规则 2 只动强调色,其余暗色别名仍然通过我们已经改过色相的色阶解析。

每个会话的开销:1 个元素,1 次 CSS 解析(约 2.30 KiB),1 次层叠。 style 节点通过 ctx.effect 注册,所以卸载插件时它会一并移除;标签上带有 data-plugin / data-plugin-css,标明属于本插件:Harness 的模块 loader 在生成客户端模块时,会接管它找到的每一个未打标签的 (dsh-client-modules/lib/client.js),并在该模块卸载时删除 style[data-plugin=<id>]。因此,一个无人认领的标签可能被交给别的模块,再随它一起被删掉。

强调色值得单独说明:Host 定义了 --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary),所以只改 brand-primary,就能让所有主按钮、复选框、单选框和启动加载动画变成雾蓝色——而且依然不需要写任何组件规则。

重新调色

调色板是生成的,不是手写的:

node _tools/gen.mjs # re-reads the installed Host ramps, re-hues them -> src/client.css
node _tools/build.mjs # inlines + minifies -> client.js, and runs the guards

_tools/gen.mjs 把 Host 色阶的每一级转成 OKLab,移到色相 240(雾蓝),并设一个彩度上限,同时保留每一级的明度——所以 Host 设计好的对比度在重新调色后依然成立。浅色表面是例外:Host 用同一个纯白色阶绘制画布、面板、卡片和浮层,生成器有意保留这个明度,因此在 token 层把它们设成 Bloom 自己的浅色锚点——画布 oklch(96.5% 0.01 240),面板层 oklch(97.6%/98.4%/99% 0.008/0.006/0.004 240),侧边栏 oklch(94.5% 0.012 240)——让面板比画布更亮,雾色读作页面,内容依然读作纸张。

| 配对 | Bloom Lite | 结论 |
| 浅色正文文字在雾色画布上 | 17.16:1 | AA |
| 浅色次级文字在画布上 | 5.24:1 | AA |
| 浅色三级文字在画布上 | 3.37:1 | AA-large |
| 浅色正文文字在面板上 | 17.64:1 | AA |
| 浅色次级文字在面板上 | 5.39:1 | AA |
| 浅色三级文字在面板上 | 3.46:1 | AA-large |
| 浅色文字在浮层中 | 18.34:1 | AA |
| 浅色侧边栏文字 | 4.92:1 | AA |
| 浅色主按钮标签(白色在 #2078ab 上) | 4.84:1 | AA |
| 深色正文文字在基底上 | 17.45:1 | AA |
| 深色次级文字在基底上 | 12.10:1 | AA |
| 深色三级文字在基底上 | 8.53:1 | AA |
| 深色文字在抬升面板上 | 15.02:1 | AA |
| 深色主按钮标签(#07121b 在 #5dabe0 上) | 7.53:1 | AA |

改 _tools/gen.mjs 顶部的 HUE(或三个彩度上限 C_NEUTRAL / C_GRAY / C_ACCENT),再跑一遍两个脚本,就能换一种氛围。

构建拒绝回退

只要样式表里出现以下内容,_tools/build.mjs 就让构建失败:!important、任何 @ 规则、animation、transition、filter / backdrop-filter、box-shadow、text-shadow、will-change、渐变或 url() 图片,或类/ID 选择器。它还会断言规则/声明的精确数量,并确认产出的 client.js 能解析。一个会掉帧的主题,不可能从这个仓库里被意外发布出去。

有意移除

玻璃面板(在大面积表面上用 backdrop-filter)、微动效、变体切换芯片及其监听器、另外 9 套调色板、appearance/think-tag watchers、Host 版本路由、webServer 注入、@deepseek-ai/dsh-client-ui-conversation 激活依赖、ZH/EN 语言字符串(已经没有插件自有的文本需要翻译)、更新徽标。这些要么是持续的主线程工作,要么是必须保持同步的状态;主题两样都不需要。

包结构

index.js host half - export function apply() {}, nothing else
client.js shipped client half (built: stylesheet inlined, minified)
cordis.patch.yml bundle patch, inserts the row
src/runtime.js hand-written client source template
src/client.css generated stylesheet (readable, one declaration per line)
_tools/gen.mjs palette generator + contrast audit
_tools/build.mjs inliner, minifier, performance guards

安装 / 更新:

git clone https://github.com/EatMyLunch/dsh-bloom-lite.git

然后把这份检出作为 bundle 加入当前配置档 —— Harness 的插件管理器接收绝对目录路径:

plugin_manager { action: "install_bundle", target: "C:/path/to/dsh-bloom-lite" }

没有构建步骤,也没有依赖:client.js 提交时已经构建好,所以 Harness 提供的字节与本仓库审阅的完全一致。删掉检出目录,主题就没了。

验证状态

已验证:交付的 client.js 的 JavaScript 语法(new Function 解析门)、manifest 与 patch 的有效性、上面的静态层叠算术,以及对比度表(离线计算,基于已安装的 Host 色阶,使用 CSS Color 4 OKLab 转换)。

已实机验证:plugin_manager 对该目录报告 application: applied,配置档现在带有 bundle 行 include:bloom-lite -> dsh-bloom-lite,运行中的 Harness 在 GET /plugins/??dsh-bloom-lite/client.js&rev=<artifact-rev> 提供该产物,返回 200、text/javascript; charset=utf-8。除 Host 自带的 ;\n 分隔符和一行 sourceMappingURL 尾部外,提供的响应体与本包的 client.js 逐字节一致,所以浏览器执行的代码正是构建守卫批准的那份。

未验证:渲染结果。 此环境没有浏览器控制能力,因此没有截图,也没有读取计算样式。刷新页面即可看到主题;明/暗跟随 Harness 自己的开关。

致谢与许可

MIT —— 见 LICENSE。

配色是对 webkubor 的 dsh-bloom-theme(同为 MIT)的重新调色:本包保留该主题的莫兰迪雾蓝意图及其明度关系,丢掉一切消耗运行时成本的东西。它重写的色阶属于 DeepSeek Harness。

作者:EatMyLunch。
预览分享卡片长什么样 ↓EatMyLunch/dsh-bloom-lite
分享 · DeepSeek Harness Hub
EatMyLunch/dsh-bloom-lite

用两条 CSS 规则给界面换上莫兰迪雾蓝配色

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部