์น ๊ฐ๋ฐ์ ์ธ๊ณ๋ ๋์์์ด ์งํํ๊ณ ์์ผ๋ฉฐ, ํจ์จ์ฑ๊ณผ ์์ฐ์ฑ์ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ์ค์ํ ๊ฐ์น ์ค ํ๋๊ฐ ๋์์ต๋๋ค. ๋ณต์กํด์ง๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์๊ตฌ์ฌํญ ์์์ CSS ์์ฑ ๋ฐฉ์ ์ญ์ ํฐ ๋ณํ๋ฅผ ๋ง์ดํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ณํ์ ์ค์ฌ์ ์๋ ๊ธฐ์ ์ค ํ๋๊ฐ ๋ฐ๋ก ํ ์ผ์๋ CSS(Tailwind CSS)์ ๋๋ค. ํ ์ผ์๋ CSS๋ ๊ธฐ์กด์ CSS ์์ฑ ๋ฐฉ์๊ณผ๋ ๋ค๋ฅธ ‘์ ํธ๋ฆฌํฐ ์ฐ์ (Utility-First)’ ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ฐ๋ฐ ์๋๋ฅผ ํ์ ์ ์ผ๋ก ๋์ด๊ณ , ์ผ๊ด์ฑ ์๋ ๋์์ธ ์์คํ ๊ตฌ์ถ์ ์ฉ์ดํ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
ํน์ “CSS ํด๋์ค ์ด๋ฆ ์ง๋ ๋ฐ ์๊ฐ์ ๋๋ฌด ๋ง์ด ๋บ๊ธด๋ค”, “CSS ์ฝ๋๊ฐ ์ ์ ๋น๋ํด์ง๊ณ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ต๋ค”, “ํ์ ๊ฐ์ CSS ์คํ์ผ๋ง ๋ฐฉ์์ด ๋ฌ๋ผ ์ผ๊ด์ฑ์ด ๊นจ์ง๋ค” ์ ๊ฐ์ ๊ณ ๋ฏผ์ ํด๋ณด์ จ๋์? ํ ์ผ์๋ CSS๋ ๋ฐ๋ก ์ด๋ฌํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ์ต๋๋ค. ์ต๊ทผ State of CSS 2023 ์ค๋ฌธ์กฐ์ฌ์ ๋ฐ๋ฅด๋ฉด, ํ ์ผ์๋ CSS๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์๋์ ์ธ ๋ง์กฑ๋์ ์ฌ์ฉ๋ฅ ์ฆ๊ฐ์ธ๋ฅผ ๋ณด์ด๋ฉฐ ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๋ CSS ํ๋ ์์ํฌ๋ก ์๋ฆฌ๋งค๊นํ์ต๋๋ค. ์ด๋ ํ ์ผ์๋ CSS๊ฐ ํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ผ๋ง๋ ๊ฐ๋ ฅํ ์๋ฃจ์ ์ธ์ง๋ฅผ ์ฆ๋ช ํฉ๋๋ค.
์ด ๊ธ์์๋ ํ ์ผ์๋ CSS๊ฐ ๋ฌด์์ธ์ง, ์ ์๋ง์ ๊ฐ๋ฐ์๊ฐ ์ด๊ดํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ์์ํ๊ณ ํ์ฉํ ์ ์๋์ง์ ๋ํ ๋ชจ๋ ๊ฒ์ ๋ค๋ฃน๋๋ค. ํ ์ผ์๋ CSS์ ํต์ฌ ๊ฐ๋ ๋ถํฐ ์ค์ ํ์ฉ ํ, ๊ทธ๋ฆฌ๊ณ ๋ ๊น์ด ์๋ ํ์ต์ ์ํ ๋ก๋๋งต๊น์ง, ์ฌ๋ฌ๋ถ์ด ํ ์ผ์๋ CSS ์ ๋ฌธ๊ฐ๋ก ๊ฑฐ๋ญ๋๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด์์ต๋๋ค. ์ด ๊ธ์ ํตํด ์ฌ๋ฌ๋ถ์ ํ ์ผ์๋ CSS์ ๋งค๋ ฅ์ ๋ฐ๊ฒฌํ๊ณ , ์ฐจ์ธ๋ ์น ๊ฐ๋ฐ ํธ๋ ๋๋ฅผ ์ด๋์ด๊ฐ ์ค๋น๋ฅผ ๋ง์น ์ ์์ ๊ฒ์ ๋๋ค.
โจ ํ ์ผ์๋ CSS๋ ๋ฌด์์ธ๊ฐ? ํ๋ ์น ๊ฐ๋ฐ์ ์๋ก์ด ๊ธฐ์ค
ํ ์ผ์๋ CSS๋ ๋ฏธ๋ฆฌ ์ ์๋ ์๋ง์ ‘์ ํธ๋ฆฌํฐ ํด๋์ค’๋ค์ HTML ์์์ ์ง์ ์ ์ฉํ์ฌ ์คํ์ผ๋งํ๋ ์ ํธ๋ฆฌํฐ ์ฐ์ (Utility-First) CSS ํ๋ ์์ํฌ์ ๋๋ค. ๊ธฐ์กด์ ๋ฐฉ์์ฒ๋ผ ๋ณ๋์ CSS ํ์ผ์ `.card`, `.button`๊ณผ ๊ฐ์ ์๋งจํฑ(semantic) ํด๋์ค ์ด๋ฆ์ ์ ์ํ๊ณ ์คํ์ผ์ ์์ฑํ๋ ๋์ , ํ ์ผ์๋๋ `flex`, `pt-4` (padding-top: 1rem), `text-center`์ ๊ฐ์ด ์ง๊ด์ ์ธ ์ญํ ์ ํ๋ ์์ ๋จ์์ ํด๋์ค๋ค์ ์กฐํฉํ์ฌ UI๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ์ด๋ ๋ง์น ๋ ๊ณ ๋ธ๋ก์ ์กฐ๋ฆฝํ๋ฏ, ํ์ํ ์คํ์ผ ์กฐ๊ฐ๋ค์ ๊ฐ์ ธ์ ์ํ๋ ๋์์ธ์ ๋น ๋ฅด๊ณ ์ ์ฐํ๊ฒ ๋ง๋ค์ด๋ด๋ ๋ฐฉ์๊ณผ ์ ์ฌํฉ๋๋ค.
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฒ์์๋ ๋ค์ ์์ํ๊ฒ ๋๊ปด์ง ์ ์์ต๋๋ค. HTML ๋งํฌ์ ์ด ๋ค์ ๊ธธ์ด์ง๊ณ ๋ณต์กํด ๋ณด์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ์ด ๋ฐฉ์์ ์ฌ๋ฌ ๊ฐ์ง ๊ฐ๋ ฅํ ์ด์ ์ ์ ๊ณตํ๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก ํ ์ผ์๋ CSS๊ฐ ํ๋ ์น ๊ฐ๋ฐ์ ์๋ก์ด ๊ธฐ์ค์ผ๋ก ๋ ์ค๋ฅด๋ ์ด์ ์ ๋๋ค. ๊ฐ๋ฐ์๋ ๋ ์ด์ CSS ํด๋์ค ์ด๋ฆ์ ๊ณ ๋ฏผํ๊ฑฐ๋, ๊ธฐ์กด ์คํ์ผ๊ณผ์ ์ถฉ๋์ ๊ฑฑ์ ํ๊ฑฐ๋, ์ฌ์ฉํ์ง ์๋ CSS ์ฝ๋๊ฐ ์์ด๋ ๊ฒ์ ์ผ๋ คํ ํ์๊ฐ ์์ต๋๋ค. ํ์ํ ์คํ์ผ์ ์ฆ์ ์ ์ฉํ๊ณ , ํ๋ก์ ํธ ์ ์ฒด์ ๊ฑธ์ณ ์ผ๊ด๋ ๋์์ธ ์ธ์ด๋ฅผ ์ ์งํ๋ฉฐ, ์ต์ข ์ ์ผ๋ก๋ ๋งค์ฐ ์ต์ ํ๋ CSS ๊ฒฐ๊ณผ๋ฌผ์ ์ป์ ์ ์์ต๋๋ค.
๐งฉ ์ ํธ๋ฆฌํฐ ์ฐ์ (Utility-First) ์ ๊ทผ ๋ฐฉ์์ ์ดํด
์ ํธ๋ฆฌํฐ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ํต์ฌ ์ฒ ํ์ ์คํ์ผ๋ง์ ์ฌ์ฌ์ฉ ๋จ์๋ฅผ ๊ฐ๋ณ CSS ์์ฑ ์์ค์ผ๋ก ๋ฎ์ถ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฐ์ด๋ฐ ์ ๋ ฌ๋ ํ๋์ ํ ์คํธ๋ฅผ ๊ฐ์ง ๋ฒํผ์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ์ ํต์ ์ธ ๋ฐฉ์์์๋ `.btn-primary`์ ๊ฐ์ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ CSS ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ ๊ฒ์ ๋๋ค:
.btn-primary {
background-color: blue;
color: white;
padding: 0.5rem 1rem;
border-radius: 0.25rem;
text-align: center;
}
๊ทธ๋ฆฌ๊ณ HTML์์๋ `` ์ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง ํ ์ผ์๋ CSS์์๋ HTML์ ์ง์ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ ์ฉํฉ๋๋ค:
์ฌ๊ธฐ์ `bg-blue-500`์ ๋ฐฐ๊ฒฝ์์ ํ๋์ ๊ณ์ด๋ก, `text-white`๋ ๊ธ์์์ ํฐ์์ผ๋ก, `py-2`๋ ์ํ ํจ๋ฉ์, `px-4`๋ ์ข์ฐ ํจ๋ฉ์, `rounded`๋ ๋ชจ์๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ, `text-center`๋ ํ ์คํธ๋ฅผ ๊ฐ์ด๋ฐ ์ ๋ ฌํ๋ ์ญํ ์ ํฉ๋๋ค. ๊ฐ ํด๋์ค๋ ํ๋์ ์์ ์คํ์ผ๋ง ์ฑ ์์ ๊ฐ์ง๋๋ค.
์ด ๋ฐฉ์์ ์ฅ์ ์ ๋ช ํํฉ๋๋ค. ์ฒซ์งธ, CSS ํ์ผ์ ๊ฑฐ์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค. ๋๋ถ๋ถ์ ์คํ์ผ๋ง์ด HTML ๋ด์์ ์ด๋ฃจ์ด์ง๋ฏ๋ก ์ปจํ ์คํธ ์ ํ ๋น์ฉ์ด ์ค์ด๋ญ๋๋ค. ๋์งธ, ํด๋์ค ์ด๋ฆ ์๋ช ์ ๊ณ ํต์์ ํด๋ฐฉ๋ฉ๋๋ค. `.user-profile-card-header-title`๊ณผ ๊ฐ์ ๊ธธ๊ณ ๋ณต์กํ ์ด๋ฆ์ ๊ณ ๋ฏผํ ํ์ ์์ด, ํ์ํ ์ ํธ๋ฆฌํฐ๋ฅผ ์กฐํฉํ๋ฉด ๋ฉ๋๋ค. ์ ์งธ, CSS ๋ณ๊ฒฝ์ด ์์ ํฉ๋๋ค. ํน์ ์์์ ์คํ์ผ์ ๋ณ๊ฒฝํด๋ ๋ค๋ฅธ ์์์ ์ํฅ์ ๋ฏธ์น ๊ฑฑ์ ์ด ์์ต๋๋ค. ์ ํธ๋ฆฌํฐ ํด๋์ค๋ ๋ฒ์๊ฐ ํด๋น ์์๋ก ํ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ท์งธ, ๋์์ธ ์ผ๊ด์ฑ ์ ์ง๊ฐ ์ฉ์ดํฉ๋๋ค. ๋ฏธ๋ฆฌ ์ ์๋ ๋์์ธ ํ ํฐ(์์, ๊ฐ๊ฒฉ, ํฐํธ ํฌ๊ธฐ ๋ฑ)์ ๊ธฐ๋ฐ์ผ๋ก ์ ํธ๋ฆฌํฐ๊ฐ ์์ฑ๋๋ฏ๋ก, ํ๋ก์ ํธ ์ ์ฒด์์ ํต์ผ๋ ์คํ์ผ์ ์ ์ฉํ๊ธฐ ์ฝ์ต๋๋ค.
๋ฌผ๋ก , HTML ๋งํฌ์ ์ด ๊ธธ์ด์ง๋ ๊ฒ์ ๋จ์ ์ผ๋ก ์ง์ ๋ ์ ์์ต๋๋ค. ํ์ง๋ง ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ํ๋ ์์ํฌ(React, Vue, Svelte ๋ฑ)์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ฐ๋ณต๋๋ ๋งํฌ์ ์ ์ปดํฌ๋ํธ๋ก ์ถ์ํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ๋ํ, ํ ์ผ์๋์ `@apply` ์ง์์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฃผ ์ฌ์ฉ๋๋ ์ ํธ๋ฆฌํฐ ์กฐํฉ์ ๋ณ๋์ CSS ํด๋์ค๋ก ๋ฌถ์ ์๋ ์์ด, ํ์์ ๋ฐ๋ผ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์์ต๋๋ค.
๐ ํ ์ผ์๋ CSS์ ํ์ ๋ฐฐ๊ฒฝ๊ณผ ๋ฐ์ ๊ณผ์
ํ ์ผ์๋ CSS๋ 2017๋ Adam Wathan๊ณผ ๊ทธ์ ๋๋ฃ๋ค์ ์ํด ์ฒ์ ๊ณต๊ฐ๋์์ต๋๋ค. ๊ทธ๋ค์ ๊ธฐ์กด์ CSS ๋ฐฉ๋ฒ๋ก (BEM, OOCSS ๋ฑ)์ด๋ ๋ถํธ์คํธ๋ฉ(Bootstrap)๊ณผ ๊ฐ์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ํ๋ ์์ํฌ๊ฐ ๊ฐ์ง ํ๊ณ๋ฅผ ๋๋ผ๊ณ ์์์ต๋๋ค. ํนํ, ์ปค์คํ ๋์์ธ์ ๊ตฌํํ ๋ ๊ธฐ์กด ํ๋ ์์ํฌ์ ์คํ์ผ์ ๋ฎ์ด์ฐ๊ฑฐ๋(override) ํ์ฅํ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ณต์ก์ฑ๊ณผ ๋นํจ์จ์ฑ์ ์ฃผ๋ชฉํ์ต๋๋ค.
๊ทธ๋ค์ CSS ์์ฑ์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ๋ก ์ ํธ๋ฆฌํฐ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ด์์ต๋๋ค. ์ฒ์์๋ ๋ง์ ๊ฐ๋ฐ์์๊ฒ ์์ํ๊ณ ๋ ผ๋์ ์ฌ์ง๊ฐ ์๋ ์ ๊ทผ ๋ฐฉ์์ด์์ง๋ง, ํ ์ผ์๋๊ฐ ์ ๊ณตํ๋ ๊ฐ๋ฐ ๊ฒฝํ์ ํฅ์๊ณผ ์์ฐ์ฑ ์ฆ๋๊ฐ ์ ์๋ฌธ์ ํ๋ฉด์ ๋น ๋ฅด๊ฒ ์ธ๊ธฐ๋ฅผ ์ป๊ธฐ ์์ํ์ต๋๋ค.
ํ ์ผ์๋ CSS๋ ์ง์์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ํตํด ๋ฐ์ ์ ๊ฑฐ๋ญํด์์ต๋๋ค. ์ฃผ์ ๋ฒ์ ๋ฆด๋ฆฌ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- v1.0 (2019๋ 5์): ์์ ์ ์ธ ์ฒซ ์ ์ ๋ฒ์ ์ถ์. ์ ํธ๋ฆฌํฐ ์ฐ์ ๊ฐ๋ ์ ๋์คํํ๋ ๊ณ๊ธฐ๊ฐ ๋์์ต๋๋ค.
- v2.0 (2020๋ 11์): ๋คํฌ ๋ชจ๋ ์ง์, ์๋ก์ด ์์ ํ๋ ํธ, ๋ ๋์ด์ง ๊ฐ๊ฒฉ(spacing) ๋ฐ ํฌ๊ธฐ(sizing) ์ค์ผ์ผ, `@apply` ์ฑ๋ฅ ๊ฐ์ ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ ๋ฐ ๊ฐ์ ๋์์ต๋๋ค. ํนํ ๋์์ธ ์์คํ ๊ตฌ์ถ์ ๋์ฑ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ต๋๋ค.
- v3.0 (2021๋ 12์): JIT(Just-In-Time) ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ ์์ง์ผ๋ก ํ์ฌ๋ ํ์ ์ ์ธ ๋ฒ์ ์ ๋๋ค. JIT ์์ง์ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ฌ์ฉ๋ ํด๋์ค๋ง ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ์ฌ ํ์ํ CSS๋ง ์์ฑํด ์ค๋๋ค. ์ด๋ก ์ธํด ๊ฐ๋ฐ ์๋ฒ ๊ตฌ๋ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ๋ชจ๋ ์ ํธ๋ฆฌํฐ ๋ณํ(variant)์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋์์ผ๋ฉฐ, ์ต์ข ๋น๋ ์ CSS ํ์ผ ํฌ๊ธฐ๊ฐ ๊ทน์ ์ผ๋ก ๊ฐ์ํ๋ ํจ๊ณผ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. ๋ํ, ์์ ๊ฐ(arbitrary values) ์ง์ (`top-[117px]`) ๋ฑ ๋์ฑ ์ ์ฐํ ์คํ์ผ๋ง์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
- ์ต์ ๋ฒ์ (2025๋ ํ์ฌ): v3 ์ดํ์๋ ์ง์์ ์ธ ๊ฐ์ ๊ณผ ๊ธฐ๋ฅ ์ถ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์์ต๋๋ค. ์ต์ ๋ฒ์ ์ ๋ณด๋ ํ ์ผ์๋ CSS ๊ณต์ ๋ฌธ์์์ ํ์ธํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ํํฉ๋๋ค. ๊ณต์ ๋ฌธ์๋ ํ ์ผ์๋ ์ค์น ๋ฐ ์ต์ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ ์ผ์๋ CSS์ ์ฑ๊ณต์ ๋จ์ํ ํ๋ ์์ํฌ ์์ฒด์ ์ฐ์์ฑ๋ฟ๋ง ์๋๋ผ, ํ๋ฐํ ์ปค๋ฎค๋ํฐ์ ํ๋ถํ ์ํ๊ณ ๋๋ถ์ด๊ธฐ๋ ํฉ๋๋ค. ๊ณต์ ๋ฌธ์์ ๋์ ์์ฑ๋, ์ ์ฉํ ํ๋ฌ๊ทธ์ธ๋ค(Typography, Forms ๋ฑ), ๊ทธ๋ฆฌ๊ณ Tailwind UI์ ๊ฐ์ ๊ณ ํ์ง UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ์๋ค์ด ํ ์ผ์๋๋ฅผ ๋์ฑ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋๋ก ๋๊ณ ์์ต๋๋ค.
๐ ์ ํ ์ผ์๋ CSS๋ฅผ ์ ํํด์ผ ํ ๊น? ์๋์ ์ธ ์ฅ์ ๋ถ์
์๋ง์ CSS ํ๋ ์์ํฌ์ ๋ฐฉ๋ฒ๋ก ์์์ ํ ์ผ์๋ CSS๊ฐ ์ ๋ ์ฃผ๋ชฉ๋ฐ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? ๋จ์ํ ์ต์ ๊ธฐ์ ์ด๊ธฐ ๋๋ฌธ๋ง์ ์๋๋๋ค. ํ ์ผ์๋ CSS๋ ๊ฐ๋ฐ์๋ค์ด ์ค์ ๋ก ๊ฒช๋ ์ด๋ ค์์ ํด๊ฒฐํ๊ณ , ์น ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ์ค์ง์ ์ธ ์ด์ ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ๋์ ๋ฐ๊ณ ์์ต๋๋ค. ํ ์ผ์๋ CSS๋ฅผ ์ ํํด์ผ ํ๋ ๊ฐ๋ ฅํ ์ด์ ๋ค์ ์ข ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ ์ผ์๋์ ๊ฐ์ฅ ํฐ ๋งค๋ ฅ์ ๊ฐ๋ฐ ๊ฒฝํ์ ํ์ ์ ์ผ๋ก ๊ฐ์ ํ๋ค๋ ์ ์ ๋๋ค. CSS ํด๋์ค ์ด๋ฆ์ ๊ณ ๋ฏผํ๋ ์๊ฐ, CSS์ HTML ํ์ผ ์ฌ์ด๋ฅผ ์ค๊ฐ๋ ๋ฒ๊ฑฐ๋ก์, ์คํ์ผ ์ถฉ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋๋ฒ๊น ์๊ฐ ๋ฑ์ ํ๊ธฐ์ ์ผ๋ก ์ค์ฌ์ค๋๋ค. ์ด๋ ๊ณง ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฅ์์ผ๋ก ์ด์ด์ง๋ฉฐ, ๊ฐ๋ฐ์๋ ํต์ฌ ๋ก์ง ๊ตฌํ์ ๋ ์ง์คํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ํ, ์ ์ ์๋ ๋์์ธ ์์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ์ผ๊ด์ฑ ์๋ UI๋ฅผ ์์ฝ๊ฒ ๊ตฌ์ถํ๊ณ ์ ์ง๋ณด์ํ ์ ์๋ค๋ ์ ๋ ํฐ ์ฅ์ ์ ๋๋ค. ๋ง์ง๋ง์ผ๋ก, JIT ์์ง ๋๋ถ์ ์ต์ข ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ CSS ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ต์ํํ์ฌ ์น์ฌ์ดํธ ์ฑ๋ฅ ์ต์ ํ์๋ ๊ธฐ์ฌํฉ๋๋ค.
โฑ๏ธ ๊ฐ๋ฐ ์์ฐ์ฑ ๊ทน๋ํ: ๋น ๋ฅด๊ณ ์ง๊ด์ ์ธ ์คํ์ผ๋ง
ํ ์ผ์๋ CSS์ ์ ํธ๋ฆฌํฐ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ ๋๊ฒ ํฅ์์ํต๋๋ค. HTML ๋งํฌ์ ๋ด์์ ์ง์ ์คํ์ผ์ ์ ์ฉํ๊ธฐ ๋๋ฌธ์, ๋ณ๋์ CSS ํ์ผ์ ์ด๊ณ ํด๋์ค๋ฅผ ์ ์ํ๊ณ ๋ค์ HTML๋ก ๋์์ค๋ ๊ณผ์ ์ ๊ฑฐ์น ํ์๊ฐ ์์ต๋๋ค. ์ด๋ ํนํ ํ๋กํ ํ์ดํ์ด๋ ๋น ๋ฅธ ๊ธฐ๋ฅ ๊ตฌํ ์ ๊ฐ๋ ฅํ ์ฅ์ ์ผ๋ก ์์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฒํผ์ ํจ๋ฉ์ ์กฐ๊ธ ์์ ํ๊ฑฐ๋, ํน์ ํ ์คํธ์ ์์์ ๋ณ๊ฒฝํ๋ ์์ ์์ ์์ ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ๊ธฐ์กด ๋ฐฉ์์ด๋ผ๋ฉด ํด๋น CSS ํด๋์ค๋ฅผ ์ฐพ์ ์์ ํ๊ณ , ํน์ ๋ค๋ฅธ ๊ณณ์ ์ํฅ์ ์ฃผ์ง๋ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ํ์ง๋ง ํ ์ผ์๋์์๋ ํด๋น HTML ์์์ ํด๋์ค ์์ฑ์์ `p-4`๋ฅผ `p-6`์ผ๋ก ๋ฐ๊พธ๊ฑฐ๋ `text-gray-700`์ `text-blue-500`์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๋งค์ฐ ์ง๊ด์ ์ด๊ณ ๋น ๋ฆ ๋๋ค.
๋ํ, ํ ์ผ์๋์ ์ ํธ๋ฆฌํฐ ํด๋์ค ์ด๋ฆ์ ๋๋ถ๋ถ CSS ์์ฑ๊ณผ ์ง์ ์ ์ผ๋ก ์ฐ๊ด๋์ด ์์ด ๋ฐฐ์ฐ๊ณ ๊ธฐ์ตํ๊ธฐ ์ฝ์ต๋๋ค. `margin-left`๋ `ml-`, `font-weight: bold`๋ `font-bold`, `display: flex`๋ `flex`์ ๊ฐ์ด ์ง๊ด์ ์ธ ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค. ์ฒ์์๋ ํด๋์ค ์ด๋ฆ์ด ๋ง์ ๋ถ๋ด์ค๋ฌ์ธ ์ ์์ง๋ง, ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ IDE ํ์ฅ ํ๋ก๊ทธ๋จ(์: VS Code์ Tailwind CSS IntelliSense)์ ์ฌ์ฉํ๋ฉด ๊ธ๋ฐฉ ์ต์ํด์ง๊ณ ์์ฐ์ฑ์ ๋์ฑ ๋์ผ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋น ๋ฅธ ์คํ์ผ๋ง ๋ฅ๋ ฅ์ ๊ฐ๋ฐ์๊ฐ ๋์์ธ ์์์ ์ฝ๋๋ก ์ฎ๊ธฐ๊ฑฐ๋, ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ๋ฐ์ํ์ฌ UI๋ฅผ ์์ ํ๋ ๊ณผ์ ์์ ๋น์ ๋ฐํฉ๋๋ค. ๋์์ธ ๋ณ๊ฒฝ ์๊ตฌ์ฌํญ์ด ๋ฐ์ํ์ ๋, ๋ณต์กํ CSS ๊ตฌ์กฐ๋ฅผ ํค์ง์ ํ์ ์์ด ํด๋น ์ปดํฌ๋ํธ์ ๋งํฌ์ ๋ง ์์ ํ๋ฉด ๋๋ฏ๋ก ์ ์ง๋ณด์ ๋น์ฉ ๋ํ ์ ๊ฐ๋ฉ๋๋ค.
๐จ ๋์์ธ ์์คํ ๊ตฌ์ถ๊ณผ ์ ์ง๋ณด์์ ์ฉ์ด์ฑ
ํ ์ผ์๋ CSS๋ ์ผ๊ด๋ ๋์์ธ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ ์ง๋ณด์ํ๋ ๋ฐ ๋งค์ฐ ํจ๊ณผ์ ์ ๋๋ค. ํ๋ก์ ํธ์ `tailwind.config.js` ํ์ผ์ ํตํด ์์ ํ๋ ํธ, ๊ฐ๊ฒฉ ๋จ์, ํฐํธ, ์ค๋จ์ (breakpoints) ๋ฑ ๋์์ธ ํ ํฐ์ ์ค์์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ชจ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ ์ด ์ค์ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋๋ฏ๋ก, ํ๋ก์ ํธ ์ ์ฒด์ ๊ฑธ์ณ ํต์ผ๋ ๋์์ธ ์ธ์ด๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ๋ธ๋๋ ์์์ ๋ณ๊ฒฝํด์ผ ํ ๊ฒฝ์ฐ, `tailwind.config.js` ํ์ผ์์ ํด๋น ์์ ๊ฐ์ ํ ๋ฒ๋ง ์์ ํ๋ฉด, ์ด ์์์ ์ฌ์ฉํ๋ ๋ชจ๋ ์์(`bg-primary`, `text-primary` ๋ฑ)์ ์คํ์ผ์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ์ด๋ ์์ญ, ์๋ฐฑ ๊ฐ์ CSS ํ์ผ์ ์ผ์ผ์ด ์์ ํด์ผ ํ๋ ๊ธฐ์กด ๋ฐฉ์์ ๋นํด ์์ฒญ๋ ํจ์จ์ฑ ํฅ์์ ๋๋ค.
๋ํ, ํ ์ผ์๋์ ์ ์ฝ ๊ธฐ๋ฐ(constraint-based) ๋์์ธ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ๋ฐ์๊ฐ ์์์ ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํํ๊ณ ๋ฏธ๋ฆฌ ์ ์๋ ๋์์ธ ์์คํ ๋ด์์ ์์ ํ๋๋ก ์ ๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํจ๋ฉ ๊ฐ์ผ๋ก `p-1`, `p-2`, `p-3`, `p-4` ๋ฑ ์ ํด์ง ๋จ์๋ฅผ ์ฌ์ฉํ๊ฒ ํจ์ผ๋ก์จ, ๋์์ธ์ ์ผ๊ด์ฑ์ ๋์ด๊ณ ์์ ‘๋งค์ง ๋๋ฒ’์ ์ฌ์ฉ์ ์ค์ฌ์ค๋๋ค.
๋ฌผ๋ก , ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ณต์กํ UI ํจํด์ด๋ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ, ์ ํธ๋ฆฌํฐ ํด๋์ค ์กฐํฉ์ด ๋๋ฌด ๊ธธ์ด์ง ์ ์์ต๋๋ค. ์ด๋ด ๋๋ ํ ์ผ์๋์ `@apply` ์ง์์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฃผ ์ฌ์ฉํ๋ ์ ํธ๋ฆฌํฐ ์ธํธ๋ฅผ ํ๋์ ์ปค์คํ ํด๋์ค๋ก ์ถ์ถํ ์ ์์ต๋๋ค.
/* styles.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.btn-primary {
@apply bg-blue-500 text-white py-2 px-4 rounded hover:bg-blue-700 transition-colors;
}
}
์ด๋ ๊ฒ ์ ์๋ `.btn-primary` ํด๋์ค๋ HTML์์ `` ์ ๊ฐ์ด ๊ฐ๊ฒฐํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. `@apply`๋ ์ ํธ๋ฆฌํฐ์ ํธ๋ฆฌํจ๊ณผ ์๋งจํฑ ํด๋์ค์ ๊ฐ๋ ์ฑ์ ์ ์ถฉํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋จ์ฉํ๋ฉด ํ ์ผ์๋์ ํต์ฌ ์ฅ์ ์ธ ์ ํธ๋ฆฌํฐ ์ค์ฌ ์ ๊ทผ ๋ฐฉ์์ด ํฌ์๋ ์ ์์ผ๋ฏ๋ก ์ ์คํ๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ํ ์ผ์๋ CSS๋ ๋์์ธ ์์คํ ์ ์ ์, ์ ์ฉ, ์ ์ง๋ณด์๋ฅผ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ฉฐ, ์ด๋ ํนํ ๊ท๋ชจ๊ฐ ํฐ ํ๋ก์ ํธ๋ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ํ์ ํ๋ ํ๊ฒฝ์์ ๊ฐ๋ ฅํ ์ด์ ์ผ๋ก ์์ฉํฉ๋๋ค.
โก๏ธ ๋ฐ์ด๋ ์ฑ๋ฅ๊ณผ ์ต์ ํ: ๊ฐ๋ฒผ์ด ์ต์ข ๊ฒฐ๊ณผ๋ฌผ
ํ ์ผ์๋ CSS์ ๋ ๋ค๋ฅธ ํต์ฌ ์ฅ์ ์ ์ต์ข ๋น๋ ์ ๋งค์ฐ ๊ฐ๋ฒผ์ด CSS ํ์ผ์ ์์ฑํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ํ ์ผ์๋ v3๋ถํฐ ๊ธฐ๋ณธ์ผ๋ก ํ์ฑํ๋ JIT(Just-In-Time) ์ปดํ์ผ๋ฌ ๋๋ถ์ ๋๋ค.
JIT ์์ง์ ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ์์ ์ค์ ๋ก ์ฌ์ฉํ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ง์ ์ค์บํ์ฌ, ํ์ํ CSS ๊ท์น๋ง ์ค์๊ฐ์ผ๋ก ์์ฑํฉ๋๋ค. ๊ฐ๋ฐ ์ค์๋ ๋ชจ๋ ์ ํธ๋ฆฌํฐ์ ๋ณํ(hover, focus, responsive ๋ฑ)์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์ง๋ง, ์ต์ข ํ๋ก๋์ ๋น๋ ์์๋ ์ฌ์ฉ๋์ง ์์ ์คํ์ผ์ ๋ชจ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
์ด๋ ๋ถํธ์คํธ๋ฉ์ด๋ ํ์ด๋ฐ์ด์ ๊ฐ์ ์ ํต์ ์ธ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ํ๋ ์์ํฌ์ ๋์กฐ์ ์ ๋๋ค. ์ด๋ฌํ ํ๋ ์์ํฌ๋ค์ ์ฌ์ฉํ์ง ์๋ ๋ง์ ์คํ์ผ ๊ท์น๊น์ง ํฌํจ๋ ๊ฑฐ๋ํ CSS ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ฌผ๋ก , ์ด๋ฌํ ํ๋ ์์ํฌ๋ค๋ ์ฌ์ฉํ์ง ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ์์ผ๋ก ์ต์ ํํ ์ ์์ง๋ง, ํ ์ผ์๋์ JIT ๋ฐฉ์์ ํจ์ฌ ๋ ์๋ํ๋๊ณ ํจ๊ณผ์ ์ ๋๋ค.
์ค์ ๋ก ๋๋ถ๋ถ์ ํ ์ผ์๋ ํ๋ก์ ํธ๋ ์ต์ข CSS ๋ฒ๋ค ํฌ๊ธฐ๊ฐ 10kB ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ ์น์ฌ์ดํธ ๋ก๋ฉ ์๋์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. CSS ํ์ผ ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ธ๋ผ์ฐ์ ๊ฐ CSS๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ํ์ฑํ๋ ์๊ฐ์ด ์ค์ด๋ค์ด ํ์ด์ง ๋ ๋๋ง ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ(UX) ํฅ์๊ณผ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์๋ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
JIT ์์ง์ ์ฅ์ ์ ์ฌ๊ธฐ์ ๊ทธ์น์ง ์์ต๋๋ค. ๊ฐ๋ฐ ์ค์๋ ํ์ํ CSS๋ง ์ฆ์ ์์ฑํ๋ฏ๋ก, ๋น๋ ์๊ฐ์ด ๋จ์ถ๋๊ณ ๊ฐ๋ฐ ์๋ฒ์ ๋ฐ์์ฑ์ด ํฅ์๋ฉ๋๋ค. ๋ํ, `bg-[#bada55]`๋ `mt-[13px]`์ ๊ฐ์ด ์ค์ ํ์ผ์ ๋ฏธ๋ฆฌ ์ ์๋์ง ์์ ์์์ ๊ฐ(arbitrary values)์ ๋๊ดํธ `[]` ์์ ๋ฃ์ด ์ง์ ์ฌ์ฉํ ์ ์๊ฒ ๋์ด, ์ปค์คํ ์คํ์ผ์ ๋ํ ์ ์ฐ์ฑ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ํ ์ผ์๋ CSS๋ ๊ฐ๋ฐ ํธ์์ฑ์ ๋์ด๋ฉด์๋ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ ์ฑ๋ฅ๊น์ง ์ต์ ํํ๋, ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ๋ชจ๋ ์ก์ ์ค๋งํธํ ํ๋ ์์ํฌ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๐ ๏ธ ํ ์ผ์๋ CSS ํต์ฌ ๊ฐ๋ ๋ง์คํฐํ๊ธฐ
ํ ์ผ์๋ CSS์ ๊ฐ๋ ฅํจ์ ์ ๋๋ก ํ์ฉํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ ํธ๋ฆฌํฐ ํด๋์ค์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ๋ถํฐ ๋ฐ์ํ ๋์์ธ, ์ํ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ์ปค์คํฐ๋ง์ด์ง ๋ฐฉ๋ฒ๊น์ง, ์ด๋ฌํ ๊ฐ๋ ๋ค์ ์ตํ๋ฉด ํ ์ผ์๋๋ฅผ ํจ์ฌ ๋ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฒ์์๋ ์๋ง์ ํด๋์ค ์ด๋ฆ์ ์๋๋ ์๋ ์์ง๋ง, ์ฒด๊ณ์ ์ธ ๊ท์น๊ณผ ํจํด์ ์ดํดํ๋ฉด ๊ธ๋ฐฉ ์ต์ํด์ง ์ ์์ต๋๋ค.
์ด ์น์ ์์๋ ํ ์ผ์๋ CSS๋ฅผ ๊ตฌ์ฑํ๋ ํต์ฌ ์์๋ค์ ์์ธํ ์ดํด๋ณด๊ณ , ์ค์ ์์ ๋ฅผ ํตํด ์ด๋ป๊ฒ ํ์ฉํ๋์ง ์์๋ด ๋๋ค. ๊ธฐ๋ณธ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ค์ ์กฐํฉํ์ฌ ์ํ๋ ์คํ์ผ์ ๋ง๋๋ ๋ฐฉ๋ฒ, ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ์ฌ์ฉ์ ์ธํฐ๋์ ์ ๋์ํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ์ ๊ณ ์ ํ ๋์์ธ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ํ ์ผ์๋๋ฅผ ์ปค์คํฐ๋ง์ด์งํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ด ๊ฐ๋ ๋ค์ ๋ง์คํฐํ๋ฉด ์ด๋ค ๋ณต์กํ UI๋ผ๋ ํ ์ผ์๋๋ก ์์ ์๊ฒ ๊ตฌํํ ์ ์๋ ๊ธฐ๋ฐ์ ๋ค์ง ์ ์์ต๋๋ค.
๐ ๊ธฐ๋ณธ ์ ํธ๋ฆฌํฐ ํด๋์ค ํ์ฉ๋ฒ
ํ ์ผ์๋์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ ์์๋ ์ ํธ๋ฆฌํฐ ํด๋์ค์ ๋๋ค. ๊ฐ ํด๋์ค๋ ํน์ ํ CSS ์์ฑ ํ๋๋ฅผ ์ ์ดํ๋ ์ญํ ์ ํฉ๋๋ค. ์์ฃผ ์ฌ์ฉ๋๋ ์ ํธ๋ฆฌํฐ ์นดํ ๊ณ ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฐ๊ฒฉ (Spacing):
p-{size}
: ํจ๋ฉ (padding) – ์: `p-4` (padding: 1rem)m-{size}
: ๋ง์ง (margin) – ์: `m-2` (margin: 0.5rem)pt-{size}
, `pr-{size}`, `pb-{size}`, `pl-{size}`: ํน์ ๋ฐฉํฅ ํจ๋ฉ (top, right, bottom, left) – ์: `pt-6` (padding-top: 1.5rem)mt-{size}
, `mr-{size}`, `mb-{size}`, `ml-{size}`: ํน์ ๋ฐฉํฅ ๋ง์ง – ์: `ml-auto` (margin-left: auto)space-x-{amount}
, `space-y-{amount}`: ์์ ์์ ์ฌ์ด์ ๊ฐ๊ฒฉ (flex/grid ์ปจํ ์ด๋ ๋ด) – ์: `space-x-4`
- ํฌ๊ธฐ (Sizing):
w-{size}
: ๋๋น (width) – ์: `w-1/2` (width: 50%), `w-screen` (width: 100vw), `w-64` (width: 16rem)h-{size}
: ๋์ด (height) – ์: `h-full` (height: 100%), `h-screen` (height: 100vh), `h-16` (height: 4rem)min-w-{size}
, `max-w-{size}, `min-h-{size}, `max-h-{size}`: ์ต์/์ต๋ ๋๋น/๋์ด
- ๋ ์ด์์ (Layout):
block
, `inline-block`, `inline`, `flex`, `inline-flex`, `grid`, `inline-grid`, `hidden` (display)flex-row
, `flex-col`, `items-center`, `justify-between` (Flexbox ๊ด๋ จ)grid-cols-{count}
, `gap-{size}` (Grid ๊ด๋ จ)float-left
, `float-right`, `clear-both` (Float)z-10
, `z-50` (z-index)absolute
, `relative`, `fixed`, `sticky` (position)top-0
, `right-4`, `bottom-auto`, `left-1/2` (position ๊ฐ)
- ํ์ดํฌ๊ทธ๋ํผ (Typography):
font-sans
, `font-serif`, `font-mono` (font-family)text-xs
, `text-sm`, `text-base`, `text-lg`, `text-xl`, `text-2xl` … (font-size)font-light
, `font-normal`, `font-medium`, `font-semibold`, `font-bold` (font-weight)text-left
, `text-center`, `text-right`, `text-justify` (text-align)text-blue-500
, `text-gray-700` (color) – ์์ ํ