OKLCH — CSS 色彩的未來

OKLCH 是 CSS Color Level 4 新標準。學習 OKLCH 的原理、優勢、CSS 語法和實際應用。感知均勻的色彩空間讓你的設計更精確。

為什麼需要 OKLCH?

傳統的 HSL 有一個致命缺陷:它在感知上不均勻。也就是說,同樣將亮度增加 10%,黃色和藍色的視覺變化幅度完全不同。

OKLCH 解決了這個問題。它是一個「感知均勻」的色彩空間,意味著:

  • 相同的數值變化 = 相同的視覺變化
  • 產生的漸層更加自然流暢
  • 色彩之間的對比度計算更準確
  • OKLCH 的三個參數

    oklch(L C H)

    參數意義範圍說明
    LLightness(亮度)0-10 = 黑,1 = 白
    CChroma(彩度)0-0.4+0 = 灰,越高越鮮豔
    HHue(色相)0-360色彩環上的角度

    CSS 中使用 OKLCH

    /* 基本用法 */
    color: oklch(0.63 0.11 230);
    
    /* 帶透明度 */
    background: oklch(0.63 0.11 230 / 50%);
    
    /* CSS 變數搭配 */
    :root {
      --brand: oklch(0.63 0.11 230);
      --brand-light: oklch(0.85 0.06 230);
      --brand-dark: oklch(0.40 0.11 230);
    }

    OKLCH vs HSL 的實際差異

    用 HSL 建立色彩系統時,你會發現:

  • hsl(60, 100%, 50%)(黃色)看起來比 hsl(240, 100%, 50%)(藍色)亮很多
  • 即使亮度值相同,視覺亮度差異很大
  • 用 OKLCH:

  • oklch(0.8 0.15 90)oklch(0.8 0.15 240) 的視覺亮度一致
  • 換色相不會意外改變亮度
  • 瀏覽器支援

    截至 2026 年,所有主流瀏覽器都已支援 OKLCH:Chrome、Firefox、Safari、Edge。可以安心使用。

    適用場景

  • 設計系統色板:用 OKLCH 生成的色階視覺上更均勻
  • 漸層效果:OKLCH 漸層不會出現灰色中間帶
  • 深色模式:只需調整 L 值,色彩關係保持一致
  • 無障礙設計:對比度計算更準確
  • 更多教學