dsh-maple-theme
Verified@lynn123411/dsh-maple-theme · v0.4.3 · MIT · Web UI
把 Obsidian 的 Maple 主题搬进 DSH:暖白 / 冷灰两套配色、内嵌字体、对话正文的排版、代码块与侧栏观感。
Install
dsh plugin add @lynn123411/dsh-maple-theme Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
@lynn123411/dsh-maple-theme
把 Obsidian 的 Maple 主题搬进 DSH:暖白 / 冷灰两套配色、内嵌字体、对话正文的排版、代码块,以及侧栏与标签条的观感。
功能
- 两套配色:浅色取 Maple 的暖白(基础色相 35°)、深色取冷灰(207°)。整套界面跟着换——背景、文字、边框、气泡、侧栏、代码块、滚动条都在内。想要别的方向就换预设:天青(浅深同为 230°),或者选「DSH 原生」把配色整层交回宿主。
- 配置页上的九项:配色预设(两组色相 + 一条「DSH 原生」)、浅色与深色色相(各带色相环滑块)、正文行高、段落间距、标题配色方式、代码配色、字体、外壳装饰。改一下立刻生效,不用刷新。
- 对话正文排版:标题按 Maple 的比例放大加重,六级标题可以是六种颜色;引用变成浅底加左侧色条;表格的表头填色、四角圆角;列表标记换成等宽字体;分隔线是两端淡出的渐变。
- 代码块:Maple 的边界与标题条——比正文深一档的标题底、一道发丝分隔、圆角收小一档,语言标签用暖色等宽字;行号更淡一档,让代码本身突出。
- 内嵌 Maple 字体:把 Maple Mono 打进插件,正文与界面都用它,字形与 Obsidian 一致;配置页上可以关掉回到宿主字体。
- 侧栏、标签条与输入卡:侧栏换成 Maple 的暖灰、去掉与中央区之间的那条冷灰分隔线;活动标签从底部短线换成一枚圆角块;列表行带圆角;输入卡换成 Maple 的纸色。
特性
- 配色全局、装饰分层:令牌是全局的,改了整界面跟着换;正文装饰只落在助手回答里(工具行与推理行不受影响),外壳装饰受「侧栏、标签条与输入卡」开关控制,关掉就回到宿主原样。
- 不依赖宿主内部类名:锚点只有宿主的
data-slot座位名、data-chat-flow-kind、data-row-key、data-composer-card这类语义属性,CSS Modules 的哈希类名一个都没用。 - 锚点有契约自检:
scripts/test-anchors.mjs会去宿主源码里逐个确认用到的属性名与座位名仍在,并禁止样式表出现哈希类名——宿主改名时这一条会红,而不是让样式静默失效。 - 字号行高走宿主的令牌:通过覆盖
--dsw-font-markdown-*改排版,宿主调字号时跟着一起走。 - 配色走宿主的主题通道:两套色板交给
ctx.theme.overrideTokens,由宿主按当前模式挑值写到页面上;不另立一份全局主题,卸载时整层撤掉。 - 配色有对比度闸门:正文、次要文字、三级文字、链接、主按钮、代码块、侧栏、提示框、气泡、轻提示、文档预览、警告标签、九个语法色、两个预设,每一对「文字 / 底色」都由自检按 WCAG AA 算一遍;标注级文字(时间戳一类)只做装饰,不进闸门。浅色链接与三级文字按达标明度取值,不是照抄 Maple 的原始数值。
- 卸载即还原:样式表按
data-plugin归属键清理,<html>上写的属性与变量一并撤掉。 - 装配、锚点与验证:见 DETAILS.md。
安装
dsh plugin --profile web add @lynn123411/dsh-maple-theme