CSS conic-gradient() 颿°
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020å¹´11æ.
* Some parts of this feature may have varying levels of support.
conic-gradient() 㯠CSS ã®é¢æ°ã§ã (ä¸å¿ããåºããã®ã§ã¯ãªã) ä¸å¿ç¹ã®å¨ããåããªããè²ãå¤åããç»åãçæãã¾ããæåã°ã©ãã¼ã·ã§ã³ã®ä¾ã¨ãã¦ã¯ãåã°ã©ããè²ç¸ç°ãªã©ãããã¾ãã conic-gradient() 颿°ã®çµæã¯ <gradient> ãã¼ã¿åã®ãªãã¸ã§ã¯ãã§ããããã㯠<image> ã®ç¹æ®åã§ãã
試ãã¦ã¿ã¾ããã
background: conic-gradient(red, orange, yellow, green, blue);
background: conic-gradient(
from 0.25turn at 50% 30%,
#f69d3c,
10deg,
#3f87a6,
350deg,
#ebf8e1
);
background: conic-gradient(from 3.1416rad at 10% 50%, #e66465, #9198e5);
background: conic-gradient(
red 6deg,
orange 6deg 18deg,
yellow 18deg 45deg,
green 45deg 110deg,
blue 110deg 200deg,
purple 200deg
);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
æ§æ
/* åä¸è²ã®èµ¤ã®ã°ã©ãã¼ã·ã§ã³ */
conic-gradient(red)
/* 45 度å転ããæå½¢ã°ã©ãã¼ã·ã§ã³ã
éã§å§ã¾ã赤ã§çµãã */
conic-gradient(from 45deg, blue, red)
/* éã¿ããã£ãç´«ã®ããã¯ã¹ãã°ã©ãã¼ã·ã§ã³ã¯éãã赤ã¸ã¨
é²ã¿ã¾ããããããæå½¢ã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ãå·¦ä¸ã«ãã
ãããå³ä¸ã®ååã®ä¸ããè¦ãã¾ããã */
conic-gradient(from 90deg at 0 0, blue, red)
/* åçè²ç©ºéã§ã®è£é
è²ç¸ã®è£éæ¹æ³ã« longer ãæå® */
conic-gradient(in hsl longer hue, red, blue, green, red)
/* è²ç¸ç° */
conic-gradient(
hsl(360 100% 50%),
hsl(315 100% 50%),
hsl(270 100% 50%),
hsl(225 100% 50%),
hsl(180 100% 50%),
hsl(135 100% 50%),
hsl(90 100% 50%),
hsl(45 100% 50%),
hsl(0 100% 50%)
)
å¤
<angle>-
fromãã¼ã¯ã¼ãã«ç¶ãã¦è§åº¦ãæå®ãããã¨ã§ãæè¨åãã®ã°ã©ãã¼ã·ã§ã³ã®ä½ç½®ãå®ç¾©ãã¾ãã <position>-
background-positionããããã£ã¨åãé·ããé åºããã¼ã¯ã¼ãå¤ã使ç¨ãã¦ãpositionå¤ã¯ã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ãå®ç¾©ãã¾ããæå®ããã¦ããªãå ´åãæ¢å®ã§ã¯positionã«centerå¤ã使ç¨ãããã°ã©ãã¼ã·ã§ã³ãä¸å¤®ã«é ç½®ãããã¨ãããã¨ã«ãªãã¾ãã <angular-color-stop>-
è²çµç±ç¹ã®
<color>å¤ã§ããã®å¾ã«ãªãã·ã§ã³ã§ 1 ï½ 2 åã®ä½ç½® (ã°ã©ãã¼ã·ã§ã³ã®åå¨è»¸ã«æ²¿ã£ã<angle>) ãç¶ãã¾ãã <color-hint>-
飿¥ããè²çµç±ç¹ã®éã§ã°ã©ãã¼ã·ã§ã³ãã©ã®ããã«é²è¡ããããå®ç¾©ããè£éã®ãã³ãã§ããé·ãã¯ã 2 ã¤ã®è²çµç±ç¹ã®éã®ã©ã®ä½ç½®ã§ã°ã©ãã¼ã·ã§ã³ã®è²ãè²ã®é·ç§»ã®ä¸éç¹ã«å°éããããå®ç¾©ãã¾ããçç¥ããå ´åãè²ã®é·ç§»ã®ä¸éç¹ã¯ 2 ã¤ã®è²çµç±ç¹éã®ä¸éç¹ã«ãªãã¾ãã
ã¡ã¢: æå½¢ã°ã©ãã¼ã·ã§ã³ã«ãããè²çµç±ç¹ã¯ãç·å½¢ã°ã©ãã¼ã·ã§ã³ã«ãããè²çµç±ç¹ã¨åãã«ã¼ã«ã«å¾ãã¾ãã
解説
ä»ã®ã°ã©ãã¼ã·ã§ã³ã¨åæ§ãæå½¢ã°ã©ãã¼ã·ã§ã³ã¯å
å¨çãªå¯¸æ³ãæã¡ã¾ãããã¤ã¾ããèªç¶ã®å¯¸æ³ãæ¨å¥¨ããã寸æ³ãæ¨å¥¨ããã縦横æ¯ãããã¾ãããèªèº«ã®å¯¸æ³ã¯é©ç¨å
ã®è¦ç´ ã®å¯¸æ³ãã¾ãã¯è¦ç´ ã®å¯¸æ³ä»¥å¤ã§è¨å®ããã <image> ã®å¯¸æ³ã«ä¸è´ãã¾ãã
ç¹°ãè¿ã㦠360 度ã®å転ãåããæå½¢ã°ã©ãã¼ã·ã§ã³ãçæããã«ã¯ã代ããã« repeating-conic-gradient() 颿°ã使ç¨ãã¦ãã ããã
<gradient> 㯠<image> ãã¼ã¿åã«å±ããããã <image> ã使ç¨ã§ããã¨ããã§ãã使ç¨ã§ãã¾ããããã®ããã conic-gradient() 㯠background-color ãããã®ä»ã® <color> ãã¼ã¿åã使ç¨ããããããã£ã§ã¯åä½ãã¾ããã
ã¡ã¢: è±èªã§ã¯ãªã "conic" ï¼åéï¼ã°ã©ãã¼ã·ã§ã³ã¨å¼ã°ããã®ããè²çµç±ç¹ã䏿¹ãããã䏿¹ãæããå ´åãä¸ããè¦ãåéã®ããã«è¦ããããã§ãã
æåã°ã©ãã¼ã·ã§ã³ã®æ§æ
æå½¢ã°ã©ãã¼ã·ã§ã³ã®æ§æã¯æ¾å°ã°ã©ãã¼ã·ã§ã³ã¨ä¼¼ã¦ãã¾ãããè²çµç±ç¹ã¯ã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ããç¾ããã°ã©ãã¼ã·ã§ã³è»¸ä¸ã§ã¯ãªããã°ã©ãã¼ã·ã§ã³åå¼§ãããªãã¡åå¨ä¸ã«é ç½®ããã¾ããæå½¢ã°ã©ãã¼ã·ã§ã³ã§ã¯ãè²ã®é·ç§»ã¯åã®ä¸å¿ãåãããã«ãä¸ããå§ã¾ã£ã¦æè¨åãã«è¡ããã¾ããæ¾å°ã°ã©ãã¼ã·ã§ã³ã§ã¯ãè²ã®é·ç§»ã¯æ¥åã®ä¸å¿ããå¤ã«åãã¦ããã¹ã¦ã®æ¹åã«è¡ããã¾ãã

æå½¢ã°ã©ãã¼ã·ã§ã³ã¯ãå転è§åº¦ã¨ã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ãæå®ããè²çµç±ç¹ã®ãªã¹ããæå®ãã¾ããé·ã (<length>) ãæå®ãã¦è²çµç±ç¹ãé
ç½®ããç·å½¢ã°ã©ãã¼ã·ã§ã³ãæ¾å°ã°ã©ãã¼ã·ã§ã³ã¨ã¯ç°ãªããæå½¢ã°ã©ãã¼ã·ã§ã³ã®è²çµç±ç¹ã¯è§åº¦ãæå®ãã¾ããåä½ã«ã¯åº¦ã表ã degãã°ã©ã¼ãã表ã gradãã©ã¸ã¢ã³ã表ã radãå転æ°ã表ã turn ãããã¾ãã 1 ã¤ã®å㯠360 度ã 400 ã°ã©ã¼ãã 2Ï ã©ã¸ã¢ã³ã 1 å転ã«ãªãã¾ããæå½¢ã°ã©ãã¼ã·ã§ã³ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã¯ãã¼ã»ã³ãå¤ãåãä»ãã¦ããã 100% 㯠360 度ã«ç¸å½ãã¾ãããããã¯ä»æ§ã«ã¯ããã¾ããã
æ¾å°ã°ã©ãã¼ã·ã§ã³ã¨åæ§ã«ãæå½¢ã°ã©ãã¼ã·ã§ã³ã®æ§æã§ã¯ãã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ãç»åå ã®ã©ãã«ã§ãããããã¯ç»åã®å¤å´ã«ã§ãé ç½®ãããã¨ãã§ãã¾ããä½ç½®ã®å¤ã¯ã 2 å¤ã®èæ¯ä½ç½®ã®æ§æã«ä¼¼ã¦ãã¾ãã
ã°ã©ãã¼ã·ã§ã³åå¼§ã¯ãã°ã©ãã¼ã·ã§ã³ã®åå¨ã§ããã°ã©ãã¼ã·ã§ã³ã¾ãã¯åå¼§ã®å§ç¹ã¯åãã¤ã¾ã 12 æã®æ¹åã§ããããã¦ãã°ã©ãã¼ã·ã§ã³ã¯ from ã®è§åº¦ã ãå転ãã¾ããã°ã©ãã¼ã·ã§ã³ã®è²ã¯ãè§åº¦ã®ã¤ããè²çµç±ç¹ããããã®éå§ç¹ãçµäºç¹ãããã³ããã®éãããã³ãä»»æã®è§åº¦ã®ã¤ããè²çµç±ç¹ã«ãã£ã¦æ±ºå®ããã¾ããè²éã®é·ç§»ã¯ã飿¥ããè²ã®è²çµç±ç¹ã®éã®ã«ã©ã¼ãã³ãã§å¤æ´ãããã¨ãã§ãã¾ãã
ã°ã©ãã¼ã·ã§ã³ã®ã«ã¹ã¿ãã¤ãº
ã°ã©ãã¼ã·ã§ã³åå¼§ä¸ã«è§åº¦ã®ã¤ããè²çµç±ç¹ãããã«è¿½å ãããã¨ã§ãè¤æ°ã®è²ã®éã§é«åº¦ãªã«ã¹ã¿ãã¤ãºãããé·ç§»ãè¡ããã¨ãã§ãã¾ããè²çµç±ç¹ã®ä½ç½®ã¯ã <angle> ã使ã£ã¦æç¤ºçã«å®ç¾©ãããã¨ãã§ãã¾ããè²çµç±ç¹ã®ä½ç½®ãæå®ããªãå ´åã¯ãåã®è²çµç±ç¹ã¨å¾ã®è²çµç±ç¹ã®ä¸éã«é
ç½®ããã¾ããæåã®è²çµç±ç¹ã¨æå¾ã®è²çµç±ç¹ã«è§åº¦ãæå®ããªãå ´åããã®å¤ã¯ãããã 0deg 㨠360deg ã§ããæ¬¡ã®2ã¤ã®ã°ã©ãã¼ã·ã§ã³ã¯åçã§ãã
conic-gradient(red, orange, yellow, green, blue);
conic-gradient(red 0deg, orange 90deg, yellow 180deg, green 270deg, blue 360deg);
æ¢å®ã§ã¯ãè²ã¯ããè²çµç±ç¹ã®è²ããæ¬¡ã®è²çµç±ç¹ã®è²ã¸ã¨ã¹ã ã¼ãºã«ç§»è¡ããè²ã¨è²ã®ä¸éç¹ãè²ç§»è¡ã®ä¸éç¹ã¨ãªãã¾ããã«ã©ã¼ãã³ãã追å ãã¦è²é·ç§»ã®ä¸éç¹ã示ããã¨ã§ããã®è²é·ç§»ã®ä¸éç¹ã 2 ã¤ã®è²çµç±ç¹éã®ä»»æã®ä½ç½®ã«ç§»åããããã¨ãã§ãã¾ããæ¬¡ã®ä¾ã¯ãéå§ç¹ãã 10% ã®å°ã¾ã§ã¯èµ¤ä¸è²ã§ãå転㮠80% 以ä¸ã§èµ¤ããéã«ç§»è¡ããæå¾ã® 10% ã¯éä¸è²ã«ãªã£ã¦ãã¾ãããããã赤ããéã¸ã®ã°ã©ãã¼ã·ã§ã³å¤åã®ä¸éç¹ã¯ 20ï¼ ã®ä½ç½®ã«ãªãã¾ãã 80grad (20ï¼ ) ã®ã«ã©ã¼ãã³ãããªãã£ãå ´å㯠50ï¼ ã®ä½ç½®ã«ãªãã¾ãã
conic-gradient(red 40grad, 80grad, blue 360grad);
2 ã¤ä»¥ä¸ã®è²çµç±ç¹ãåãå ´æã«ããå ´åããã®å ´æã§å®£è¨ãããæåã®è²ã¨æå¾ã®è²ã®éã«ä¸é£ç¶ã® (硬ã) è²å¤åã¨ãã¦è¡¨ç¤ºããã¾ããæå½¢ã°ã©ãã¼ã·ã§ã³ã使ç¨ãã¦åã°ã©ãã使ããã«ã¯ã â èæ¯ç»åã¯ã¢ã¯ã»ã·ããªãã£ã確ä¿ã§ããªããããæ£ããæ¹æ³ã§ã¯ããã¾ããã â 飿¥ãã 2 ã¤ã®è²çµç±ç¹ã®è²çµç±ç¹ã®è§åº¦ãåãã§ããã硬ãè²çµç±ç¹ã使ç¨ãã¾ãããããå®ç¾ããæãç°¡åãªæ¹æ³ã¯ãè¤æ°ã®ãã¸ã·ã§ã³ã®è²çµç±ç¹ã使ç¨ãããã¨ã§ããæ¬¡ã® 2 ã¤ã®å®£è¨ã¯ç価ã§ãã
conic-gradient(white 0.09turn, #bbbbbb 0.09turn, #bbbbbb 0.27turn, #666666 0.27turn, #666666 0.54turn, black 0.54turn);
conic-gradient(white 0turn 0.09turn, #bbbbbb 0.09turn 0.27turn, #666666 0.27turn 0.54turn, black 0.54turn 1turn);
è²çµç±ç¹ã¯ãæé ã«ä¸¦ã¹ãå¿ è¦ãããã¾ããå¾ç¶ã®è²çµç±ç¹ãããä½ãå¤ã§ãã£ãå ´åãåã®è²çµç±ç¹ã®å¤ã䏿¸ããã硬ã (ä¸é£ç¶ã®) è²å¤åãçæãã¾ããæ¬¡ã®ä¾ã§ã¯ã 30% ã®å°ç¹ã§èµ¤ããé»è²ã«å¤åããã°ã©ãã¼ã·ã§ã³ã® 35% ã®å°ç¹ã§é»è²ããéã«å¤åãã¦ãã¾ãã
conic-gradient(red .8rad, yellow .6rad, blue 1.3rad);
æå½¢ã°ã©ãã¼ã·ã§ã³ã§ã¯ãä»ã«ããã¾ãã¾ãªå¹æãä½ãåºããã¨ãã§ãã¾ããå¥ããã叿¾æ¨¡æ§ããã®ä¸ã¤ã§ããå·¦ä¸ã¨å³ä¸ã®ç½ãå·¦ä¸ã¨å³ä¸ã®é»ã§åååãä½ããã°ã©ãã¼ã·ã§ã³ã16å (横ã«4åãä¸ã«4å) ç¹°ãè¿ãã¨å¸æ¾æ¨¡æ§ã«ãªãã¾ãã
conic-gradient(white 90deg, black 0.25turn 0.5turn, white calc(pi * 1rad) calc(pi * 1.5rad), black 300grad);
background-size: 25% 25%;
ããã¦ãããã§ãããç°ãªãè§åº¦ã®åä½ãæ··ãã¦ä½¿ããã¨ãã§ãã¾ãããããã¦ããã¾ããããä¸è¨ã®ãã®ã¯èªã¿ã«ããã§ããã
形弿æ³
<conic-gradient()> =
conic-gradient( [ <conic-gradient-syntax> ] )
<conic-gradient-syntax> =
[ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>
<position> =
<position-one> |
<position-two> |
<position-four>
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<angular-color-stop-list> =
<angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?
<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>
<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}
<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}
<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>
<angular-color-stop> =
<color> <color-stop-angle>?
<angular-color-hint> =
<angle-percentage> |
<zero>
<length-percentage> =
<length> |
<percentage>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
<color-stop-angle> =
[ <angle-percentage> | <zero> ]{1,2}
<angle-percentage> =
<angle> |
<percentage>
ã¢ã¯ã»ã·ããªãã£
ãã©ã¦ã¶ã¼ã¯ãèæ¯ç»åã«é¢ããç¹å¥ãªæ å ±ãæ¯æ´æè¡ã«æä¾ãã¾ãããããã¯ä¸»ã«ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã«ã¨ã£ã¦éè¦ãªãã¨ã§ãã¹ã¯ãªã¼ã³ãªã¼ãã¼ã¯ãã®åå¨ãåç¥ããªããããã¦ã¼ã¶ã¼ã«ä½ãä¼ãããã¾ãããæå½¢ã°ã©ãã¼ã·ã§ã³ã使ã£ã¦åã°ã©ãã叿¾æ¨¡æ§ãªã©ã®å¹æãåºããã¨ã¯å¯è½ã§ããã CSS ç»åã¯ä»£æ¿ããã¹ããå²ãå½ã¦ããã¤ãã£ããªæ¹æ³ãæä¾ãã¦ããªããããæå½¢ã°ã©ãã¼ã·ã§ã³ã§è¡¨ç¾ãããç»åã¯ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®ã¦ã¼ã¶ã¼ãèªç¥ãããã¨ã¯ã§ãã¾ããããã¼ã¸ã®å ¨ä½çãªç®çãçè§£ããããã«éè¦ãªæ å ±ãç»åã«å«ã¾ãã¦ããå ´åã¯ãææ¸å ã§æå³çã«è¨è¿°ããæ¹ãè¯ãã§ãããã
ä¾
>40 度ã®ã°ã©ãã¼ã·ã§ã³
div {
background-image: conic-gradient(from 40deg, white, black);
}
ä¸å¿ãããããã°ã©ãã¼ã·ã§ã³
div {
background: conic-gradient(from 0deg at 0% 25%, blue, green, yellow 180deg);
}
ã°ã©ãã¼ã·ã§ã³ã®åã°ã©ã
ãã®ä¾ã§ã¯ã飿¥ããè²ãåãè²çµç±ç¹å¤ãæã¤ãè¤æ°ä½ç½®ã®è²çµç±ç¹ã使ç¨ãã¦ãããç¸æ¨¡æ§å¹æãçæãã¦ãã¾ãã
div {
background: conic-gradient(red 36deg, orange 36deg 170deg, yellow 170deg);
border-radius: 50%;
}
叿¾æ¨¡æ§
div {
background: conic-gradient(
white 0.25turn,
black 0.25turn 0.5turn,
white 0.5turn 0.75turn,
black 0.75turn
)
top left / 25% 25% repeat;
border: 1px solid;
}
è²ç¸ã§ã®è£é
ãã®è£éå¦çã®ä¾ã§ã¯ã hsl è²ç³»ã使ç¨ãã¦ãè²ç¸ãè£éãã¦ãã¾ãã
.shorter {
background-image: conic-gradient(in hsl shorter hue, red, blue);
}
.longer {
background-image: conic-gradient(in hsl longer hue, red, blue);
}
å·¦ã®ããã¯ã¹ã¯ã shorter ã®è£éã使ç¨ãã¦ãããè²ç¸ç°ã®çãæ¹ã®å¼§ã使ç¨ãã¦ãè²ã赤ããéã«ç´æ¥å¤åãã¦ããã¨ãããã¨ã«ãªãã¾ããå³ã®ããã¯ã¹ã¯ã longer ã®è£éã使ç¨ãã¦ãããè²ã赤ããéã«å¤åããéã«ãç·ãé»ããªã¬ã³ã¸ãéã£ã¦å¤åãã¦ããã¨ãããã¨ã«ãªãã¾ãã
ãã®ä»ã® conic-gradient ã®ä¾
ä»ã®ä¾ã¯ CSS ã°ã©ãã¼ã·ã§ã³ã®ä½¿ç¨ãåç §ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| CSS Images Module Level 4> # conic-gradients> |