感知色相,物理明度
色相取自 OKLab 極角,因此藍色在 CAM16 會偏紫的深藍區域依然保持藍色。明度直接錨定 CIE 1931 Y,讓亮度成為可量測的物理量,而不是感覺。
OKYCT 是為自發光顯示器打造的零依賴感知色彩引擎。以 OKLab 極角定義色相、以 CIE 亮度錨定視明度,並用代數證明無障礙對比度——不靠猜測。
MIT 授權 · TypeScript · 零執行期依賴
色相取自 OKLab 極角,因此藍色在 CAM16 會偏紫的深藍區域依然保持藍色。明度直接錨定 CIE 1931 Y,讓亮度成為可量測的物理量,而不是感覺。
由於 Y 對 OKLab 的 L 嚴格單調,只需一條解析導數即可在 5–7 次迭代內收斂,無需 CAM16 的巢狀二分搜尋,也沒有超越函數掃描。
超出色域的顏色會沿著等色相射線向尖峰折返。ΔH 在構造上恆為零,鮮紅永遠不會漂移成橘黃。
Tone 與 CIE Y 互為雙射,因此 WCAG 2.1 與 APCA 門檻都能以閉式代數反解。無障礙成為 O(1) 的約束條件,而不是事後稽核。
以下每個數字都由 @sandlada/benchmark 在你的瀏覽器中即時測得——OKYCT、Google MCU、culori 共用協議 v2 種子色對標。
由當前種子色即時測得 · #1A73E8
| 評測項 | 條件 | OKYCTCIE L* + okyctToRgb | Google MCUHCT tone solve | culoriOKLCH L* solve |
|---|---|---|---|---|
明度準確度與共用 L* 目標最大偏差
| T10–T95 色階 | p95 Δ0.14 | p95 Δ0.19 | p95 Δ0.24 |
平均色相漂移10 級色階平均值
| T10–T95 色階 | 0.08° w | 1.51° w | 0.12° w |
最大色相漂移OKLab 加權漂移 p95
| T10–T95 色階 | p95 0.24° | p95 3.37° | p95 0.24° |
語義角色 AA淺/深 MD3 字底角色對(各 11 對)
| T10–T95 色階 | L 11/11 · D 11/11 | L 11/11 · D 11/11 | L 11/11 · D 11/11 |
求解耗時每 10 級色階
| T10–T95 色階 | 0.11 ms | 0.48 ms | 0.79 ms |
既有的色貌模型是為反射光設計的。OKYCT 直接從像素的物理出發:以 OKLab 極平面描述色相、以 CIE 1931 Y 描述明度,中間則由嚴格單調的牛頓求解器銜接。最終得到一套在 OLED 上依然誠實、色域裁切零色相漂移,並且能直接證明對比度的色彩系統。
OLED、AMOLED 與 MicroOLED 在暗部行為截然不同。OKYCT 提供的是硬體預設檔,而不是一套通用的「暗色模式」。
像素完全關斷,換取極致靜態對比度與最低待機功耗。
以亞閾值偏壓維持有機層喚醒,在 120 Hz 下把階躍響應由 18.5 ms 壓縮至 1.6 ms,徹底消除果凍黑拖影。
抬升暗部並柔性限幅高光峰值,消除近眼 Pancake 透鏡的內反射光暈。
P = 1.05·Rγ + 0.85·Gγ + 2.40·Bγ。藍色是最耗電、老化最快的通道,因此高危色相會被收斂並微偏青藍。
引擎此刻正在你的瀏覽器中運行。改變種子色,粒子、色階列與 Token 角色都會沿著同一條感知管線同步更新。
色階是明度。令牌是這個明度被派去擔任的職責。OKYCT 保留一小套角色:主色、表面、狀態。上面的種子色可以換,這些職責不變。