Front/HTML CSS JS
[CSS] Tailwind CSS
miniBcake
2024. 12. 9. 09:05
Tailwind CSS
Tailwind CSS는 유틸리티 우선(utility-first) 접근 방식의 CSS 프레임워크다. 미리 정의된 클래스들을 조합하여 스타일을 구성하는 방식으로, 보다 빠르고 유연한 웹 개발을 가능하게 한다.
환경 세팅
# npm으로 설치
npm install -D tailwindcss
npx tailwindcss init
# PostCSS 설정
module.exports = {
content: ["./src/**/*.{html,js}"],
theme: {
extend: {},
},
plugins: [],
}
핵심개념
유틸리티 클래스
<!-- 기존 CSS 방식 -->
<div class="card">
<h2 class="title">제목</h2>
</div>
<style>
.card {
padding: 1rem;
margin: 0.5rem;
border-radius: 0.25rem;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.title {
font-size: 1.5rem;
font-weight: bold;
color: #333;
}
</style>
<!-- Tailwind 방식 -->
<div class="p-4 m-2 rounded shadow-md">
<h2 class="text-xl font-bold text-gray-800">제목</h2>
</div>
반응형 디자인
<!-- 모바일: 12px, 태블릿: 14px, 데스크톱: 16px -->
<p class="text-xs md:text-sm lg:text-base">
반응형 텍스트
</p>
<!-- 모바일: 스택, 데스크톱: 그리드 -->
<div class="flex flex-col lg:flex-row gap-4">
<div class="w-full lg:w-1/3">항목 1</div>
<div class="w-full lg:w-1/3">항목 2</div>
<div class="w-full lg:w-1/3">항목 3</div>
</div>
상태 변형
<!-- 호버, 포커스 등의 상태 -->
<button class="bg-blue-500 hover:bg-blue-700
text-white font-bold py-2 px-4 rounded
focus:outline-none focus:shadow-outline">
버튼
</button>
<!-- 다크 모드 -->
<div class="bg-white dark:bg-gray-800
text-gray-900 dark:text-white">
다크 모드 지원 콘텐츠
</div>
커스텀 설정
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
'brand': '#FF0000',
},
spacing: {
'128': '32rem',
},
fontSize: {
'mega': '4rem',
}
}
}
}
장점과 단점
빠른 개발속도와 일관된 디자인 시스템을 가지고 있으며 CSS파일의 크기가 작다. 반응형 디자인을 하기 쉽다. 그러나 긴 클래스명과 HTML 가독성이 저하되는 문제가 있다. 하지만 웹 개발에 효율적인 도구이기 때문에 알고 있다면 생산성이 향상되는 장점이 있다.