๐ฑ ๋ค์ด๊ฐ๋ฉฐ + TMI
๋ฐ๋ก ์ฌ๋ฆฌ๋ ๋ฏธ์ 2 ํ๊ธฐ๊ธ...
์๋ ๋ฏธ์ 1, 2 ํ๊ธฐ๊ธ์ ๊ฐ์ด ์ฌ๋ฆฌ๋ ค ํ๋๋ฐ
๊ธ์ด ๋๋ฌด ๊ธธ์ด์ ธ์ ๋ถ๋์ดํ๊ฒ ๋๋ด๋ค.
๋ฌดํผ ์ด์ด์ ๊ธ์ ์์ฑํด ๋ณด์๋ฉด
์คํ๋ฆฐํธ ๋ฏธ์ 1 ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ ๋ค์๋
๋ฐ๋ก ์คํ๋ฆฐํธ ๋ฏธ์ 2๋ฅผ ์์ ํ๊ณ PR์ ์ฌ๋ ธ๋ค.
์คํ๋ฆฐํธ ๋ฏธ์ 2์ ์๊ตฌ์ฌํญ์
๋ฏธ์ 1๊ณผ ๋์ผํ๊ฒ HTML, CSS๋ฅผ ์ฌ์ฉํด์
๋ก๊ทธ์ธ, ํ์๊ฐ์ ํผ์ ๊ตฌํํ๋ ๊ฒ์ด์๋ค.
์คํ๋ฆฐํธ ๋ฏธ์ 1๋ณด๋ค ๋ฏธ์ 2๊ฐ
๊ตฌํํด์ผ ํ ์์๊ฐ ๋ ์ ์ด์ ๊ธ๋ฐฉ ์๋ฃํ ์ ์์๋ค.
๐ ์คํ๋ฆฐํธ ๋ฏธ์ ์งํ ๊ณผ์
๐ฅ๏ธ ์ด์ ์์ ์์

์คํ๋ฆฐํธ ๋ฏธ์ 1์์ ๋ฉํ ๋์ด ํผ๋๋ฐฑ ์ฃผ์ จ๋ ๋ด์ฉ์ ๋ฐ์ํ๊ณ
๋ฏธ์ 2 ์งํ์ ์ํด ํ์ผ๋ช ์ ์ผ๋ถ ์์ ํ๊ณ , ์ด๋ฏธ์ง ํ์ผ๋ค์ ์ถ๊ฐํ๋ค.
๐๏ธ ํด๋ ๊ตฌ์กฐ

ํ์ผ ๊ตฌ์กฐ๋ ์คํ๋ฆฐํธ ๋ฏธ์ 1๊ณผ ๋์ผํ๋ค.
๋ฌ๋ผ์ง ๋ถ๋ถ์ CSS ํ์ผ๊ณผ images ํด๋์ ์ด๋ฏธ์ง ์์ ์ด ์ถ๊ฐ๋์๋ค๋ ์ ์ด๋ค.
1. CSS ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ
๋ค๋ฅธ ํ์ด์ง๋ค์ CSS ํ์ผ์ ์ถ๊ฐํด์ผ ํด์
index.html์ CSS ํ์ผ์ด์๋ style.css๋ฅผ
index-style.css๋ก ๋ณ๊ฒฝํด ์ฃผ์๋ค.
2. ๋ณ์ ๋ฑ๋ก, ๊ณตํต CSS ํ์ผ ์ถ๊ฐ
๋ฏธ์ 2 ์๊ตฌ ์ฌํญ์ ์ปฌ๋ฌ ๋ณ์๋ฅผ ๋ฑ๋กํ๋ ๋ถ๋ถ์ด ์์ด์
variables.css ํ์ผ์ ์ถ๊ฐํด ์ฃผ์๊ณ ,
๋ชจ๋ ํ์ด์ง์ ๊ณตํต์ผ๋ก ์ ์ฉ๋๋ ์คํ์ผ์ ๊ด๋ฆฌํ๊ธฐ ์ํด
common.css ํ์ผ์ ์ถ๊ฐํด์ ๋ณ์ ํ์ผ import๋ ํด๋น ํ์ผ์ ์ถ๊ฐํ๋ค.
3. auth-style.css ์ถ๊ฐ
์ด๋ฒ ๋ฏธ์ ์ ์ฃผ์ ์ธ ๋ก๊ทธ์ธ/ํ์๊ฐ์ ํผ ์์ ์ ์ํด
auth-style.css ํ์ผ์ ์๋ก ์ถ๊ฐํ๋ค.
๋ ํผ์ ๋์์ธ์ด ๋์ผํ๊ธฐ ๋๋ฌธ์
์ถํ ๋ฐ์ํ ์์ ์ ํ ๋ ํ๋์ ํ์ผ๋ง ๊ด๋ฆฌํ๋ฉด ํธํ ๊ฒ ๊ฐ์์
๊ฐ๊ฐ ๋ค๋ฅธ CSS ํ์ผ๋ก ๊ด๋ฆฌํ์ง ์๊ณ ํ๋์ ํ์ผ๋ก ํตํฉํด ์ฃผ์๋ค.
ํ์ผ๋ช ๋ ํ์๊ฐ์ , ๋ก๊ทธ์ธ์ ํฌ๊ดํ ์ ์๋ auth-style๋ก ๊ฒฐ์ ํ๋ค.
๐ฅ๏ธ ์ปจํ ์ด๋ ๋ ์ด์์
๋ก๊ทธ์ธ ํ์ด์ง, ํ์๊ฐ์ ํ์ด์ง ๋ ๋ค
๋ก๊ณ ์ ์๋จ ์ฌ๋ฐฑ์ ๋์ผํ๊ฒ ํ๋ผ๋ ์๊ตฌ์ฌํญ์ด ์์ด์
์ปจํ ์ด๋๋ก padding ๊ฐ์ ์ค์ ํด ์ฃผ์๋ค.
.auth-container {
margin: 0 auto;
padding-top: 60px;
width: 100%;
max-width: 640px;
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
}
๐ฅ๏ธ ๋ก๊ทธ์ธ ํผ, ํ์๊ฐ์ ํผ


