如果任何颜色未达到网页内容无障碍指南对比度标准,我的主题构建就会失败——以下是流水线流程

发布日期:2026-07-30 10:00:56  浏览量 :0
发布日期:2026-07-30 10:00:56  
0

约一千五百年来,韩国寺庙与宫殿一直沿用同一套矿物颜料体系——丹青(단청)。深邃的靛蓝木作、朱砂红、赭石金。矿物颜料呈现生动 vivid 的色彩,却绝不刺眼如霓虹,而这恰恰是你每天凝视八小时所亟需的视觉体验。

我将这套色板转化为适用于 VS Code 及其他十二款应用的主题家族。本文着重分享我认为真正值得借鉴的核心:构建流程拒绝发布任何未通过 WCAG 对比度目标的色彩。

凭肉眼选色的弊端

每位主题作者都经历过这样的场景:在自家显示器上、特定亮度与环境光线下,反复微调十六进制色值直至“看起来顺眼”。然而,当有人在日光下的光亮笔记本屏幕上打开该主题时,你的注释文字便彻底隐形。

既然对比度可量化,我便将其设为构建门禁,而非依赖主观审美判断。

一份色板文件,十三款应用

整个主题家族仅依托单个 palette.json 文件。各变体(夜境、黎明、风暴、薄雾)分别定义背景、前景层级及强调色角色。构建脚本据此生成所有移植版本——VS Code、JetBrains、Neovim、Sublime、Obsidian、iTerm2、Alacritty、Kitty、Ghostty、Windows Terminal、Warp、tmux、Zed。4 种变体 × 13 款应用 = 52 个文件,所有平台色彩字节级完全一致。

修改任一十六进制色值并执行构建,所有移植版本同步更新,杜绝色彩漂移。

构建门禁

WCAG 对比度计算仅需约二十行 Python 代码,直接源自规范标准:

def 相对亮度(h: str) -> float:
    def 校正函数(c: float) -> float:
        return c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055) ** 2.4
    r, g, b = (校正函数(c) for c in 十六进制转RGB(h))
    return 0.2126 * r + 0.7152 * g + 0.0722 * b

def 对比度(a: str, b: str) -> 

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

分享到:

长按或扫码识别 分享给好友

长按或扫码识别 分享给好友
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9