dsh-base16-skins
配色方案,作为 DSH Web GUI 皮肤( 的 v2 纯资产皮肤目录)。
- Stars
- 0
- Language
- CSS
- Created
- Sep 13, 2026
- Updated
- Sep 13, 2026
Introduction
dsh-base16-skins
20 款 base16 配色方案,作为 DSH Web GUI 皮肤(@linxin666/dsh-client-ui-skin-center 的 v2 纯资产皮肤目录)。
生成 → 校验 → 安装,全部可复现:
node generate.mjs # palettes/ + schemes.json → skins/(含预览图)
node verify.mjs # 用皮肤中心自己的校验器 / CSS 管线 / 目录册校验
bash install.sh # 同步到 $DSH_HOME/skins(皮肤中心无需重启)
装完后打开 设置 → 皮肤中心:刷新页面即可看到,先「试穿」再「应用」。
皮肤清单
| 暗色(恒深) | 亮色(恒浅) |
|---|---|
| One Dark · Gruvbox Dark · Nord · Tokyo Night · Catppuccin Mocha · Dracula · Solarized Dark · Rosé Pine · Everforest Dark · GitHub Dark | One Light · Gruvbox Light · Ayu Light · Tokyo Night Light · Catppuccin Latte · Solarized Light · Rosé Pine Dawn · Everforest Light · GitHub Light · Flexoki Light |
设计说明
- 映射:base16 的语义是固定的(base00 背景、base05 前景、base08–0F 强调色),所以
generate.mjs里只有一套映射公式,喂任何调色板都自动得到正确极性:表面取 base00–02,文字用 base05→base04→base03 渐变出六档层次,强调色取 base0D,状态色取 base08/0B/0A;所有「淡化/悬停」色一律朝背景混合,因此深浅两套下对比度方向都正确。 - 语法高亮同源:官方把 Shiki 颜色放在
--shiki-token-*变量里且按模式切换,本仓库一并接管(constants=base09、strings=base0B、comments=base03、keywords=base0E、parameters=base08、functions=base0D、link/escape=base0C),代码块也是 base16 配色。 - 恒深/恒浅:每款皮肤在
:root与body[data-ds-dark-theme]下写同一组值。原因是官方把深色 token 声明在body上(只写:root会被它压住),而 Shiki 语法色按模式切换——只覆盖一半会让深色皮肤在浅色模式下出现深底深字。代价是皮肤激活期间界面的浅色/深色开关不再改变外观。 - 另外覆盖了 dsh-web 插件生态在用的
--aion-*家族、滚动条、选中态与color-scheme,并带一张无字体依赖的 UI 示意预览图。
加新方案
curl -fsSL -o palettes/<slug>.yaml \
https://raw.githubusercontent.com/tinted-theming/schemes/spec-0.11/base16/<slug>.yaml
# 在 schemes.json 里加一条 { palette, id, name, tags, order }
node generate.mjs && node verify.mjs && bash install.sh
上游还有 300+ 方案(gruvbox-material-*、kanagawa、horizon-*、selenized-*、zenburn、danqing …)。
浏览器强制深色(Auto Dark Theme)
Chrome / Edge 的「网站深色主题 / 强制深色」会把浅色页面整体反转:看起来就像浅色皮肤失效——面板颜色发灰、背景不变亮。这与皮肤本身无关,任何浅色网页都会中招。
皮肤已按 MDN 记载的官方豁免写法声明只支持单一配色,正常情况下不会再被浏览器改写:
color-scheme: light; /* 旧版浏览器回退 */
color-scheme: only light; /* 禁止 UA 覆盖:关闭 Chrome Auto Dark Theme */
深色皮肤对应 only dark。如果你的浏览器版本仍会强制反转,请在浏览器设置里关闭:
- Edge for Android:设置 → 外观 → 深色模式 → 关闭(或「将深色模式应用于网站」设为从不)
- Chrome for Android:设置 → 主题 → 关闭「网站深色主题」
自查方法:切到「官方默认」皮肤并把界面切到浅色模式——若背景仍是深色,就说明是浏览器强制深色,而不是皮肤问题。
来源与许可
palettes/*.yaml 是 tinted-theming/schemes(MIT,分支 spec-0.11)的原样拷贝;每款方案的作者与出处写在各皮肤的 skin.json(author / sourceUrl / attribution / license)。本仓库只做「base16 → dsh token」的映射与打包。
目录
palettes/ 上游调色板原样拷贝
schemes.json id / 中文名 / tags / 排序
generate.mjs 生成器(皮肤 + 预览图)
verify.mjs 离线校验(用皮肤中心自身实现)
install.sh 同步到 $DSH_HOME/skins
skins/<id>/ skin.json + skin.css + preview/