유틸리티 클래스 라이브러리. 미리 CSS 정의된 선택자에 해당하는 클래스명을 조합해 개발
CSS Framework(Tailwind CSS, Bootstrap, Vuetify) 중 하나인 Tailwind CSS 의 장점은 2가지
장점 1 = 유틸리티 클래스 : CSS 단위 조각 = CSS 정의를 유틸리티 클래스 단위로 제공하여 → 이를 조합하여 원하는 스타일을 적용
장점 2 = Purge / Minify : CSS 번들링 최적화를 위해 가지치기
Purge : 불필요한 CSS를 제거하는 과정, Tailwind에서는
content
옵션으로 실제 HTML이나 JS파일을 분석해 사용된 클래스만 남기는 방식으로 작동.module.exports = { content: ["./src/**/*.html"], theme: { extend: {}, }, plugins: [], };
Minify : 코드를 압축하여 크리를 줄이는 과정, Tail
단점 = ClassName 이 너무 더러워진다. 사실상 인라인 스타일과 거의 유사하다는 비판
다음을 통해 이제 더러워진 ClassName 도 아래와 같이 정리 가능하다.
① 웹 프론트엔드 라이브러리/프론트엔드를 통해 Component 화
프론트엔드 라이브러리(React, Vue 등)를 사용하면 재사용 가능한 컴포넌트로 추출하여 클래스명을 깔끔하게 정리할 수 있습니다.
<button className="py-4 px-3 bg-blue-500 text-white font..." />
<MyBlueButton />
② @apply
를 통해 단일 클래스화
Tailwind CSS는 @apply 디렉티브를 사용하여 여러 유틸리티 클래스를 단일 클래스로 합칠 수 있습니다.
<button className="py-4 px-3 bg-blue-500 text-white font..." />
<button className="**btn-blue**" />
.btn-blue { @apply py-4 px-3 bg-blue-500 text-white font…; }
왜 사람들은 Tailwind CSS 에 열광하는가? = 기존 바닐라 CSS 의 아래의 단점을 보완해주기 때문
Colocation Bad → Colocation Good
<div class="text-center bg-blue-500 p-4">Hello</div>
위와 아래 둘 사이에 존재하는 Tailwind CSS = Design System 구축하기 수월