营销增长
从品牌色算法化推导完整 UI 配色系统(含交互态…
当只有 1–2 个品牌色、需要为 UI 生成完整配色(hover/active 状态、边框背景中性灰、状态语义色)时,用 HSL 算法推导出协调一致的色板。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
从品牌色算法化推导完整 UI 配色系统(通用
解决思路
- 从每个品牌色至少生成三个变体:base、darker(hover/active)、lighter(tint/background)。
- 用 HSL 调整法推导状态色:base 为 hsl(H, S%, L%);hover 为 hsl(H, S%, L% - 8%)(降低亮度变暗);active 为 hsl(H, S%, L% - 14%)(进一步变暗);tint 为 hsl(H, S%, L% + 40%)(大幅提亮用于背景);subtle 为 hsl(H, S% * 0.3, L% + 45%)(重度去饱和、接近白色)。
- 示例:品牌主色 #133174(hsl 224, 70%, 27%)推导出 --color-primary-subtle: hsl(224, 21%, 94%)、--color-primary-tint: hsl(224, 70%, 67%)、--color-primary: hsl(224, 70%, 27%)、--color-primary-hover: hsl(224, 70%, 19%)、--color-primary-active: hsl(224, 70%, 13%)。
- 若品牌含绿色或青色,将其向更明确的成功绿偏移,例如 --color-success-subtle: hsl(142, 20%, 94%)、--color-success: hsl(142, 60%, 35%)、--color-success-hover: hsl(142, 60%, 27%)。
- 用品牌色相去饱和生成带品牌色调的中性灰,避免通用灰(#666、#999、#eee)显得与品牌脱节:grey-900 为 hsl(H, 12%, 10%)(近黑,用于文字)、grey-700 为 hsl(H, 10%, 30%)(深色文字、图标)、grey-500 为 hsl(H, 8%, 50%)(次要文字、占位符)、grey-300 为 hsl(H, 6%, 70%)(禁用文字、弱标签)、grey-200 为 hsl(H, 5%, 82%)(边框、分隔线)、grey-100 为 hsl(H, 4%, 92%)(输入框背景、表格斑马纹)、grey-50 为 hsl(H, 3%, 96%)(页面背景、弱填充)。
- 示例:品牌主色 #133174(H = 224)推导出 --color-grey-900: hsl(224, 12%, 10%)、--color-grey-500: hsl(224, 8%, 50%)、--color-grey-200: hsl(224, 5%, 82%)、--color-grey-50: hsl(224, 3%, 96%)。
- 避免纯黑 #000000 配纯白 #FFFFFF 造成的眩光与视觉疲劳:文字用近黑(如 #222222 或 grey-900 token),背景用偏灰白(如 #EEEEEE 或 grey-50 token),在保持 WCAG AA/AAA 可访问性的同时更柔和专业。
- 语义色推导采用「视觉重量对齐」法:1) 选取标准语义色相(Error 为 0、Warning 为 38、Success 为 142);2) 以品牌主色的饱和度与亮度为起点对齐 S 与 L;3) 对感知更亮的色相(黄/橙 Warning)将亮度比 Success/Error 降低 5–10%,使其在页面上感觉同样「重」。
- 语义色参考表:Error 色相 0–10、饱和度匹配主色、亮度匹配主色;Warning 色相 35–45、饱和度匹配主色、亮度为主色 L - 10%;Success 色相 140–160、饱和度匹配主色、亮度匹配主色;Info 色相 210–230、饱和度匹配主色、亮度匹配主色。
- 遵循「鲜艳度」规则:若品牌色偏灰(低饱和),语义色也应略微去饱和;若品牌色是霓虹/高饱和,语义色也应跟随。一致性来自共享的强度。
- 焦点状态:默认使用品牌主色(若对比度足够高),否则回退到专用高对比蓝 hsl(215, 95%, 50%),token 为 --color-focus。
- 文本选中与列表高亮:使用主色相、极高亮度(90%+)与中等饱和度,token 为 --color-selection。
- 遮罩与弹窗背景:使用 grey-900 色相加 alpha 通道,token 为 --color-overlay: hsla(H, 12%, 10%, 0.5)。
- 骨架屏与加载态:用 grey-200 作底色、grey-100 作微光高亮,token 为 --color-skeleton。
- 禁用态:文字用 grey-500、背景/边框用 grey-200;避免用品牌色调作禁用背景,以防与可交互状态混淆。
- 品牌色调阴影:避免纯黑阴影,使用 hsla(H, 15%, 5%, alpha)(H 为品牌色相),token 为 --color-shadow-base。
- 链接:基础色用品牌主色或专用高可见蓝;已访问态将主色相向紫色偏移(+20)并降低饱和度;token 为 --color-link、--color-link-visited。
- 输入与校验:错误/成功态边框与文字用语义基色;非激活边框用 grey-200;激活/聚焦边框用品牌主色。
- 输出完整 token 集(:root 变量),覆盖 primary 系列、品牌色调中性灰、语义色及其 subtle 背景、功能色(focus/selection/overlay/skeleton/shadow)、链接色。
- 按检查清单自检:hover/active 是否由 base 亮度调整而来而非独立选取;中性灰是否带品牌色相;灰阶亮度升高时饱和度是否递减;是否避免纯黑配纯白;状态色视觉重量是否与主色匹配;若主色为橙/琥珀,warning 是否与其明显区分;每个品牌色是否至少有 subtle/base/hover/active 变体;语义色 S/L 是否对齐;--color-focus 是否满足对比度;selection/overlay/shadow 是否由品牌色相推导;禁用态是否为中性灰;链接是否有算法推导的 visited 态。
- 避免常见反模式:纯黑配纯白(改用近黑 #222 与偏灰白 #EEE);彩色区域旁用灰色边框(去掉边框或改用相邻色的深色/带色调版本);随机挑选 Warning/Error 色(从品牌 HSL 推导并对齐视觉重量);使用通用灰板 #666/#999(用低饱和品牌色相给中性灰着色)。
适用边界 · 注意事项
- 品牌色尚未确定或需要从零设计品牌识别时(本技能是从已有品牌色推导,而非创造品牌色)。
- 需要严格遵循外部既定设计规范(如 Material、政府无障碍标准指定色值)而无法自由推导时。
- 仅需单一颜色、不涉及完整 UI 配色系统时,直接选色即可,无需整套推导流程。