Tailwind CSS는 매우 커스터마이즈 가능한(low-level) CSS 프레임워크로, 여러분이 원하는 디자인을 만들 수 있는 모든 빌딩 블록을 제공합니다. Bootstrap이나 Foundation 같은 전통적인 CSS 프레임워크와는 달리, Tailwind는 사전에 디자인된 컴포넌트를 제공하는 대신 유틸리티 클래스를 제공하여 HTML에서 직접 디자인을 구축할 수 있게 합니다.
유틸리티 클래스: Tailwind는 유틸리티 클래스를 사용하여 특정 스타일을 HTML에 직접 적용합니다. 예를 들어 bg-blue-500
은 배경 색상을 파란색으로 설정하고, text-white
는 텍스트 색상을 흰색으로 설정합니다.
<div class="bg-blue-500 text-white p-4 rounded">
Hello, Tailwind!
</div>
반응형 디자인: Tailwind의 반응형 유틸리티를 사용하면 화면 크기에 따라 다른 스타일을 적용할 수 있습니다. 예를 들어 md:bg-green-500
은 중간 크기 화면 이상에서 녹색 배경을 적용합니다.
<div class="bg-blue-500 md:bg-green-500 text-white p-4 rounded">
Responsive Tailwind!
</div>
의사 클래스 변형: 요소의 상태에 따라 스타일을 적용할 수 있습니다. 예를 들어 hover
, focus
, active
등의 상태를 처리할 수 있습니다.
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
Hover me!
</button>
커스터마이제이션: Tailwind는 설정 파일(tailwind.config.js
)을 통해 기본 테마를 커스터마이즈하거나 확장하거나 완전히 재정의할 수 있습니다.
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
primary: '#ff6363',
secondary: '#3b3b3b',
},
},
},
}
PurgeCSS: PurgeCSS와의 통합을 통해 Tailwind는 프로덕션 빌드에서 사용하지 않는 CSS 클래스를 제거하여 최종 CSS 번들을 최소화합니다.
// tailwind.config.js
module.exports = {
purge: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html'],
// 기타 설정...
}
다음은 Tailwind CSS를 사용하여 만든 반응형 카드 컴포넌트의 간단한 예제입니다:
<div class="max-w-sm mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-2xl">
<div class="md:flex">
<div class="md:flex-shrink-0">
<img class="h-48 w-full object-cover md:w-48" src="img/card-image.jpg" alt="A card image">
</div>
<div class="p-8">
<div class="uppercase tracking-wide text-sm text-indigo-500 font-semibold">Case Study</div>
<a href="#" class="block mt-1 text-lg leading-tight font-medium text-black hover:underline">Finding customers for your new business</a>
<p class="mt-2 text-gray-500">Getting a new business off the ground is a lot of hard work. Here are five ideas you can use to find your first customers.</p>
</div>
</div>
</div>
장점:
단점:
Tailwind CSS는 CSS 워크플로우를 간소화하고 많은 사용자 정의 CSS를 작성하지 않고도 사용자 지정 디자인을 만들고자 하는 개발자에게 강력한 도구입니다. 유틸리티-우선 접근 방식과 광범위한 커스터마이즈 옵션은 현대 웹 개발에 유연한 선택을 제공합니다. 그러나 전통적인 CSS 프레임워크에 익숙한 사람들에게는 적응 기간이 필요할 수 있습니다.