๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค๋ก ์์์ ์ ํ๊ณ , canvas
์์ ๋๋๊ทธ๋ฅผ ํตํ์ฌ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์๊ณ , fill
์ ํตํด ์ํ๋ ์์์ผ๋ก ์ฑ์๋ฃ๊ณ , ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์ ํ์ผ๋ก ์ ์ฅํ ์ ์๋ ํ์ด์ง๋ฅผ vanilla JS
๋ฅผ ํตํด ๊ตฌํํ ์ ์๋๋ก ํ๊ฒ ๋ค.
html ํ์ผ์ ์ธํ
์ ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑ๋์ด์๋ค. <canvas id="jsCanvas" class="canvas">
๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์๋ canvas
๋ฅผ ๊ตฌํํ๊ณ , id์ธ "jsCanvas"
๋ฅผ ํตํด Javascript๋ก ํด๋น element์ ์ ๊ทผํ๊ณ , class์ธ "canvas"
๋ฅผ ํตํด css๋ฅผ ์ ์ดํ์๋ค. ์ดํ์๋ ์ ํ์ ํ๋๋ก ํ๋ <div class="controls">
์์ ์์์ ์ ํํ๋๋ก ํ๋ <div class="controls__colors" id="jsColors">
๋ฅผ ์์ฑํด์ฃผ๊ณ , ๊ทธ ์์ 9๊ฐ์ <div class="controls__color" style="background-color: #2c2c2c"></div>
๋ฅผ ๊ฐ๊ฐ์ color
๋ฅผ ์ฃผ์ด ์ง์ ํ ์ ์๊ฒ ํด์ฃผ์๋ค.
์ดํ์๋ <link rel="stylesheet" href="styles.css" />
์ ํตํด css ํ์ผ์ ์ฐ๊ฒฐํด์ฃผ์๊ณ , <script src="app.js"></script>
์ ํตํด javascript ํ์ผ์ ์ฐ๊ฒฐํ์๋ค.
๋ณธ๊ฒฉ์ ์ผ๋ก css๋ฅผ ์ง์ ํ๊ธฐ ์ ์, reset css๋ฅผ ์์ฑํ๊ณ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ ํ์ฌ ์ถํ์ ์์ฑํ css ํ์ผ์ @import
ํ๋๋ก ํ์๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ ์ด์ ๋ ๊ฐ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํด์ ธ์๋ css ํน์ฑ์ด ์๋๋ฐ, ๊ทธ๋ฌํ ํน์ฑ์ ์ด๊ธฐํ ์์ผ์ค ํ ๋์ css๋ฅผ ์ ์ฉ์ํค๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์งํํ๋ค. ๋ค์ํ ๋ฒ์ ์ css reset์ด ์กด์ฌํ์ง๋ง, ์์ ๋งํฌ๋ก ์ฐ๊ฒฐ๋ css reset์ ์ฌ์ฉํ์๋ค.
index.html
์ ์ธ๋ถ์ ์ธ css๋ฅผ ์ง์ ํ๊ธฐ ์ํด ์์ฑํ styles.css
์ ์ฒซ๋ฒ์งธ ์ค์๋ ์์ ์์ฑํ reset.css
๋ฅผ @import "reset.css";
๋ฅผ ํตํด import ํด์ฃผ์๋ค.
body {
background-color: #f9f6fc;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 50px;
}
๋ฅผ ํตํด body์ ๋ด์ฉ์ ์ง์ ํด์ฃผ์๊ณ , column
์ ํตํด ์ธ๋ก๋ก, center
๋ฅผ ํตํด์ ๊ฐ์ด๋ฐ์ ์์ดํ
์ด ์ ๋ ฌ๋๋๋ก ํ์๋ค.
.canvas
์์๋ width
์ height
๋ฅผ 600px๋ก ์ ํด์ฃผ๊ณ , border-rasdius
๋ 15px๋ก ์ง์ ํ์ฌ ๋๋ถ๋ถ์ด ๋ฅ๊ธ๋ฅ๊ธํ๊ฒ ์ง์ ๋๋๋ก ํ์๋ค. box-shadow ํน์ฑ์ ํตํด์ ๊ธฐ์กด์ body
์ canvas
๋ฅผ ๊ตฌ๋ถํ ์ ์๋๋ก ํ์๋ค.
.controls
์ .controls__colors
์์๋ display:flex;
๋ฅผ ํตํด์ item๋ค์ด ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ ๋ ฌ๋๋๋ก ํ์๊ณ (flex-direction
์ ๊ธฐ๋ณธ๊ฐ์ธ row) .control__colors
์ .control__color
์ ํฌ๊ธฐ๋ width
์ height
๋ชจ๋ 50px๋ก ์ ์ฌ๊ฐํ ๋ชจ์์,border-radius
๊ฐ์ ๊ทธ ์ ๋ฐ์ ํด๋นํ๋ 25px๋ก ์ฃผ์ด ์ํ์ ์์ด์ฝ์ด ํ์ฑ๋๋๋ก ํ์๋ค.