DarkskyX15/dsh-client-ui-m3-theme
Material 3 theme plugin for DeepSeek Harness: derives the full --dsw-* color token set from one primary color, with separate light/dark palettes (per-mode chroma, fixed contrast surfaces), plus a settings panel with color picker, presets and live preview.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
dsh-client-ui-m3-theme
DeepSeek Harness 的 Material 3 主题插件(双面包):由单一主色推导整套
--dsw-* color token,亮/暗模式各自成板,附带设置面板用于启用主题与选色。
功能
- 约 65 个可见
--dsw-*color token 全量映射(表面 / 描边 / 文字 / 品牌 / 按钮 / 交互态 / Markdown / 滚动条 / 状态色 / 组件专项 / Toast / Tooltip)。 - 亮色与暗色模式使用各自色板:
- 暗色中性面 / 描边 chroma 略高(表面层次感,M3 dark scheme 惯例);
- 暗色主色板提 chroma(补偿暗背景下主色的饱和感损失);
- tooltip 为恒定反向表面(气泡文字为静态白),两种模式背景均取深色;
- 文字五级层级(primary → secondary → tertiary → caption → dimmed)与 官方明度梯级对齐。
- 设置面板「M3 主题」:
- 启用 / 禁用整套令牌层的开关;
- 颜色来源开关:浏览器本地颜色(localStorage)或本机配置 (settings.yaml 注入值);
- 单一自定义主要色选择器;
- 主色来源优先级说明卡;
- zh/en i18n —— 面板与导航文案随界面语言切换。
- 持久化:
- 浏览器选择 →
localStorage键dsh.m3-theme.primary(即时生效、跨标签页同步); - 本机配置 →
settings.yaml的m3-theme命名空间(Host 半边注册,注入 页面为window.__DSH_M3_THEME_PRIMARY__); - 开关 →
dsh.m3-theme.enabled('0'禁用令牌层)与dsh.m3-theme.useLocal('0'忽略 localStorage,直接采用注入值)。
- 浏览器选择 →
主色来源优先级
useLocal 开关 | 解析顺序 |
|---|---|
| 开启(默认) | localStorage → settings.yaml 注入值 → 内置默认紫 #6750a4 |
| 关闭 | settings.yaml 注入值 → 内置默认紫 #6750a4(忽略 localStorage) |
面板选色只写入 localStorage,不会回写 settings.yaml。
安装到 DSH profile
-
在 profile 的
package.json增加 git 依赖:{ "dependencies": { "dsh-client-ui-m3-theme": "github:DarkskyX15/dsh-client-ui-m3-theme#v0.2.0" } }跟随分支可用:
"github:DarkskyX15/dsh-client-ui-m3-theme#main"。 -
在 profile 的
cordis.patch.yml插入条目:- insert: - id: ui-m3-theme name: dsh-client-ui-m3-theme -
重新安装依赖并重启 DSH:
pnpm install(Host 半边注册设置命名空间并注入启动主色,client bundle 在启动时扫描, 因此需要重启 DSH 进程。)
使用
-
设置 → M3 主题:开关主题、选择颜色来源、挑选主要色。
-
外部配置 —— 编辑
~/.dsh/settings.yaml:m3-theme: primary: "#39c500"「使用浏览器本地颜色」开启时浏览器本地选择优先于该值;关闭该开关则 直接采用该值。
结构
lib/index.js— Host 半边:注册m3-theme设置命名空间(schema 校验)、 经webServer.tapIndex注入启动主色。lib/client.js— 浏览器半边:window.__ModuleLoader__.load注册, token 推导(hex↔HSL、tone 步进、按模式色板)、设置面板与 zh/en 字典。- 无构建步骤:
lib/即发布物,改动直接提交。
开发
node --check lib/client.js # 语法检查
node --check lib/index.js
浏览器 bundle 由 /plugins/<id>/client.js 路由每次请求从磁盘读取
(cache-control: no-cache),因此只改 lib/client.js 时刷新页面即可生效;
改 lib/index.js(Host 半边)或 package.json 需要重启 DSH。
License
MIT
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.