color-mix()
Baseline 2023 (Chrome 111, Safari 16.2, Firefox 113). Omitir o espaço de cor usa oklab por padrão (Safari 26.2, Chrome, Firefox); mais de duas cores é mais recente (Chrome 150, Firefox 150).
Chrome 111
Edge 111
Safari 16.2
Firefox 113
Mistura duas cores num espaço de cor escolhido, então você deriva cores de hover, tom e borda de um único token de marca sem pré-processador. Misturar em oklab/oklch dá resultados perceptualmente uniformes.
CSS
.fx-006{
--brand:#2563eb;
background:var(--brand);color:#fff;border:1px solid color-mix(in oklab,var(--brand),black 25%);
padding:10px 18px;border-radius:8px;font:600 15px system-ui;
}
.fx-006:hover{background:color-mix(in oklab,var(--brand),white 15%)}
.fx-006:active{background:color-mix(in oklab,var(--brand),black 15%)}
.fx-006 :is(a,button,input,select,textarea):focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
HTML
<button class="fx-006">Mixed hover</button>Fallback: Declare uma cor simples primeiro, depois a linha com color-mix(); navegadores sem suporte ficam com a simples.
Prompt
Derive cada cor secundária (hover, active, borda, fundo sutil) de uma única custom property `--brand` com `color-mix(in oklab, var(--brand), white|black N%)`. Sempre nomeie o espaço de cor explicitamente (oklab ou oklch) para resultados consistentes, mantenha a cor base como declaração de fallback logo antes, e não fixe variantes em hex.