mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 09:57:32 +09:00
Issue #2982 - clamp oklab/oklch to [0,1] before conversion to closer match spec
This commit is contained in:
parent
956b9caced
commit
8c4b5a0e58
2 changed files with 8 additions and 3 deletions
|
|
@ -184,9 +184,12 @@ LinearSRGBToEncoded(float aValue)
|
||||||
static nscolor
|
static nscolor
|
||||||
OKLabToSRGBColor(float aL, float aA, float aB, float aAlpha)
|
OKLabToSRGBColor(float aL, float aA, float aB, float aAlpha)
|
||||||
{
|
{
|
||||||
float lRoot = aL + 0.3963377774f * aA + 0.2158037573f * aB;
|
// Per CSS Color, the lightness component for Oklab/Oklch is clamped.
|
||||||
float mRoot = aL - 0.1055613458f * aA - 0.0638541728f * aB;
|
float lightness = mozilla::clamped(aL, 0.0f, 1.0f);
|
||||||
float sRoot = aL - 0.0894841775f * aA - 1.2914855480f * aB;
|
|
||||||
|
float lRoot = lightness + 0.3963377774f * aA + 0.2158037573f * aB;
|
||||||
|
float mRoot = lightness - 0.1055613458f * aA - 0.0638541728f * aB;
|
||||||
|
float sRoot = lightness - 0.0894841775f * aA - 1.2914855480f * aB;
|
||||||
|
|
||||||
float l = lRoot * lRoot * lRoot;
|
float l = lRoot * lRoot * lRoot;
|
||||||
float m = mRoot * mRoot * mRoot;
|
float m = mRoot * mRoot * mRoot;
|
||||||
|
|
|
||||||
|
|
@ -401,8 +401,10 @@ var noframe_container = document.getElementById("content");
|
||||||
["hsl(0 0% 0% / 0.5)", "rgba(0, 0, 0, 0.5)"],
|
["hsl(0 0% 0% / 0.5)", "rgba(0, 0, 0, 0.5)"],
|
||||||
["oklab(0 0 0 / 1)", "rgb(0, 0, 0)"],
|
["oklab(0 0 0 / 1)", "rgb(0, 0, 0)"],
|
||||||
["oklab(0 0 0 / 0.5)", "rgba(0, 0, 0, 0.5)"],
|
["oklab(0 0 0 / 0.5)", "rgba(0, 0, 0, 0.5)"],
|
||||||
|
["oklab(150% 0.5 0.2 / 1)", "rgb(255, 0, 0)"],
|
||||||
["oklch(0 0 0 / 1)", "rgb(0, 0, 0)"],
|
["oklch(0 0 0 / 1)", "rgb(0, 0, 0)"],
|
||||||
["oklch(0 0 0 / 0.5)", "rgba(0, 0, 0, 0.5)"],
|
["oklch(0 0 0 / 0.5)", "rgba(0, 0, 0, 0.5)"],
|
||||||
|
["oklch(150% 0.5 50 / 1)", "rgb(255, 0, 0)"],
|
||||||
];
|
];
|
||||||
|
|
||||||
var p = document.createElement("p");
|
var p = document.createElement("p");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue