用途:从单个品牌种子色生成完整的 11 级色阶(50、100…900、950),使各级明度变化在视觉上均匀,并组织为三层设计令牌链,便于统一换色。
主要能力:基于 oklch() 与相对颜色语法,按固定 L 值映射(50 为 0.985,500 为 0.620,950 为 0.205 等)派生各级;通过 calc(c * 系数) 在极浅与极深端收缩彩度,保持 sRGB 色域并避免浅色发荧光;中间档保留品牌彩度。L 轴为感知亮度,故同一数值在不同色相下视觉明度一致,优于 HSL。
使用方式:将品牌十六进制色一次性转为 oklch 存为 --brand-seed,再用相对颜色 ladder 派生全部档位,例如 --brand-50: oklch(from var(--brand-seed) 0.985 calc(c * 0.08) h)。令牌分三层:原始层以颜色值命名、语义层以角色命名(如 --color-action-primary)、组件层以使用位置命名。可用 @layer tokens/theme/components 管理顺序;需要过渡动画的令牌可用 @property 注册为 '<color>';感知混合用 color-mix(in oklch, …);广色域强调色须配 @supports 的 sRGB 回退。
适用场景:需要感知均匀色阶的设计系统、按钮与表面与文字的颜色角色映射、品牌换色(只需改 --brand-seed)。
限制:色阶 L 值为约定值,可按需调整但应保持单调;对比度数值仅为蓝色系种子的参考,须用真实渲染工具(如 DevTools、axe)实测,WCAG 2.2 要求正文 4.5:1、大字号与界面组件 3:1;不要用 srgb 做感知混合;勿在无回退时直接输出 display-p3 颜色。暗色/亮色切换与无障碍对比细节由相关技能处理。