브랜드 색 하나로 밝은 배경, 어두운 텍스트, 반투명 보더 같은 파생 색을 만드는 건 전처리기(Sass `mix()`, `lighten()`)나 JS 색상 계산 라이브러리의 오래된 일이었습니다. 순수 CSS에는 "이 색과 저 색을 7:3으로 섞어라" 같은 연산이 없었기 때문입니다.
`color-mix(in oklch, var(--accent) 70%, white)`처럼 색 공간과 비율을 지정하면 브라우저가 직접 섞습니다. `in oklch`나 `in srgb` 같은 보간 공간을 고르는 게 핵심인데, oklch/oklab은 사람 눈에 고르게 밝기가 변해서 sRGB로 섞을 때 생기는 탁한 중간톤을 피할 수 있습니다. 커스텀 프로퍼티와 함께 쓰면 디자인 토큰 하나로 hover·disabled 톤을 전부 계산해 낼 수 있습니다.
기본 지원은 caniuse/MDN baseline을 확인하세요. 미지원 브라우저에서는 전처리기에서 미리 계산한 정적 색상값(또는 JS로 계산한 값)을 커스텀 프로퍼티에 직접 넣는 것이 대안입니다.
언제 쓰나
hover·disabled·틴트 배경처럼 브랜드 색 하나에서 파생 톤을 여러 개 뽑아낼 때.