๋ก๊ทธ์ธ ํผ๊ณผ ํ์๊ฐ์ ํผ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด
๋ ํผ์ ๋์์ธ์ด ๋์ผํด์ ํ๋์ CSS๋ก ๋น ๋ฅด๊ฒ ์์ ํ ์ ์์๋ค.
<form class="auth-form">
<div class="auth-input-area">
<label for="email" class="auth-label">์ด๋ฉ์ผ</label>
<input id="email" class="auth-input" type="email" placeholder="์ด๋ฉ์ผ์ ์
๋ ฅํด์ฃผ์ธ์." />
</div>
<div class="auth-input-area">
<label for="password" class="auth-label">๋น๋ฐ๋ฒํธ</label>
<div class="password-input-area">
<input id="password" class="auth-input" type="password" placeholder="๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์." />
<!-- TODO: ๋น๋ฐ๋ฒํธ ๋ณด๊ฑฐ๋ ๊ฐ๋ฆฌ๋ ๊ธฐ๋ฅ ์ถ๊ฐ -->
<button class="show-password-button" type="button">
<img src="./images/auth/btn_visibility_off.svg" alt="๋น๋ฐ๋ฒํธ ๋ณด๊ธฐ" />
</button>
</div>
</div>
<button type="submit" class="button auth-button">๋ก๊ทธ์ธ</button>
</form>
ํ์๊ฐ์ /๋ก๊ทธ์ธ ํผ์ form ํ๊ทธ๋ก ์ ์ฒด ์์๋ฅผ ๊ฐ์ธ ์ฃผ์๋ค.
์ด๋ฉ์ผ๊ณผ ๋๋ค์ input์ auth-input-area๋ก ํ ๋ฒ๋ง ๋ฌถ์์ง๋ง,
๋น๋ฐ๋ฒํธ ์ ๋ ฅ๋์๋ ๋น๋ฐ๋ฒํธ ๋ณด๊ธฐ ๋ฒํผ์ ์ถ๊ฐํด์ผํด์
password-input-area๋ก input๊ณผ button์ ๊ฐ์ธ์ค ๋ค์
password-input-area๋ฅผ ๊ธฐ์ค์ผ๋ก ๋น๋ฐ๋ฒํธ ๋ณด๊ธฐ ๋ฒํผ์ position์ ์ค์ ํ๋ค.
์ด๋ฒ ๋ฏธ์ ์ ํ๋ฉด ๊ตฌํ๊น์ง๋ง ์งํํ๋ ๊ฑฐ์ฌ์ ๋ฒํผ ๊ธฐ๋ฅ์ ๊ตฌํํ์ง ์์๋๋ฐ,
์ถํ ๋ค๋ฅธ ๋ฏธ์ ์ ํตํด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ๋ฒํผ์ ๋ฐ๋ก ์ฐพ์ ์ ์๋๋ก
// TODO ์ฃผ์๋ ํจ๊ป ๋จ๊ฒจ ๋์๋ค.
โ๏ธ ์ฝ๋ ๋ฆฌ๋ทฐ
์ด๋ฒ ๋ฆฌ๋ทฐ์์๋ ๋คํํ ์์ ์ฌํญ์ด ์์๋ค. (๋ฟ๋ฏ)
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ์๋ ๋ด๊ฐ ์ง๋ฌธ๋ค๊ณผ ๊ฐ์ฌ๋์ ๋ต๋ณ์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
๋ฏธ์ PR์ ์ฌ๋ฆด ๋ ์์ ํ๋ฉด์ ๊ถ๊ธํ๋ alt ์์ฑ๊ณผ svg ํ๊ทธ์ ๋ํด ์ง๋ฌธ ๋๋ ธ๋ค.

