CSS <color-interpolation-method> ãã¼ã¿å
<color-interpolation-method> 㯠CSS ã®ãã¼ã¿åã§ã <color> å¤éã®è£éã«ä½¿ç¨ããè²ç©ºéã表ãã¾ããããã使ç¨ããã¨ã color-mix() ã linear-gradient() ã®ãããªè²é¢é£ã®é¢æ°è¨æ³ã«ãããæ¢å®ã®è£éè²ç©ºéã䏿¸ããããã¨ãã§ãã¾ãã
<color> å¤ãè£éããå ´åãè£éè²ç©ºé㯠Oklab ãããã©ã«ãã§ãã
æ§æ
<color-interpolation-method> ã¯ãè£éã«ç©å½¢è²ç©ºéã使ç¨ããããæ¥µåº§æ¨è²ç©ºéã¨ãªãã·ã§ã³ã®è²ç¸è£éã使ç¨ããããæå®ãã¾ãã
in <rectangular-color-space> // ã¾ã㯠in <polar-color-space>[ <hue-interpolation method>]
å¤
<rectangular-color-space>-
srgbãsrgb-linearãdisplay-p3ãa98-rgbãprophoto-rgbãrec2020ãlabãoklabãxyzãxyz-d50ãxyz-d65ã®ããããã®ãã¼ã¯ã¼ãã§ãã <polar-color-space>-
hslãhwbãlchãoklchã®ããããã§ãã <hue-interpolation-method>çç¥å¯-
è²ç¸è£éã®ã¢ã«ã´ãªãºã ãããã©ã«ãå¤ã¯
shorter hueã§ãã <custom-color-space>-
<dashed-ident>ã§ãã«ã¹ã¿ã @color ãããã¡ã¤ã«ãåç §ãã¾ãã
形弿æ³
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<polar-color-space> =
hsl |
hwb |
lch |
oklch
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
<custom-color-space> =
<dashed-ident>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
ä¾
>ã°ã©ãã¼ã·ã§ã³ã使ç¨ããè£éè²ç©ºéã®æ¯è¼
次ã®ä¾ã¯ã linear-gradient() ã«ãã¾ãã¾ãªè£éè²ç©ºéã使ç¨ããå ´åã®å¹æã示ãã¦ãã¾ãã
HTML
<div>sRGB:</div>
<div class="gradient srgb"></div>
<div>Oklab:</div>
<div class="gradient oklab"></div>
<div>Oklch (with <code>longer hue</code>):</div>
<div class="gradient oklch-longer"></div>
CSS
.gradient {
height: 50px;
width: 100%;
}
.srgb {
background-image: linear-gradient(in srgb to right, blue, red);
}
.oklab {
background-image: linear-gradient(in oklab to right, blue, red);
}
.oklch-longer {
background-image: linear-gradient(in oklch longer hue to right, blue, red);
}
çµæ
å復ã°ã©ãã¼ã·ã§ã³ã§ã®è²ã®è£é
次ã®ä¾ã¯ãå復ã°ã©ãã¼ã·ã§ã³ã®è²ãè£éå¦çããéã«ãè²ç©ºéãæå®ããæ¹æ³ã示ãã¦ãã¾ãã
3 ã¤ã®ããã¯ã¹ã«ã¯ãrepeating-conic-gradient()ã repeating-linear-gradient()ãrepeating-radial-gradient() ã®å颿°ã使ç¨ãããç°ãªã種é¡ã®å復ã°ã©ãã¼ã·ã§ã³ã表示ãã¾ãã
æåã®ããã¯ã¹ã§ã¯ãLab è²ç©ºéã使ç¨ã㦠2 ã¤ã®è²å¤ã®éãè£éå¦çãã¾ãã
2 ã¤ç®ã¨ 3 ã¤ç®ã®ããã¯ã¹ã§ã¯ OkLCh ã使ç¨ãã¦ãããããã«è²ç¸å¤éã®è£éå¦çãæå®ããããã® <hue-interpolation-method> ãæå®ãã¦ãã¾ãã
HTML
<div class="gradient conic">conic</div>
<div class="gradient linear">linear</div>
<div class="gradient radial">radial</div>
CSS
ããããã®ã°ã©ãã¼ã·ã§ã³ã§åã 2 è²ã使ç¨ããã°ã©ãã¼ã·ã§ã³ã«ãããè²ã®è£éå¦çã«å¯¾ãã¦ã<hue-interpolation-method> ã¨è²ç©ºéãåã¼ãç°ãªã广ã示ãã¾ããã
.conic {
background-image: repeating-conic-gradient(
in lab,
burlywood,
blueviolet 120deg
);
}
.linear {
background-image: repeating-linear-gradient(
in oklch,
burlywood,
blueviolet 75px
);
}
.radial {
background-image: repeating-radial-gradient(
in oklch longer hue,
blueviolet 50px,
burlywood 100px
);
}
çµæ
1 ã¤ç®ã®ããã¯ã¹ã¨ 2 ã¤ç®ã®ããã¯ã¹ãæ¯è¼ããã¨ãç°ãªãè²ç©ºéã«ããã 2 ã¤ã®è²éã®è£éå¦çã®éãããããã¾ãã
2 ã¤ç®ã¨ 3 ã¤ç®ã®ããã¯ã¹ãæ¯è¼ããã¨ã<hue-interpolation-method> ã®éãã示ããã¦ãã¾ããç·å½¢ã°ã©ãã¼ã·ã§ã³ã§ã¯çãæ¹ï¼ããã©ã«ãï¼ã使ç¨ãããæ¾å°ã°ã©ãã¼ã·ã§ã³ã§ã¯é·ãæ¹ã使ç¨ããã¦ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Color Module Level 4 > # interpolation-space > |