oklab()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2023ë 5ì.
* Some parts of this feature may have varying levels of support.
oklab() í¨ì í기ë²ì 주ì´ì§ ììì Oklab ì ê³µê°ì¼ë¡ íííëë°, ì´ë ì¸ê°ì ëì´ ìì ì¸ìíë ë°©ìì 모방íë ¤ê³ í©ëë¤.
Oklabì ì§ê° ê¸°ë° ì ê³µê°ì¼ë¡, ë¤ìê³¼ ê°ì ìì ì ì ì©í©ëë¤.
- ì´ë¯¸ì§ì ëª ìì ê·¸ëë¡ ì ì§íë©´ì íìì¡°ë¡ ë³íí기
- ììì ì±ë를 ì¡°ì íë©´ì ìì¡°ì ë°ê¸°ë ê·¸ëë¡ ì ì§í기
- ë¶ëë½ê³ ê· ì¼í ìì ê·¸ë¼ë°ì´ì
ë§ë¤ê¸° (ì:
<canvas>ìììì ìëì¼ë¡ ë³´ê°(interpolation)íë ê²½ì°).
oklab()ì Oklab ì ê³µê°ì ì§êµ ì¢íê³(ì¦, a ì¶ê³¼ b ì¶)를 ì¬ì©íì¬ ììì ííí©ëë¤. ì´ ë°©ìì RGBë³´ë¤ ë ëì ë²ìì ìì, ì를 ë¤ì´ ìì´ë ê°ë§ ë° P3 ììì ííí ì ììµëë¤. ë§ì½ ê·¹ì¢í 기ë°ì ìì ìì¤í
(í¬ë¡ë§ì ìì¡°)ì ìíë¤ë©´ oklch()를 ì¬ì©íì¸ì.
구문
/* Absolute values */
oklab(40.1% 0.1143 0.045);
oklab(59.69% 0.1007 0.1191);
oklab(59.69% 0.1007 0.1191 / 0.5);
/* Relative values */
oklab(from green l a b / 0.5)
oklab(from #0000FF calc(l + 0.1) a b / calc(alpha * 0.9))
oklab(from hsl(180 100% 50%) calc(l - 0.1) a b)
ê°
ìëë ì ë ììê³¼ ìë ììì íì©ëë ê°ì ëí ì¤ëª ì ëë¤.
ì ëê° êµ¬ë¬¸
oklab(L a b[ / A])
매ê°ë³ìë ë¤ìê³¼ ê°ìµëë¤.
L-
0ê³¼1ì¬ì´ì<number>,0%ì100%ì¬ì´ì<percentage>, ëë í¤ìënone(ì´ ê²½ì°0%ì ëì¼)ì ì¬ì©í ì ììµëë¤. ì´ ê°ì ììì ì¸ì§ë ë°ê¸°(ì¼ë§ë ë°ê² ë³´ì¼ì§)를 ì§ì í©ëë¤. ì«ì0ì0%(ê²ìì), ì«ì1ì100%(í°ì)ì í´ë¹í©ëë¤. a-
-0.4ì0.4ì¬ì´ì<number>,-100%ì100%ì¬ì´ì<percentage>, ëë í¤ìënone(ì´ ê²½ì°0%ì ëì¼)ì ì¬ì©í ì ììµëë¤. ì´ ê°ì Oklab ìì ê³µê°ìaì¶ì ë°ë¼ ììì´ ì¼ë§ë ë ¹ì (ê°ì´-0.4ì ê°ê¹ì¸ìë¡) ëë 빨ê°ì (ê°ì´+0.4ì ê°ê¹ì¸ìë¡)ì¸ì§ë¥¼ ê²°ì í©ëë¤. ì´ ê°ë¤ì ë¶í¸ê° ìë ê°ì¼ë¡, ììì ìì를 모ë íì©íë©°, ì´ë¡ ì ì¼ë¡ë íê³ê° ìì´Â±0.4(±100%) ë²ì를 ë²ì´ë ê°ì ì¤ì í ì ììµëë¤. ê·¸ë¬ë ì¤ì ë¡ë±0.5를 ì´ê³¼í ì ììµëë¤. b-
-0.4ì0.4ì¬ì´ì<number>,-100%ì100%ì¬ì´ì<percentage>, ëë í¤ìënone(ì´ ê²½ì°0%ì ëì¼)ì ì¬ì©í ì ììµëë¤. ì´ ê°ì Oklab ìì ê³µê°ìbì¶ì ë°ë¼ ììì ì¼ë§ë íëì (ê°ì´-0.4ì ê°ê¹ì¸ìë¡) ëë ë ¸ëì (ê°ì´+0.4ì ê°ê¹ì¸ìë¡)ì¸ì§ë¥¼ ê²°ì í©ëë¤. ì´ ê°ë¤ì ë¶í¸ê° ìë ê°ì¼ë¡, ììì ìì를 모ë íì©íë©°, ì´ë¡ ì ì¼ë¡ë íê³ê° ìì´Â±0.4(±100%) ë²ì를 ë²ì´ë ê°ì ì¤ì í ì ììµëë¤. ê·¸ë¬ë ì¤ì ë¡ë±0.5를 ì´ê³¼í ì ììµëë¤. AOptional-
ììì ìí ì±ë ê°ì ëíë´ë
<alpha-value>ë¡, ì«ì0ì0%(ìì í í¬ëª ), ì«ì1ì100%(ìì í ë¶í¬ëª )ì ëíë ëë¤. ëí,noneí¤ìë를 ì¬ì©íì¬ ìí ì±ëì´ ììì ëª ìì ì¼ë¡ ì§ì í ì ììµëë¤.Aì±ë ê°ì´ ëª ìëì§ ìì¼ë©´ 기본ê°ì 100% ì ëë¤. ê°ì´ í¬í¨ë ê²½ì°ìë ì¬ëì (/)ê° ìì ë¶ìµëë¤.
ì°¸ê³ :
ìì¸í ë´ì©ì Missing color components ì¹ì
ìì noneì´ ë¯¸ì¹ë ìí¥ì íì¸íì¸ì.
ìëê° êµ¬ë¬¸
oklab(from <color> L a b[ / A])
매ê°ë³ìë ë¤ìê³¼ ê°ìµëë¤.
from <color>-
í¤ìë
fromì ìë ììì ì ìí ë íì í¬í¨ëë©°, ë¤ì ê¸°ì¤ ììì ëíë´ë<color>ê°ì´ ìµëë¤. ì´ ê¸°ì¤ ììì ìë ììì 기ë°ì´ ëë ìë ììì¼ë¡, ë¤ë¥¸ ìë ììì í¬í¨í 모ë ì í¨í<color>문ë²ì ì¬ì©í ì ììµëë¤. L-
0ê³¼1ì¬ì´ì<number>,0%ì100%ì¬ì´ì<percentage>, ëë í¤ìënone(ì´ ê²½ì°0%ì ëì¼)ì ì¬ì©í ì ììµëë¤. ì´ ê°ì ììì ì¸ì§ë ë°ê¸°(ì¼ë§ë ë°ê² ë³´ì¼ì§)를 ì§ì í©ëë¤. ì«ì0ì0%(ê²ìì), ì«ì1ì100%(í°ì)ì í´ë¹í©ëë¤. a-
-0.4ì0.4ì¬ì´ì<number>,-100%ì100%ì¬ì´ì<percentage>, ëë í¤ìënone(ì´ ê²½ì°0%ì ëì¼)ì ì¬ì©í ì ììµëë¤. ì´ ê°ì Oklab ìì ê³µê°ìaì¶ì ë°ë¼ ììì´ ì¼ë§ë ë ¹ì (ê°ì´-0.4ì ê°ê¹ì¸ìë¡) ëë 빨ê°ì (ê°ì´+0.4ì ê°ê¹ì¸ìë¡)ì¸ì§ë¥¼ ê²°ì í©ëë¤. ì´ ê°ë¤ì ë¶í¸ê° ìë ê°ì¼ë¡, ììì ìì를 모ë íì©íë©°, ì´ë¡ ì ì¼ë¡ë íê³ê° ìì´Â±0.4(±100%) ë²ì를 ë²ì´ë ê°ì ì¤ì í ì ììµëë¤. ê·¸ë¬ë ì¤ì ë¡ë±0.5를 ì´ê³¼í ì ììµëë¤. b-
-0.4ì0.4ì¬ì´ì<number>,-100%ì100%ì¬ì´ì<percentage>, ëë í¤ìënone(ì´ ê²½ì°0%ì ëì¼)ì ì¬ì©í ì ììµëë¤. ì´ ê°ì Oklab ìì ê³µê°ìbì¶ì ë°ë¼ ììì ì¼ë§ë íëì (ê°ì´-0.4ì ê°ê¹ì¸ìë¡) ëë ë ¸ëì (ê°ì´+0.4ì ê°ê¹ì¸ìë¡)ì¸ì§ë¥¼ ê²°ì í©ëë¤. ì´ ê°ë¤ì ë¶í¸ê° ìë ê°ì¼ë¡, ììì ìì를 모ë íì©íë©°, ì´ë¡ ì ì¼ë¡ë íê³ê° ìì´Â±0.4(±100%) ë²ì를 ë²ì´ë ê°ì ì¤ì í ì ììµëë¤. ê·¸ë¬ë ì¤ì ë¡ë±0.5를 ì´ê³¼í ì ììµëë¤. AOptional-
ììì ìí ì±ë ê°ì ëíë´ë
<alpha-value>ë¡, ì«ì0ì0%(ìì í í¬ëª ), ì«ì1ì100%(ìì í ë¶í¬ëª )ì ëíë ëë¤. ëí,noneí¤ìë를 ì¬ì©íì¬ ìí ì±ëì´ ììì ëª ìì ì¼ë¡ ì§ì í ì ììµëë¤.Aì±ë ê°ì´ ëª ìëì§ ìì¼ë©´ 기본ê°ì 100% ì ëë¤. ê°ì´ í¬í¨ë ê²½ì°ìë ì¬ëì (/)ê° ìì ë¶ìµëë¤.
ìë ìì ì¶ë ¥ ì±ë êµ¬ì± ìì ì ì
oklab() í¨ì ë´ìì ìë ìì 구문ì ì¬ì©í ê²½ì°, ë¸ë¼ì°ì ë ê¸°ì¤ ììì´ ì´ë¯¸ Oklab ììì¼ë¡ ì§ì ëì´ ìì§ ìë¤ë©´ ì´ë¥¼ ëë±í Oklab ììì¼ë¡ ë³íí©ëë¤. ì´ ììì ì¸ ê°ì§ ê°ë³ ìì ì±ë ê°. l (ëª
ë), a (ë
¹ì/빨ê°ì ì¶), b (íëì/ë
¸ëì ì¶), ìí ì±ë ê°(alpha)ì¼ë¡ ì ìë©ëë¤. ì´ ì±ë ê°ë¤ì ì¶ë ¥ ìì ì±ë ê°ì ì ìí ë í¨ì ë´ìì ì¬ì©í ì ìëë¡ ì ê³µë©ëë¤.
lì±ë ê°ì0ë¶í°1ì¬ì´(í¬í¨)ì<number>ë¡ ì´íë©ëë¤.aìbì±ë ê°ì ê°ê°-0.4ë¶í°0.4ì¬ì´(í¬í¨)ì<number>ë¡ ì´íë©ëë¤.alphaì±ë ê°ì0ë¶í°1ì¬ì´(í¬í¨)ì<number>ë¡ ì´íë©ëë¤.
ìë ììì ì ìí ë, ì¶ë ¥ ììì ê° ì±ëì ì¬ë¬ ê°ì§ ë°©ìì¼ë¡ ííí ì ììµëë¤. ìëììë ì´ë¥¼ ì¤ëª í기 ìí´ ëª ê°ì§ ìì 를 ì´í´ë³´ê² ìµëë¤.
첫 ë²ì§¸ì ë ë²ì§¸ ìì ììë ìë ìì 구문ì ì¬ì©íì§ë§, 첫 ë²ì§¸ ìì ë ê¸°ì¤ ììê³¼ ëì¼í ììì ì¶ë ¥íë©°, ë ë²ì§¸ ìì ë ê¸°ì¤ ììê³¼ ì í ê´ê³ìë ììì ì¶ë ¥í©ëë¤. ì¦, ì¤ì ë¡ë ìë ììì ìì±íì§ ììµëë¤! ì¤ì ì½ëììë ì´ë¬í ë°©ìë³´ë¤ë ì ë ìì ê°ì ì§ì ì¬ì©íë ê²ì´ ì¼ë°ì ì
ëë¤. íì§ë§ ìëì ì¸ oklab() 구문ì íìµíë ì¶ë°ì ì¼ë¡ ì´ë¬í ìì 를 í¬í¨íììµëë¤.
ê¸°ì¤ ììì hsl(0 100% 50%) (ì¦, red)ë¡ ì¤ì í´ ë³´ê² ìµëë¤. ë¤ì í¨ìë ê¸°ì¤ ììê³¼ ëì¼í ììì ì¶ë ¥í©ëë¤. ì´ë ê¸°ì¤ ììì l, a, b ì±ë ê°(0.627966, 0.22488, and 0.125859)ì ê·¸ëë¡ ì¶ë ¥ ì±ë ê°ì¼ë¡ ì¬ì©í기 ë문ì
ëë¤.
oklab(from hsl(0 100% 50%) l a b)
ì´ í¨ìì ì¶ë ¥ ììì oklab(0.627966 0.22488 0.125859) ì
ëë¤.
ë¤ì í¨ìë ì¶ë ¥ ììì ì±ë ê°ì ì ëê°ì¼ë¡ ì§ì íì¬, ê¸°ì¤ ììê³¼ 무ê´í ìì í ë¤ë¥¸ ììì ì¶ë ¥í©ëë¤.
oklab(from hsl(0 100% 50%) 42.1% 0.165 -0.101)
ì ìì ììë ì¶ë ¥ ììì´ oklab(0.421 0.165 -0.101)ë¡ ì¤ì ë©ëë¤.
ë¤ì í¨ìë ê¸°ì¤ ììì 기ë°ì¼ë¡ ìëì ì¸ ììì ìì±í©ëë¤.
oklab(from hsl(0 100% 50%) l -0.3 b)
ìì
hsl()ê¸°ì¤ ììì ëë±íoklab()ììì¼ë¡ ë³íí©ëë¤ âoklab(0.627966 0.22488 0.125859).- ì¶ë ¥ ììì
Lë°bì±ë ê°ì ê¸°ì¤ ìììLë°bì±ë ê°ê³¼ ëì¼íê² ì¤ì í©ëë¤. í´ë¹ ê°ì ê°ê°0.627966ê³¼0.125859ì ëë¤. - ì¶ë ¥ ììì
aì±ë ê°ì ê¸°ì¤ ììê³¼ 무ê´í ìë¡ì´ ê°-0.3ì¼ë¡ ì¤ì í©ëë¤.
ìµì¢
ì¶ë ¥ ììì oklab(0.627966 -0.3 0.125859)ì
ëë¤.
ì°¸ê³ : ìì ì¸ê¸íë¯ì´, ì¶ë ¥ ììì´ ê¸°ì¤ ììê³¼ ë¤ë¥¸ ìì 모ë¸ì ì¬ì©í ê²½ì°, ê¸°ì¤ ììì 백그ë¼ì´ëìì ì¶ë ¥ ììê³¼ ëì¼í 모ë¸ë¡ ë³íë©ëë¤. ì´ë ëì¼í ì±ëì ì¬ì©íì¬ í¸í ê°ë¥íëë¡ ííí기 ìí¨ì ëë¤.
ì§ê¸ê¹ì§ 본 ìì ììë ê¸°ì¤ ììê³¼ ì¶ë ¥ ìì 모ë ìí ì±ëì ëª
ìì ì¼ë¡ ì§ì íì§ ìììµëë¤. ì¶ë ¥ ììì ìí ì±ëì´ ì§ì ëì§ ìì¼ë©´, ê¸°ì¤ ììì ìí ì±ë ê°ê³¼ ëì¼í ê°ì´ 기본ê°ì¼ë¡ ì¤ì ë©ëë¤. ëí, ê¸°ì¤ ììì ìí ì±ëì´ ëª
ìëì§ ììê³ , ê·¸ê²ì´ ìë ììì´ ìëë¼ë©´, 기본ê°ì 1ì´ ë©ëë¤. ë°ë¼ì, ìì ìì ìì ê¸°ì¤ ììê³¼ ì¶ë ¥ ììì ìí ì±ë ê°ì 모ë 1ì
ëë¤.
ê¸°ì¤ ììê³¼ ì¶ë ¥ ììì ìí ì±ë ê°ì ëª ìì ì¼ë¡ ì§ì íë ëª ê°ì§ ìì 를 ì´í´ë³´ê² ìµëë¤. 첫 ë²ì§¸ ìì ììë ì¶ë ¥ ììì ìí ì±ë ê°ì ê¸°ì¤ ììì ìí ì±ë ê°ê³¼ ëì¼íê² ì¤ì í©ëë¤. ë°ë©´, ë ë²ì§¸ ìì ììë ê¸°ì¤ ììì ìí ì±ë ê°ê³¼ ê´ê³ìì´ ë¤ë¥¸ ì¶ë ¥ ìí ì±ë ê°ì ì§ì í©ëë¤.
oklab(from hsl(0 100% 50% / 0.8) l a b / alpha)
/* Computed output color: oklab(0.627966 0.22488 0.125859 / 0.8) */
oklab(from hsl(0 100% 50% / 0.8) l a b / 0.5)
/* Computed output color: oklab(0.627966 0.22488 0.125859 / 0.5) */
ë¤ì ìì ììë, hsl() ê¸°ì¤ ììì´ ë¤ì oklab()ì í´ë¹íë ê°ì¸ oklab(0.627966 0.22488 0.125859)ì¼ë¡ ë³íë©ëë¤. calc()ì ì¬ì©íì¬ L, a, b, A ê°ì ì°ì°ì ì ì©í ê²°ê³¼, ìµì¢
ì¶ë ¥ ììì oklab(0.827966 0.14488 -0.0741406 / 0.9)ì´ ë©ëë¤.
oklab(from hsl(0 100% 50%) calc(l + 0.2) calc(a - 0.08) calc(b - 0.2) / calc(alpha - 0.1))
ì°¸ê³ :
ê¸°ì¤ ììì ì±ë ê°ë¤ì <number> ê°ì¼ë¡ ë³íëë¯ë¡, ê³ì°í ë ë°ëì ì«ì를 ëí´ì¼ í©ëë¤. ì´ë í¹ì ì±ëì´ ì¼ë°ì ì¼ë¡ <percentage>, <angle> ëë 기í ê° ì íì íì©íë ê²½ì°ìë ë§ì°¬ê°ì§ì
ëë¤. ì를 ë¤ì´, <number> ê°ì <percentage> ê°ì ëíë ê²ì ëìíì§ ììµëë¤.
íì 구문
<oklab()> =
oklab( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )
<alpha-value> =
<number> |
<percentage>
ìì
>ëª ë ì¡°ì
ë¤ì ìì ììë oklab() í¨ìì ëª
ë, a ì¶, ê·¸ë¦¬ê³ b ì¶ ê°ì ì¡°ì í ëì ë³í를 ë³´ì¬ì¤ëë¤.
HTML
<div data-color="red-dark"></div>
<div data-color="red"></div>
<div data-color="red-light"></div>
<div data-color="green-dark"></div>
<div data-color="green"></div>
<div data-color="green-light"></div>
<div data-color="blue-dark"></div>
<div data-color="blue"></div>
<div data-color="blue-light"></div>
CSS
[data-color="red-dark"] {
background-color: oklab(0.05 0.4 0.4);
}
[data-color="red"] {
background-color: oklab(0.5 0.4 0.4);
}
[data-color="red-light"] {
background-color: oklab(0.95 0.4 0.4);
}
[data-color="green-dark"] {
background-color: oklab(5% -100% 0.4);
}
[data-color="green"] {
background-color: oklab(50% -100% 0.4);
}
[data-color="green-light"] {
background-color: oklab(95% -100% 0.4);
}
[data-color="blue-dark"] {
background-color: oklab(0.05 -0.3 -0.4);
}
[data-color="blue"] {
background-color: oklab(0.5 -0.3 -0.4);
}
[data-color="blue-light"] {
background-color: oklab(0.95 -0.3 -0.4);
}
ê²°ê³¼
í¬ëª ë ì¡°ì
ë¤ì ìì ë oklab() í¨ìì A (ìí) ê°ì ì¡°ì í ëì ë³í를 ë³´ì¬ì¤ëë¤.
red ë° red-alpha ììë #background-div ìì ìì ê²¹ì³ ìì´, í¬ëª
ëê° ì´ë»ê² ì ì©ëëì§ë¥¼ íì¸í ì ììµëë¤.
red-alpha ììì í¬ëª
ë를 0.4ë¡ ì¤ì íë©´, red ììë³´ë¤ ë í¬ëª
íê² ë³´ì´ê² ë©ëë¤.
HTML
<div id="background-div">
<div data-color="red"></div>
<div data-color="red-alpha"></div>
</div>
CSS
[data-color="red"] {
background-color: oklab(0.628 0.225 0.126);
}
[data-color="red-alpha"] {
background-color: oklab(0.628 0.225 0.126 / 0.4);
}
ê²°ê³¼
ìì ì¶ ì¡°ì
ì´ ìì ë oklab() í¨ììì a ë° b ê°ì a ì¶ê³¼ b ì¶ì ì ëê³¼ ì¤ê° ì§ì ì ì¤ì íì ëì í¨ê³¼ë¥¼ ë³´ì¬ì¤ëë¤. a ì¶ì ë
¹ì(-0.4)ìì 빨ê°ì(0.4)ì¼ë¡ ì´ëíê³ , b ì¶ì ë
¸ëì(-0.4)ìì íëì(0.4)ì¼ë¡ ì´ëí©ëë¤.
HTML
<div data-color="red-yellow"></div>
<div data-color="red-zero"></div>
<div data-color="red-blue"></div>
<div data-color="zero-yellow"></div>
<div data-color="zero-zero"></div>
<div data-color="zero-blue"></div>
<div data-color="green-yellow"></div>
<div data-color="green-zero"></div>
<div data-color="green-blue"></div>
CSS
CSSì background-color ìì±ì ì¬ì©íì¬ oklab() ìì í¨ìì a ë° b ê°ì a ì¶ê³¼ b ì¶ì ë°ë¼ ë³íìì¼ ê° ê²½ì°ìì ìµë, ì¤ê°, ìµìê°ì´ 미ì¹ë ìí¥ì ë³´ì¬ì¤ëë¤.
/* a-axis max, variable b-axis */
[data-color="red-yellow"] {
background-color: oklab(0.5 0.4 0.4);
}
[data-color="red-zero"] {
background-color: oklab(0.5 0.4 0);
}
[data-color="red-blue"] {
background-color: oklab(0.5 0.4 -0.4);
}
/* a-axis center, variable b-axis */
[data-color="zero-yellow"] {
background-color: oklab(0.5 0 0.4);
}
[data-color="zero-zero"] {
background-color: oklab(0.5 0 0);
}
[data-color="zero-blue"] {
background-color: oklab(0.5 0 -0.4);
}
/* a-axis min, variable b-axis */
[data-color="green-yellow"] {
background-color: oklab(0.5 -0.4 0.4);
}
[data-color="green-zero"] {
background-color: oklab(0.5 -0.4 0);
}
[data-color="green-blue"] {
background-color: oklab(0.5 -0.4 -0.4);
}
ê²°ê³¼
ì¼ìª½ ì´ì b ì¶ì ë
¸ëì ë (-0.4)ì ìê³ , ì¤ë¥¸ìª½ ì´ì b ì¶ì íëì ë (0.4)ì ìì¹í©ëë¤. 맨 ì íì a ì¶ì 빨ê°ì ë (-0.4)ì, 맨 ìë íì a ì¶ì ë
¹ì ë (0.4)ì ëíë
ëë¤. ê°ì´ë° ì´ê³¼ íì ê°ê° ê° ì¶ì ì¤ê° ì§ì ì´ë©°, ì¤ì ì
ì íìì¼ë¡ íìë©ëë¤. ì´ë 빨ê°, ì´ë¡, ë
¸ë, íëì´ í¬í¨ëì§ ìì ìíë¡, ë ì¶ì ê°ì´ 모ë 0ì¸ ê²½ì°ì
ëë¤.
a ì¶ ë° b ì¶ì ë°ë¼ ì í ê·¸ë¼ëì¸í¸ ì ì©
ì´ ìì ìë oklab() í¨ìì ê°ì´ a ì¶(빨ê°ììì ë
¹ì)ê³¼ b ì¶(ë
¸ëììì íëì)ì ë°ë¼ ì´ë»ê² ë³ííëì§ë¥¼ ë³´ì¬ì£¼ë ì í ê·¸ë¼ëì¸í¸ë¥¼ í¬í¨í©ëë¤. ê° ê·¸ë¼ëì¸í¸ ì´ë¯¸ì§ìì í ì¶ì ê³ ì ë ìí를 ì ì§íê³ , ë¤ë¥¸ ì¶ì ë®ì ê°ìì ëì ê°ì¼ë¡ ì ì§ì ì¼ë¡ ë³íí©ëë¤.
CSS
/* a-axis gradients */
[data-color="red-to-green-yellow"] {
background-image: linear-gradient(to right, oklab(50% 0.4 0.4), oklab(50% -0.4 0.4));
}
[data-color="red-to-green-zero"] {
background-image: linear-gradient(to right, oklab(50% 0.4 0), oklab(50% -0.4 0));
}
[data-color="red-to-green-blue"] {
background-image: linear-gradient(to right, oklab(50% 0.4 -0.4), oklab(50% -0.4 -0.4));
}
/* b-axis gradients */
[data-color="yellow-to-blue-red"] {
background-image: linear-gradient(to right, oklab(50% 0.4 0.4), oklab(50% 0.4 -0.4));
}
[data-color="yellow-to-blue-zero"] {
background-image: linear-gradient(to right, oklab(50% 0 0.4), oklab(50% 0 -0.4));
}
[data-color="yellow-to-blue-green"] {
background-image: linear-gradient(to right, oklab(50% -0.4 0.4),oklab(50% -0.4 -0.4));
}
ê²°ê³¼
oklab()ì ì¬ì©í ìë ìì
ì´ ìì ë ì¸ ê°ì <div> ììì ìë¡ ë¤ë¥¸ ë°°ê²½ìì ì ì©í©ëë¤. ê°ì´ë° ììë ìì ëì§ ìì --base-colorê° ì¬ì©ëê³ , ì¼ìª½ê³¼ ì¤ë¥¸ìª½ ìììë ê°ê° ë°ìì§ ë²ì ê³¼ ì´ëìì§ ë²ì ì --base-color ë³íì ì ì©í©ëë¤.
ì´ ë³í ììë¤ì ìë ììì ì¬ì©íì¬ ì ìë©ëë¤. --base-color ì¬ì©ì ì ì ìì±ì´ oklab() í¨ìì ì ë¬ëë©°, ì¶ë ¥ ììì ëª
ë ì±ëì ì¡°ì íì¬ ìíë í¨ê³¼ë¥¼ ë§ëëë¤. ì´ë¥¼ ìí´ calc() í¨ì를 ì¬ì©íë©°, ë°ì ììì ëª
ë ì±ëì 0.15(15%)를 ëíê³ , ì´ëì´ ììì 0.15(15%)를 ë¹¼ì ì¡°ì í©ëë¤.
CSS
:root {
--base-color: orange;
}
#one {
background-color: oklab(from var(--base-color) calc(l + 0.15) a b);
}
#two {
background-color: var(--base-color);
}
#three {
background-color: oklab(from var(--base-color) calc(l - 0.15) a b);
}
ê²°ê³¼
ì¶ë ¥ ê²°ê³¼ë ë¤ìê³¼ ê°ìµëë¤.
ëª ì¸ì
| Specification |
|---|
| CSS Color Module Level 5 > # relative-Oklab > |
| CSS Color Module Level 4 > # ok-lab > |
ë¸ë¼ì°ì í¸íì±
ê°ì´ 보기
- The
<color>data type for a list of all color notations lab()andoklch()color functions- Using relative colors
- CSS colors module
- A perceptual color space for image processing on bottosson.github.io (2023)
- OKLAB color wheel on observablehq.com