1. alt ์์ฑ
๋จผ์ alt ์์ฑ์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ ๋ alt๋ฅผ ๋ฐ๋์ ์ถ๊ฐํด์ผ ํ๋๋ฐ
์ฅ์ ๋ชฉ์ ์ ์ด๋ฏธ์ง์ฒ๋ผ ํน๋ณํ ์ค๋ช ์ด ํ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋ ๊ฒ ์ข์์ง ๊ณ ๋ฏผ์ด ๋์๋ค.

alt ์์ฑ ๊ฐ์ ๊ฒฝ์ฐ ์ฅ์์ฉ์ด๋ผ๋ฉด alt=""๋ก ๊ฐ์ ๋น์๋๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๊ณ ํ์ จ๊ณ ,
์ด ๋ฐฉ๋ฒ์ SEO์์ ํธ๋ ์ด๋ ์คํ๊ฐ ๋ฐ์ํ๋ค๊ณ ์๋ ค์ฃผ์ จ๋ค. ๐ฅฒ
https://www.youtube.com/watch?v=pc4RVw691cQ
๋, alt์ ๊ด๋ จ๋ ์์์ ์ถ์ฒํด ์ฃผ์ จ๋๋ฐ
์์์ ๋ณด๋ฉด ์ด ์ด๋ฏธ์ง๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ํ๋์ง ์๋ ค์ฃผ์ด์ผ ํ๋ค๋ ๋ด์ฉ์ ๋ด๊ณ ์๋๋ฐ
์ด๋ฅผ ๋ณด๊ณ ์์ผ๋ก๋ ์ด ์ด๋ฏธ์ง๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง์ ์ด์ ์ ๋ง์ถฐ์ alt๋ฅผ ์์ฑํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
2. svgํ๊ทธ
svgํ๊ทธ ์ง๋ฌธ์ ์์ด์ฝ ๊ฐ์ ๊ฒฝ์ฐ SVG ํ์ผ์ ์ฌ์ฉํ๋๋ฐ
<svg> ํ๊ทธ๋ก ์ง์ ๋ฃ๋๊ฒ ์ข์์ง ์๋๋ฉด <img> ํ๊ทธ๋ก ๋ถ๋ฌ์ค๋๊ฒ ์ข์์ง ๊ณ ๋ฏผ์ด ๋์๋ค.

๊ฐ์ฌ๋๊ป์๋ <svg>ํ๊ทธ๋ก ์ง์ ๋ฃ๋ ๋ฐฉ์์ CSS๋ JS๋ก ์์ด์ฝ์ ์กฐ์ํด์ผ ํ ๋ ์ ํฉํ๊ณ ,
<img> ํ๊ทธ๋ก ๋ถ๋ฌ์ค๋ ํธ์ด ์ฝ๋๋ ๊น๋ํ๊ณ ์บ์ฑ์๋ ์ ๋ฆฌํ๋ค๊ณ ํ์ ์
ํ์ฌ ์์ฑํ ๋ฐฉ์์ ์ ์งํ๊ธฐ๋ก ํ๋ค.
๐ ์คํ๋ฆฐํธ ๋ฏธ์ 2 ํ๊ธฐ
์ด๋ ค์ ๋ Git๊ณผ GitHub ๊ด๋ จ๋ ๋ถ๋ถ๋
๋ฏธ์ 1์ ์งํํ ๋๋ถ์ ์ด๋ฒ์๋ ์ด๋ ต์ง ์๊ฒ ๋ฐ๋ก ํ ์ ์์๋ค.
๋ฏธ์ 1 ํ๊ธฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฏธ์ 2๋ ์์ ํ๋ ๊ณผ์ ์ด ๊ฝค ์ฌ๋ฐ์๋ค.
์์ง ์์ ํ๋ฉด์ ํฐ ์ด๋ ค์์ด ์์ด์ ๊ทธ๋ฐ์ง
์ด๋ฐ ๋ฏธ์ ์ด๋ผ๋ฉด ๊ฐ์ ๋ฃ๋ ๊ฒ๋ณด๋ค ๊ณ์ ํ๊ณ ์ถ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๐
๋ํ, ์ด๋ฒ์ ๋ฏธ์ 1, ๋ฏธ์ 2 ํ๊ธฐ๋ฅผ ์์ฑํ๋ฉด์
๋ด๊ฐ ์ด์ ์ ์์ฑํ ์ฝ๋๋ฅผ ๋ค์ ๋ณด๊ฒ ๋์๋๋ฐ
๊ทธ ๊ณผ์ ์์ ๋ถํ์ํ CSS๊ฐ ๋์ ๋์๋ค.
๊ทธ๋์ ๋ฏธ์ 3 ์งํํ ๋ ๊ทธ ๋ถ๋ถ์ ์์ ํ ๊ณํ์ด๋ค.
(ํ๊ธฐ์ ์๊ธฐ๋ฅ)