Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.
Tailwind CSS is a utility-first CSS framework for rapidly building modern websites without ever leaving your HTML.
tailwindcss.com
웹 개발 환경에서 "Tailwind CSS"는 빠르게 인기를 얻고 있는 CSS 프레임워크입니다. 기존의 CSS는 별도의 파일에서 스타일을 정의하고, 이를 HTML 클래스와 연결하는 방식이 일반적이었지만, Tailwind는 완전히 다른 접근 방식을 제시합니다. 바로 "유틸리티 퍼스트(Utility-first)" 스타일링입니다. 이 방식은 HTML 요소에 유틸리티 클래스를 직접 입력하여 즉각적으로 스타일을 적용할 수 있으며, 빠른 프로토타이핑과 일관성 있는 UI 구현이 가능합니다. 특히 협업 환경이나 디자인 시스템을 구축할 때 강력한 장점을 지닙니다.
Tailwind CSS란?
Tailwind CSS는 미리 정의된 "유틸리티 클래스"를 조합하여 UI를 구성할 수 있도록 설계된 CSS 프레임워크입니다. 전통적인 방식처럼 CSS를 별도로 작성하지 않고, 필요한 스타일을 HTML 클래스에 바로 기술하는 방식입니다.
주요 특징:
- HTML에서 바로 스타일을 선언할 수 있음
- JIT(Just-In-Time) 방식으로 사용한 클래스만 컴파일됨
- 설정 파일을 통해 디자인 시스템을 커스터마이징 가능
- 유지보수가 쉬운 구조로 구성 가능
Tailwind는 단순히 스타일링 도구를 넘어서, 설계와 개발 전반에 영향을 주는 철학적 기반까지 제공합니다.
전통적인 CSS 방식과의 차이점
항목 | 전통 방식 (BEM, SCSS 등) | Tailwind CSS |
---|---|---|
스타일 선언 위치 | 외부 CSS 파일 / <style> 태그 |
HTML 내 class 속성 |
재사용 방식 | 믹스인, 함수, 변수 등 사용 | 유틸리티 클래스 조합 |
유지보수 | 구조적이지만 코드량 증가 | 선언적 스타일링으로 간결함 |
러닝 커브 | SCSS 문법 등 사전 지식 필요 | 직관적 클래스 사용으로 비교적 쉬움 |
Tailwind는 코드 작성과 동시에 디자인을 확인할 수 있어, 디자이너와 협업 시 피드백 루프가 빨라집니다.
설치 방법
1. CDN 방식 (간편 테스트용)
<script src="https://cdn.tailwindcss.com"></script>
- 설치 없이 바로 사용 가능
- 빠른 프로토타이핑에 적합
- 퍼포먼스 최적화와 커스터마이징에는 한계가 있음
2. NPM + 빌드 환경 설정 (프로젝트용)
npm install -D tailwindcss
npx tailwindcss init
tailwind.config.js
를 통해 테마, 색상, 폰트 등을 정의할 수 있음- 아래와 같이 CSS 파일을 구성:
/* input.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
- Vite, Webpack, Parcel 등 빌드 툴과 연동 가능
- 개발 시 JIT 모드 활성화로 빠른 빌드
주요 개념 정리
유틸리티 클래스
Tailwind는 HTML에 바로 적용할 수 있는 클래스들로 구성됩니다.
예: text-lg
, bg-red-500
, rounded-md
, mt-4
JIT (Just-In-Time) 모드
- 사용된 클래스만 컴파일하여 CSS 번들 크기를 최소화
- 즉시 결과 반영으로 빠른 피드백 루프 제공
Purge (사용하지 않는 클래스 제거)
- 빌드시 사용되지 않은 클래스는 자동으로 제거됨
- 설정은
content
옵션에서 HTML, JS 파일 경로로 지정
Tailwind Config 커스터마이징
- 브레이크포인트, 컬러 시스템, 폰트 사이즈 등을 재정의 가능
- 테마 확장도 손쉽게 가능
module.exports = {
theme: {
extend: {
colors: {
primary: '#1e3a8a',
},
},
},
}
반응형 디자인 적용 방식
Tailwind는 기본적으로 반응형 브레이크포인트를 제공합니다. 접두어를 통해 화면 크기에 따른 스타일을 조건부로 적용할 수 있습니다.
<p class="text-base sm:text-lg md:text-xl lg:text-2xl">
반응형 텍스트 예시입니다.
</p>
sm:
= 640px 이상md:
= 768px 이상lg:
= 1024px 이상xl:
= 1280px 이상
이점: 한 클래스 내에서 반응형 변형을 구성할 수 있어 코드가 깔끔합니다.
예제: 카드 UI 구성
<div class="max-w-sm mx-auto bg-white rounded-xl shadow-lg overflow-hidden">
<img class="w-full h-48 object-cover" src="/images/card.jpg" alt="카드 이미지">
<div class="p-6">
<h2 class="text-2xl font-bold">카드 제목</h2>
<p class="text-gray-600 mt-2">이것은 카드 컴포넌트의 본문입니다.</p>
<button class="mt-4 px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700">
더 알아보기
</button>
</div>
</div>
설명 주석:
max-w-sm
: 카드의 최대 너비 설정mx-auto
: 가로 가운데 정렬rounded-xl
,shadow-lg
: 디자인 요소 강조text-2xl
,text-gray-600
,bg-blue-600
: 텍스트 및 버튼 스타일링
실무 적용 시 유의사항
성능 측면
- JIT 모드와 purge 설정으로 번들 최적화 가능
- CDN 방식은 빠르지만 빌드 최적화에는 한계가 있음
유지보수
- HTML 내 클래스가 많아지면 가독성이 떨어질 수 있음
- 반복되는 구조는 컴포넌트화하여 관리
협업 환경
- 디자인 시스템과 결합하면 강력함
- 비개발자도 class 이름만으로 대략적인 스타일을 유추할 수 있음
'Programing > CSS' 카테고리의 다른 글
px, em, rem? 헷갈리는 CSS 단위 정리 (CSS Units Guide) (0) | 2025.06.10 |
---|---|
iPhone & Android input radius css init (0) | 2013.06.19 |
css 문자열자르기. (0) | 2011.12.21 |
프린트 전용 CSS "@media print" (0) | 2010.12.30 |
Min & Max Height & Width in IE6 (1) | 2009.12.07 |
가운데 정렬 (1) | 2009.11.05 |
웹표준이라기보단 스타일 (0) | 2009.09.26 |