animation ์ผ๋ก ๋๊ธฐ - Conic Gradient -
์ค๋, 31์ธ์ ์์ผ์ ๋ง์ดํ์ต๋๋ค.ใ
4์๋ถํฐ BeatFit์์ ํ๋ฐํธ ์๋ ์์ง๋์ด๋ก ์ผํฉ๋๋ค.
์์ผ๋ก๋ ์ ๋ถํ๋๋ฆฝ๋๋ค.
์ค๋์ ์ฝ๋ gradient์ ๊ดํ ๊ฒ์ ๋๋ค.
1. ์์ฑํ

2. ์ฐธ๊ณ ๋ฌธํ
CSS TRICKS
ICS MEDIA
์์๊ฐ์ r. ์ด์ค
3. ๋ถํดํด ๋ณธ๋ค
โถ.
conic gradient ๋ ์ค์ฌ์ ์ ๋๋ฉด์ ๋ฐฉ์ฌํ์ผ๋ก ๊ทธ๋ผ๋ฐ์ด์ ์ ์์ฑํ๋ ์์ฑ์ ๋๋ค.

conic์ ์๋ฟ์ด๋ผ๋ ์๋ฏธ์ ๋๋ค. ์์์ ๋ณด๋ฉด ์๋ฟ๋ก ๋ณด์ด๋ ๊ฒ์ผ๋ก ๋ช ๋ช ๋์์ต๋๋ค. ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
conic-gradient([ from <angle> ]? [ at <position> ]?, <angular-color-stop-list>)
์ฒซ ๋ฒ์งธ ์ธ์
conic-gradient()๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ๊ทธ๋ผ๋ฐ์ด์ ์ ์์ ์์น์ ์ค์ฌ์ ์ ์์น๋ฅผ โโ์ง์ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด,
from 30deg at 10% 10%
๋ก ์ค์ ํ๋ฉด ๊ทธ๋ผ๋ฐ์ด์
์ด 30๋ ์์น์์ ์ค์ฌ์ 10% 10%๋ก ์ค์ ๋ฉ๋๋ค.background: conic-gradient(from 30deg at 30% 30%, #fff, #000);

๋ง๋ถ์ฌ ์ด ์ธ์๋ฅผ ์๋ตํ๋ ๊ฒ๋ ๊ฐ๋ฅํด, ๊ทธ ๊ฒฝ์ฐ๋ ๋ํดํธ๋ก, ๊ฐ๋๋ 0๋๋ก center ๋ฅผ ์ค์ฌ์ผ๋ก ํด ๋ง๋ค์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ธ์
๋ ๋ฒ์งธ ์ธ์๋ก ์์์ ์ค์ ํฉ๋๋ค.
์์์ ๊ณผ ๋์ ์ ์ต์ ๋ ๊ฐ์ง ์ ํ์ ์์์ ์ค์ ํฉ๋๋ค.
conic-gradient(red, orange, yellow, green, blue);

0๋๋ถํฐ ์๊ณ ๋ฐฉํฅ์ผ๋ก ์์๋๋ก, ๋นจ๊ฐ, ์ฃผํฉ, ๋ ธ๋, ๋ น์, ํ๋์ผ๋ก๋์ด ์์ต๋๋ค.
์ด๋์์ ์ด๋๊น์ง ์์์ ์ง์ ํ๊ฑฐ๋ ๊ฐ๋๋ฅผ ์ง์ ์ค์ ํ ์๋ ์์ต๋๋ค.
conic-gradient(
red 0deg,
orange 50deg,
yellow 100deg,
green 300deg,
blue 360deg
);

๋ํดํธ์์๋, 360/์์ ์์, ๊ท ๋ฑํ๊ฒ ๊ฐ๋๊ฐ ํ ๋น๋ฉ๋๋ค.
๋ํ ์์์์ 0๋, ์ข ๋ฃ์์ 360๋์ ๋๋ค.
์ฃผ์์
MDN์ ๋ฐ๋ฅด๋ฉด ํ์ฌ (2019.3)์์๋ Goodle Chrome ๋ฐ Opera ๋ง ์ง์ํ ์ ์์ต๋๋ค. ์์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ธ๋ผ์ฐ์ ๋ ๋์ด๋ ๊ฒ์ ๋๋ค.

โท.
์ด์ ๋ถํฐ ๋๋์ ๊ทธ๋ํ๋ฅผ ๋ง๋ค์ด ๊ฐ๋๋ค.
๋งํฌ์ ํ์.
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="css/styles.css" />
</head>
<body>
<div class="container">
<div class="image"></div>
</div>
</body>
</html>
styles.scss
body {
margin: 0;
padding: 0;
}
.container {
position: relative;
width: 100%;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.image {
width: 300px;
height: 300px;
border-radius: 50%;
background: conic-gradient(#ff5722 0% 35%, #ffeb3b 35% 60%, #2196f3 60% 100%);
}

์ํ ์ฐจํธ๊ฐ ์๊ฒผ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋๋์ ๋ง๋ค๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น?
์ด์ ์ ๊ธฐ์ฌ ์ mask๋ clipPath ๋ก ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค๋ง, ๋ชจ์ฒ๋ผ์ด๋ฏ๋ก, radial gradient๋ฅผ ์ฌ์ฉํฉ์๋ค.
radial gradient ์ ์ค์์์ ๋ฐฉ์ฌํ์ผ๋ก ์ต์ข ๋ชจ์(์์ด๋ ํ์)์ ํฅํด ์ผ๋ จ์ ๋์ฌ์์ ๋ชจ์์ ๊ณฑํ๋ ์์ฑ์ ๋๋ค.
radial-gradient(#fff, transparent)
๋ก ์ค์ ํ๋ฉด ์์ชฝ์ ํฐ์ ์์ ๋ฐ๊นฅ์ชฝ์ ํฌ๋ช ํ ๋ชจ์์ ์์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฐฉ๊ธ ์ ์ conic-gradient์ ํฉ์ฑํฉ์๋ค.
styles.scss
background: radial-gradient(white 40%, transparent 25%),
conic-gradient(#ff5722 0% 35%, #ffeb3b 35% 60%, #2196f3 60% 100%);

ํ๋ ์ ํ ์ด์ ์๋ฃ๋ผ๋ ์ง์๋ ์์ฉํ ์ ์๋ค์.
conic-gradient๋ ์๋นํ ๊น์ ์์ฑ์ด๋ฉฐ, ๋ด์ผ๋ถํฐ ์ ๋๋ฉ์ด์ ๊ณผ ๊ธฐํ ํํ ๋ฐฉ๋ฒ์ ๋ชจ์ํด ๋๊ฐ ๊ฒ์ ๋๋ค.
๊ทธ๋ผ ๋ ๋ด์ผ~
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(animation ์ผ๋ก ๋๊ธฐ - Conic Gradient -), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://qiita.com/duka/items/90b0f0faab10d697f5b2ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ ๋ฐ๊ฒฌ์ ์ ๋
(Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค