DSH 主题插件:Bloom 莫兰迪中国风配色,OKLCH 调色、明暗双主题、顶栏一键切换,实测达 WCAG AA。 / A DSH theme plugin: Morandi Chinese-style palettes, OKLCH…
49.7/100
综合分
43
GitHub 星标
2,354
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-bloom-themenpm 源 · dsh-bloom-theme 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-bloom-theme @ 0.18.5
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 09:05:12
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 22 处,展示前 22 条)
- 读取本地文件lib/index.js:38
const runtime = JSON.parse(readFileSync(runtimePath, 'utf8')); - 读取本地文件lib/index.js:57
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')); - 请求外部主机registry.npmjs.orglib/client.js:2488
const r = await fetch("https://registry.npmjs.org/dsh-bloom-theme/latest", { cache: "no-store" }); - 发起网络请求lib/client.js:2488
const r = await fetch("https://registry.npmjs.org/dsh-bloom-theme/latest", { cache: "no-store" }); - 发起网络请求lib/client.js:2535
const res = await fetch("/api/bloom/dsh-version", { headers: { accept: "application/json" } }); - 发起网络请求lib/client.js:2643
const r = await fetch( - 写入剪贴板lib/client.js:2864
await navigator.clipboard.writeText(cmd); - 写入剪贴板lib/client.js:3730
await navigator.clipboard.writeText(SHARE_TEXT); - 发起网络请求lib/client.js:4128
const r = await fetch(`${myUrl}?t=${Date.now()}`, { cache: "no-store" }); - 写入剪贴板lib/client.js:4263
navigator.clipboard?.writeText(updateCmd(latest)).then(() => { - 发起网络请求lib/client.js:4282
fetch(REGISTRY, { cache: "no-store", signal: ctrl?.signal }).then((r) => r.ok ? r.json() : Promise.reject(new Error("HTTP " + r.status))).then((manife - 发起网络请求src/client.ts:133
const r = await fetch(`${myUrl}?t=${Date.now()}`, { cache: 'no-store' }) - 写入剪贴板src/client.ts:298
navigator.clipboard?.writeText(updateCmd(latest)).then(() => { - 发起网络请求src/client.ts:319
fetch(REGISTRY, { cache: 'no-store', signal: ctrl?.signal }) - 读取本地文件src/index.ts:73
const runtime: { name?: unknown; version?: unknown } = JSON.parse(readFileSync(runtimePath, 'utf8')) - 读取本地文件src/index.ts:91
const pkg: { version?: unknown } = JSON.parse(readFileSync(pkgPath, 'utf8')) - 写入剪贴板src/switcher.ts:106
if (navigator.clipboard?.writeText) { await navigator.clipboard.writeText(SHARE_TEXT); ok = true } - 请求外部主机registry.npmjs.orgsrc/version.ts:85
const r = await fetch('https://registry.npmjs.org/dsh-bloom-theme/latest', { cache: 'no-store' }) - 发起网络请求src/version.ts:85
const r = await fetch('https://registry.npmjs.org/dsh-bloom-theme/latest', { cache: 'no-store' }) - 发起网络请求src/version.ts:209
const res = await fetch('/api/bloom/dsh-version', { headers: { accept: 'application/json' } }) - 发起网络请求src/version.ts:359
const r = await fetch( - 写入剪贴板src/version.ts:637
await navigator.clipboard.writeText(cmd)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:registry.npmjs.org
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 莫兰迪配色主题
- 中国风配色命名
- 明暗双主题切换
最近更新
在 GitHub 查看全部 →v0.20.12026-11-01
· 0.20.1 (2026-11-01)
· 🐛 Bug Fixes
· switcher: 打开面板时的系统蓝焦点框、色点玻璃质感、诗句收敛 (#83) (20b4ebe)
---
This PR was generated with Release Please. See documentation.
---
详细说明 —— 每条改动的现象 / 根因 / 实测数字(1 条)
· fix(switcher): 打开面板时的系统蓝焦点框、色点玻璃质感、诗句收敛 (#83)
在真实 DSH 里(不是单测页)实测后改的三处。第一条是 owner 说的「打开界面
有点丑陋」的直接原因。
① 系统蓝焦点框(主因)
openMenu() 会自动 focus 到当前选中项,于是 .dsh-bloom-option:focus-visible
立刻命中,画出 outline: 2px solid var(--dsw-alias-brand-primary) ——
宿主的品牌亮蓝,每次开面板都跳出来,在黛蓝/竹青这类冷色皮肤上像贴了个
系统默认焦点框。
换成主题自己的 accent(color-mix(in oklch, var(--bloom-accent) 62%, transparent))
并压低不透明度:键盘用户仍能看见焦点在哪,但不再是刺眼的系统蓝。
② 选中态补一道柔内描边
原来选中项只有 background,在玻璃面板上整行像被涂了一块颜色,与相邻行之间
没有「这一行被选中」的边界感。补 inset 0 0 0 1px 的主题色柔边 + 顶部 1px 内高光。
③ 色点从平涂改成玻璃质感
色点是用户判断「这个配色长什么样」的唯一依据,十个平涂小方块太素。
补顶部内高光(球面反光)+ 底部暗边 + 一圈柔光晕,hover/选中时高光加强。
呼应这套皮肤本身的玻璃语言。
④ 诗句终点色压彩度
十行十色全高饱和(朱砂红/桃夭粉/天青蓝)互相打架,整列看着吵。
终点色降到 72% 彩度,仍然是这个配色的身份色,但退到背景之后。
验证(真实 DSH 127.0.0.1:52893,用签名 cookie 进页面):
· 改前 outline = oklch(0.96 0.01 240)(系统亮蓝白)
· 改后 outline = oklch(0.72 0.12 240)(主题 blue 轨)
· 选中态 box-shadow 已带主题色柔边
· contrast-guard 20 组全达标
Agent: dsh
20b4ebe
v0.20.02026-11-01
· 0.20.0 (2026-11-01)
· ✨ Features
· motion: 面板入场可重播、版本区块同框滑动、补回弹曲线 (#81) (2a7ebd3)
---
This PR was generated with Release Please. See documentation.
---
详细说明 —— 每条改动的现象 / 根因 / 实测数字(6 条)
· feat(motion): 面板入场可重播、版本区块同框滑动、补回弹曲线 (#81)
对着 dsh-whale-widget / dsh-plugin-wallpaper-engine 研究后的三项改造。
它们的动效之所以「有产品感」,不是因为素材多,而是三件基本功:
1. 每次都重播 —— 同一元素第二次打开也要真的播动画
2. 位移用同框滑动,而不是 display 硬切
3. 缓动有回弹,不是全站一个 ease
本插件原来三条都缺,所以显得原始。逐条补:
P1 入场可重播(lib/switcher.ts 的 playEnter)
原来靠 .dsh-bloom-menu:not([hidden]) { animation }。同一个元素第二次
显示时动画已在结束态,浏览器判定「没变化」不重播 —— 表现是第一次开有
动画、之后都硬弹出来。改成 JS 加类:摘掉 .is-entering → 读 offsetWidth
强制重排(让浏览器确定「无动画」这一帧)→ 再加回来。
P0 版本区块同框滑动(setMoreOpen + CSS grid-template-rows)
原来 hidden 硬切,内容瞬现。改成 grid-template-rows: 0fr → 1fr 过渡 +
内容 translateY 滑入,末尾带回弹。选 grid 而不是量高度:不用测量、
不写死 px,内容多少都自适应。收起时等动画跑完再 hidden,否则内容会在
滑动中途消失。首帧与「换语言重画」两条路径用 data-instant 关掉过渡,
避免开局莫名播一次展开。
P2 回弹曲线(--bloom-ease-back)
新增 cubic-bezier(.34,1.56,.64,1)(Material 经典回弹)。只给有明确触发
动作的过渡用(面板滑入、区块展开);hover 反馈仍走 --bloom-ease ——
回弹用在 hover 上会显得黏。
降级:prefers-reduced-motion 下三项一律瞬间到位,不留位移。
验证(headless Chromium 实跑,不是看代码):
· 连续开合三次,animationName 都是 bloom-menu-in(原来只有第一次是)
· 版本区块 rows 从 0fr 过渡到 70.875px,opacity 0→1
· --bloom-ease-back = cubic-bezier(0.34, 1.56, 0.64, 1)
配色一行没动 —— contrast-guard 20 组全达标;宿主契约门禁(真 cordis
跑 apply)通过。
Agent: dsh
2a7ebd3
· chore(gate): 同步 readme-gate 真源(契约 4 兼容 README_CN.md 结构)
真源新增:契约 4 除 README.en.md 外,也认「README.md 本身是英文、中文另放
README_CN.md」这种结构(device-passport 就是这种)。避免为满足门禁而在仓里造一份
与 README.md 重复的 README.en.md。
Agent: dsh
ec627bf
· chore(ci): bump actions/checkout from 4 to 7 (#79)
Dependabot 的 #69 合不了 —— gh 的 OAuth token 缺 workflow scope,写入
.github/workflows/* 的操作被拒。改用 SSH 推同样的改动。
tag v7 已核实存在(3d3c42e5aac5)。
Agent: dsh
42d2ee5
· chore(ci): bump googleapis/release-please-action from 4 to 5 (#68)
Bumps googleapis/release-please-action from 4 to 5.
· Release notes
· Changelog
· Commits
---
updated-dependencies:
· dependency-name: googleapis/release-p
v0.19.22026-10-31
· 0.19.2 (2026-10-31)
· 🐛 Bug Fixes
· locale: ctx.locale 是 Proxy 属性,未声明 inject 时读取直接抛 (50bae91)
---
This PR was generated with Release Please. See documentation.
---
详细说明 —— 每条改动的现象 / 根因 / 实测数字(1 条)
· fix(locale): ctx.locale 是 Proxy 属性,未声明 inject 时读取直接抛
2026-10-30 事故:把语言接到 DSH 的 locale 服务时,读的是 ctx?.locale。
cordis 的 ctx 是 Proxy —— 读一个没在 inject 里声明的服务会直接抛
cannot get property "locale" without inject,可选链和后面的 try/catch
都救不了(抛在取值这一步)。apply 一抛,web boot 报
dsh-bloom-theme: failed,整个桌面端起不来。
两种合法写法:
· A. 顶层 exports.inject = ['locale'] —— 硬依赖。locale 不在时整个插件挂起,
皮肤也不注入。皮肤插件不该这样。
· B. ctx.inject(['locale'], scope => …) —— 可选依赖(本实现)。皮肤照常注入,
locale 就绪时才绑定;locale 卸载时 scope 内的 effect 自动回收。
门禁 node ../scripts/dsh-dev.mjs check 用真 cordis 内核跑 apply,
能拦住 A/B 以外的写法 —— 这次补的用法检查就是这么用的。
同时把 register / subscribe / setLocale 三处的调用都兜了底:宿主 locale
服务与预期不一致时(register 签名不同、词条已注册)安静降级,
不让一个皮肤插件把宿主带崩。
Agent: dsh
50bae91
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成🌊 Bloom for DSH
10 套莫兰迪中国风主题,配色全部实测达 WCAG AA Ten Morandi palettes for DeepSeek Harness — every one measured against WCAG AA.
🌸 Bloom for Typora24 套主题 🌊 Bloom for DSH10 套配色 · 当前 🛡️ contrast-guard配色护栏
同一套莫兰迪设计语言:两个宿主的主题,加一个守住它们配色的工具。
One Morandi design language — two themes, and the tool that keeps their colors honest.
把 Bloom(90★ Typora 主题)的莫兰迪质感搬进 DeepSeek Harness。
玻璃 + 莫兰迪:10 套明暗双主题,磨砂玻璃面板,顶栏一键切换,连 AI 思考的等待也跟主题一起呼吸。
📌 桌面端优先 —— 关于 DSH Web UI 的说明
结论:Bloom 接下来的迭代优先兼容 DSH 桌面端;Web UI 不再主动适配,会逐步淡出。
(0.16.0 及更早的版本是按 DSH Web UI 做的;0.17.0 起适配桌面端——这一版补上了 DSH 0.2.0 的选择器适配,并加了能自动发现这类失效的漂移门禁。
展开完整文档(README 剩余 1 节)
🌊 Bloom for DSH
10 套莫兰迪中国风主题,配色全部实测达 WCAG AA Ten Morandi palettes for DeepSeek Harness — every one measured against WCAG AA.
🌸 Bloom for Typora24 套主题 🌊 Bloom for DSH10 套配色 · 当前 🛡️ contrast-guard配色护栏
同一套莫兰迪设计语言:两个宿主的主题,加一个守住它们配色的工具。
One Morandi design language — two themes, and the tool that keeps their colors honest.
把 Bloom(90★ Typora 主题)的莫兰迪质感搬进 DeepSeek Harness。
玻璃 + 莫兰迪:10 套明暗双主题,磨砂玻璃面板,顶栏一键切换,连 AI 思考的等待也跟主题一起呼吸。
📌 桌面端优先 —— 关于 DSH Web UI 的说明
结论:Bloom 接下来的迭代优先兼容 DSH 桌面端;Web UI 不再主动适配,会逐步淡出。
(0.16.0 及更早的版本是按 DSH Web UI 做的;0.17.0 起适配桌面端——这一版补上了 DSH 0.2.0 的选择器适配,并加了能自动发现这类失效的漂移门禁。)
DSH 有了桌面端应用,我自己日常已经切过去了。主题这类东西的价值长在 UI 上——宿主怎么改界面,配色和玻璃就得跟着长——所以迭代重心跟着挪到桌面端。
具体到你会遇到什么:
| 你在用 | 会发生什么 |
| 桌面端 | 新配色、新动效、视觉修复都优先在这里出。我每天都在用它,界面变了我就会跟。 |
| Web UI | 保持现状可用,但不再主动适配 DSH Web 端的新变化;DSH 若改了结构导致某处显示不对,我不一定及时跟。 |
两点补充,省得你按标题猜:
- 已经装上的版本不会失效。 停的是「跟着新界面继续长」,不是「把你现在能用的弄坏」。
- 如果你只能用 Web UI,欢迎开 issue 把场景说清楚——真实需求会改变我的判断,这句不是客套。
上一个版本(0.16.0)改了什么:在跑的步骤接管主题色(扫光从灰换成 Bloom 三色);轮次状态的三色光谱重新接上(DSH 改名后它静默消失了);修浅色模式下消息气泡没画出来的玻璃边;修子串选择器自叠造成的「盒中盒」与「直角黑块 chip」;撤掉在跑步骤上的胶囊底色——状态不该靠盒子说话。
一句话
给 DeepSeek Harness 的「玻璃 + 莫兰迪」主题。 10 套配色,明暗自适应,顶栏一键切换;面板是真正的磨砂玻璃(半透 + backdrop 模糊 + 玻璃边缘),配色是低饱和莫兰迪(OKLCH 调色、WCAG AA),全站统一克制的微动效,零运行时依赖,前端 TypeScript 构建。
莫兰迪的气质不在 --accent,在 --accent-rgb。
快速开始
- DSH 桌面端:应用内「插件管理」安装,重载页面即可 —— 顶栏右上角出现「黛蓝 ▾」按钮,10 套配色、明暗、壁纸都在那里切换。
- 自建 profile(CLI / 服务器 / Web):dsh plugin --profile <你的 profile> add dsh-bloom-theme,接进 boot graph 后重启 DSH,三步细节见下方安装。
🏆 为什么用它
| | DSH 原生 | 普通主题插件 | Bloom for DSH |
| 配色数量 | 1 套 | 3-5 套 | 10 套莫兰迪,明暗各一套 |
| 配色依据 | 手工挑色 | 手工挑色 | OKLCH 感知均匀调色 |
| 对比度 | 未声明 | 未声明 | 明暗主色对全部实测 ≥ 4.5:1(WCAG AA) |
| 面板质感 | 实色 | 实色 / 简单半透 | 真磨砂玻璃(半透 + backdrop 模糊 + 玻璃边缘) |
| 切换方式 | — | 改配置文件 | 顶栏一键切换,即时生效 |
| 动效 | 固定 | 无 / 硬编码 | 跟随主题三色光谱,支持 prefers-reduced-motion |
| 运行时开销 | — | 常驻进程 / 依赖 | 零依赖,只注入 CSS 变量 |
截图
竹青·亮色 —— 磨砂玻璃面板 + 莫兰迪绿,选中会话行以当前主题高亮
10 套配色(亮色):点击任意一套,全站主色 / 背景 / 玻璃 / 动效色相一起切换。
☁️ 黛蓝 Mist 🧧 朱砂 Cinnabar 🌸 桃夭 Petal 🌊 天青 Ripple 🌿 竹青 Sage
🧱 赭石 Stone 🔷 青金 Lapis 🍯 琥珀 Amber 🌅 落霞 Afterglow 🪷 青莲 Lavender
每套都有对应暗色(示例:琥珀·暗色):
安装
桌面端:在应用内的插件管理里安装、升级。桌面 profile 由应用独占托管,命令行的 dsh plugin --profile desktop ... 会直接报 profile "desktop" is managed exclusively by the Electron application —— 不是权限问题,是设计如此。
自建 profile(CLI / 服务器 / web)的装法
1) 装进你的 profile(profile 名按自己的改)
dsh plugin --profile <你的 profile> add dsh-bloom-theme
2) 接进 boot graph:把 "dsh-bloom-theme" 加进 ~/.dsh/profiles/<你的 profile>/package.json 的 dsh.profile.bundles 数组
3) 重启 DSH
装完刷新页面,顶栏右上角会出现「黛蓝 ▾」主题按钮。点击展开即可在 10 套配色间切换,下拉底部显示当前版本号;npm 上有更新的版本时会亮一个 ↑ vX 徽标(点它跳 Release 页)。
特性
| 特性 | 说明 |
| 磨砂玻璃面板(默认常开) | 半透底 + backdrop-filter 模糊 + 玻璃边缘(顶部亮高光 / 半透描边 / 柔和外辉),明暗两档透明度自适应 |
| 10 套莫兰迪配色 | 黛蓝 / 朱砂 / 桃夭 / 天青 / 竹青 / 赭石 / 青金 / 琥珀 / 落霞 / 青莲,每套明暗双主题,一键切换 |
| 界面语言 | 面板里 中文 / English / Русский 一键切换,没手动选过时沿用原来的浏览器语言自动判断;只换文案,配色与对比度结论一概不动 |
| 双轨配色 | 可读轨保对比度(文字/按钮),气质轨专供氛围渐变,两轨分工不混用 |
| 微交互动效 | 菜单入场、选中态色条滑入、hover / 按压反馈;统一时长与缓动 token,全站一致 |
| 主题色推理动效 | Deep diving… 以当前主题三色光谱流动,不再固定 DeepSeek 蓝;prefers-reduced-motion 下自动静止 |
| 版本 / 更新提示 | 下拉底部显示当前版本;npm 有新版亮「↑ vX」;离版较旧时右下角弹更新横幅,桌面端提示在侧栏「插件」管理中更新 |
| OKLCH 调色 + WCAG AA | 感知均匀色彩空间,明暗切换不跳变;全部明暗主色对实测 ≥ 4.5:1 |
| 零依赖 · 纯 CSS 变量驱动 | 只注入 CSS 变量 + 少量切换逻辑,几乎零运行时开销 |
| 不抢占原生控件 | 切换器挂进 DSH 顶栏工具区,与原生按钮并排共存 |
| TypeScript 构建 | src/ 10 个模块 → node 侧 tsc(ESM)+ 浏览器侧 esbuild(IIFE 单文件);build / deploy / check / preflight 一键脚本 |
设计原理:双轨色
Bloom 的核心不是「换个颜色」,而是一套莫兰迪质感语言:低饱和的氛围渐变、冷调的发光细线、长距柔和的投影、克制的圆角与间距。
最容易被忽略(也最容易被做崩)的是双轨色:
- 可读轨 --bloom-accent —— 被刻意加深过,为了过 WCAG,用在文字 / 按钮 / 选中态;
- 气质轨 --accent-rgb —— 真正的莫兰迪色(低饱和、发灰),只用于大面积氛围渐变、冷光细线。
原版 14 处渐变全部用气质轨,从不用可读轨铺面。一旦把可读色拿去刷大面积,桃夭就会从藕粉变成荧光洋红——莫兰迪感就没了。这个插件把两轨完整搬过来,并在 contrast-guard(同系列工具)里用护栏守住「主色 + 底色」的对比度。
开发 / 构建(TypeScript)
npm install
npm run typecheck # tsc --noEmit,全量类型检查
npm run build # typecheck → tsc 出 lib/index.js → esbuild 出 lib/client.js
npm run deploy # 一键部署到本机 DSH(sync-version → build → rsync)
npm run preview # 部署到 desktop-local(桌面端是 app 不是浏览器,没有可 open 的 URL)
npm run dev # build + watch(改 src 自动编译+部署)
npm run package # 一键打包(npm pack → .tgz)
npm run check # 6 组静态闸门 + contrast-guard(每次提交都跑)
npm run preflight # 发版前检查:版本五方一致 / git 状态 / 收录同步
源码 src/ 是 10 个模块(meta · appearance · palette · tokens · css/ · dom · drag · version · switcher · client),DSH 加载的是 lib/ 里的产物。
构建是双轨的,两侧对模块格式的要求正好相反:
| 产物 | 谁编译 | 格式 | 为什么 |
| lib/index.js(node 侧) | tsc | ESM | cordis 的 plugin loader 按 ESM 读它 |
| lib/client.js(浏览器侧) | esbuild | IIFE 单文件 | DSH 的插件 client.js 是当 classic script 执行的,出现 import/export 直接语法错误 |
所以浏览器侧源码可以随意拆模块,产物必须 bundle 回一个自包含文件。
版本号由 release-please 在 release PR 里连同 package.json 一起 bump(靠 src/meta.ts 行尾的 x-release-please-version 标记);scripts/sync-version.mjs 只是本地 dev 的兜底同步,不在发布路径上。改动详见 CONTRIBUTING。
常见问题
主题没生效? 先硬刷新一次(Cmd/Ctrl + Shift + R)。若页面提示 Failed to load plugins,说明该版本的 client 没能注册,请确认 dsh plugin --profile <name> add 那步无误,或换用最新版。
能自定义颜色吗? 目前通过「变体」选择整套色系;单色自定义在规划中(见 Roadmap)。
贡献 / 开源
- 加一个新配色:在 src/client.ts 的 PALETTE / VARIANTS / VARIANT_LABELS 里加一项即可,其余(玻璃、动效、选中态、对比度护栏)全部自动跟上。
- 请先跑 npm run build && npm run check,确认 contrast-guard 全部达标再提 PR。
- 欢迎提 issue / PR / 好的想法。
支持
如果 Bloom 让你的 DSH 用起来更舒服,欢迎留下一颗 ⭐,或请我喝杯咖啡(赞助入口在下面的 Sponsor / 面板菜单里也有一处)。
🧩 DSH 插件全家桶
🎨 主题美化 · ⚡ 模型管理
一行装齐(只需 Node.js),装完重启 DSH 即可:
PROFILE=<你的 profile>
npx -y @deepseek-ai/dsh plugin --profile "$PROFILE" add dsh-bloom-theme @dsh-plugins/dsh-llm-hub && PROFILE="$PROFILE" node -e 'const f=(process.env.DSH_HOME||require("os").homedir()+"/.dsh")+"/profiles/"+process.env.PROFILE+"/package.json",p=require(f),b=p.dsh.profile.bundles;for(const n of Object.keys(p.dependencies))if(/^(dsh-bloom-theme|@dsh-plugins\/)/.test(n)&&!b.includes(n))b.push(n);require("fs").writeFileSync(f,JSON.stringify(p,null,2)+"\n")'
License
MIT — 借用 / 修改请保留版权声明。配色参考自 typora-Bloom-theme。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
webkubor/dsh-bloom-theme
DSH 主题插件:Bloom 莫兰迪中国风配色,OKLCH 调色、明暗双主题、顶栏一键切换,实测达 WCAG AA。 / A DSH theme plugin: Morandi Chinese-style palettes, OKLCH…
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1