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

莫兰迪主题 webkubor/dsh-bloom-theme

DeepSeek Harnessv0.18.5
webkubor5 天前有提交已提供中文文档扫描:含敏感能力

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-theme
npm 源 · dsh-bloom-theme 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功(非静态推断);本次验证针对插件 v0.18.3,当前版本为 v0.18.5
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 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.org
    lib/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.org
    src/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 张 · 点击查看大图

功能亮点

  • 莫兰迪配色主题
  • 中国风配色命名
  • 明暗双主题切换
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。
预览分享卡片长什么样 ↓webkubor/dsh-bloom-theme
分享 · DeepSeek Harness Hub
webkubor/dsh-bloom-theme

DSH 主题插件:Bloom 莫兰迪中国风配色,OKLCH 调色、明暗双主题、顶栏一键切换,实测达 WCAG AA。 / A DSH theme plugin: Morandi Chinese-style palettes, OKLCH…

回到顶部