dsh-text-color-adaptive:让 DSH 标签文本自适应壁纸亮度

前言

DSH(DeepSeek Harness)的透明玻璃主题下,白底黑字在深色壁纸上可能对比度不足,而黑色文字在亮色壁纸上又会看不清。手动调整主题颜色只能固定一种方案,无法兼顾移动中的动态壁纸。dsh-text-color-adaptive 通过实时采样壁纸亮度,自动选择亮色或暗色文本,解决这一矛盾。

这是什么

这是一个运行在 DSH Web 平台的插件,由维护者 jiangking22 开发。它让标签文本的颜色根据背后的壁纸亮度动态调整,确保文字始终有足够的对比度。插件通过测量壁纸层的实际亮度,与主题的玻璃表面混合后,选择对比度更高的一侧文本颜色。

核心功能

插件每 0.9 秒采样一次壁纸层。壁纸层由 dsh-plugin-wallpaper-engine 插件提供,是一个 <img>、<video>、<canvas> 或 scene iframe,可通过 __wp.capture() 获取。

采样后的帧被缩放到 64×36,计算文本列的平均背景颜色,再与主题的玻璃表面混合(默认混合比例为 0.45),估算出文字实际所在的背景。接着选择对比度更高的一侧(亮色或暗色),并调整颜色直到对比度达到 4.6:1(比 WCAG AA 的 4.5:1 略高)。

插件会写入五个 CSS 变量:
- --dsw-alias-label-primary
- -secondary
- -tertiary
- -caption
- -dimmed

同时添加一个文本阴影,方向与文本颜色相反,作为安全兜底。

切换颜色时带有阻尼:新侧必须在连续两次采样中都击败当前侧 1.15 倍,避免在快速变化的壁纸上闪烁。

如果无法采样(无壁纸层、帧未解码、跨域 iframe 拒绝 __wp.capture()),插件会完全关闭,移除 html[data-at-adaptive],恢复 DSH 原有的颜色,不会留下部分覆盖。

安装与启用

使用官方安装命令:

dsh plugin --profile web add dsh-text-color-adaptive

典型用法

安装后,插件会在 DSH 加载壁纸时自动生效。无需额外配置。

如果需要调试,可在浏览器控制台执行:

__dshAdaptiveText.state
// { active: true, side: 'light', primary: '#fbfcfe', wallpaperLuminance: 0.31 }
__dshAdaptiveText.refresh()   // 立即重新采样
__dshAdaptiveText.dispose()   // 在当前页面关闭插件,恢复 DSH 原有颜色

适用场景与注意

适合使用透明玻璃主题、搭配动态壁纸的用户,特别是壁纸亮度变化频繁的场景。

插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。当前版本为 0.1.0,需要 DSH >= 0.1.5-rc.1。

结尾

dsh-text-color-adaptive 通过实时采样与对比度计算,让标签文本在任意背景上都保持可读。插件代码托管在 GitHub,可在 DSH 社区目录查看详情。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye