본문 바로가기
4주차

Tailwind CSS 버전 정리

by joy02 2025. 5. 13.

안녕하세요 웹 YB 정희연입니다!

최근 Tailwind를 처음 접해보면서 여러 오류를 겪게 되었는데요! 알고 보니 버전별로 지원하는 설정 방식과 기능이 다르더라구요

여러 자료를 찾아보며 적용하다보니 버전마다의 설정이 섞이게 되어 오류가 발생했었습니다..💦

이 경험을 계기로 Tailwind의 버전을 정리하고자 합니다.


1. 버전별 주요 차이점 요약

💭 Tailwind CSS v1.x

  • 기본적인 기능 제공 (색상, 여백, 반응형 등)
  • 사용자 커스터마이징은 tailwind.config.js에 제한적으로
  • 대부분의 스타일을 컴포넌트 파일에서 직접 사용

디렉토리 구조 예시 (v1.x) 

project/
  └─ src/
      └─ components/
      └─ App.css (tailwind import 포함)
  └─ tailwind.config.js
  └─ postcss.config.js

 

💭 Tailwind CSS v2.x

 

  • Dark mode, JIT 모드, 새로운 색상 시스템 등 추가됨
  • 커스터마이징 강력해짐
  • @layer 문법 적극 사용되기 시작

디렉토리 구조 예시 (v2.x) 

project/
  └─ src/
      └─ styles/
          └─ index.css (@tailwind base/components/utilities 사용)
  └─ tailwind.config.js
  └─ postcss.config.js

 

 

💭 Tailwind CSS v3.x

 

  • JIT(Just-in-Time) 모드가 기본값으로 적용됨 → purge 대신 content 사용
  • 설정 파일에서 content: ['./src/**/*.{js,ts,jsx,tsx}']처럼 경로 설정 필요
  •  @layer를 활용한 사용자 정의 클래스 정의가 일반화됨
  • 플러그인 사용이 많아짐 (tailwindcss/forms, typography 등)

디렉토리 구조 예시 (v3.x) 

project/
  └─ src/
      └─ components/
      └─ pages/
      └─ styles/
          ├─ global.css  → @tailwind base/components/utilities
          ├─ theme.css   → 커스텀 변수들
  └─ tailwind.config.js
  └─ postcss.config.js
  └─ prettier.config.js  (prettier-plugin-tailwindcss와 함께 사용)

 

 

💭 Tailwind CSS v4.0 주요 변화(가장 최근)

1).  PostCSS 의존성 제거

 

  • postcss.config.js 없이도 Tailwind를 사용할 수 있게 됨
  • 즉, 설정이 더 간결해지고 설치할 의존성도 줄어듦
  • 하지만 여전히 PostCSS를 사용하고 싶다면 기존 방식도 사용 가능
  • Tailwind v4부터는 PostCSS 플러그인을 직접 사용할 수 없고, "@tailwindcss/postcss"라는 별도 패키지를 설치 필요
yarn add -D @tailwindcss/postcss

2). 콘피그 파일 개선

  • tailwind.config.js를 매우 간단하게 만들 수 있음

예시

// tailwind.config.js
export default {
  content: ['./src/**/*.{html,js,ts,jsx,tsx}'],
  theme: {
    extend: {},
  },
}
  • ESM(.js 확장자 + "type": "module") 환경이 기본이므로, module.exports 대신 export default 사용

3). @tailwind base, @tailwind components 제거

<기존>

@tailwind base;
@tailwind components;
@tailwind utilities;

 

<v4>

@import "tailwindcss/preflight";
@import "tailwindcss/utilities";

 


2. 폴더 구조 변화

-> 본질적으로 큰 변화는 없지만 설정 파일과 사용 방식이 단순해져서 구조가 더 심플해짐

 

Tailwind v4 기준 추천 폴더 구조

project/
├─ src/
│  ├─ components/
│  ├─ pages/
│  └─ App.jsx
├─ tailwind.config.js
├─ index.css (선택사항, 필요 시 @tailwind 지시어 사용)
└─ package.json

 

 

index.css가 아예 없어도 되고, 필요하면 넣어도 됨
Tailwind는 v4부터 "Zero-runtime CSS"라는 철학을 추구하기 때문에

빌드 시 필요한 클래스만 생성하고, 최소한의 설정으로 시작하는 걸 지향!

 


3. 버전별 차이 요약 

항목 v1.x   v2.x v3.x v4.x (최신)
@apply 지원 제한적 본격 지원 적극 권장 동일
설정 방식 (purge vs content) 없음 또는 기본 purge 사용 content로 변경됨 content, PostCSS 생략 가능
PostCSS 필요 여부 필수 필수 필수 선택사항 (의존성 제거됨)
JIT 모드 없음 실험적 기본 적용 기본 적용
tailwind.config.js 형식 module.exports만 가능 module.exports만 가능 module.exports or ESM 가능 ESM(export default) 권장
@tailwind 디렉티브 필요 여부 필수 필수 필수 생략 가능 (index.css 없이도 가능)

4. 겪은 오류와 해결법

오류 1: Cannot apply unknown utility class: font-bold

Error: Cannot apply unknown utility class: font-bold

💡 원인

Tailwind v4는 @apply에서 일부 유틸리티 클래스(예: font-bold, font-semibold) 사용 제한

✅ 해결

/* 오류 발생 */
@apply font-bold;

/* 수정 */
font-weight: 700;

 

오류 2: postcss plugin 관련 에러

It looks like you're trying to use tailwindcss directly as a PostCSS plugin...

💡 원인

 

Tailwind v4부터는 PostCSS 플러그인을 분리했기 때문에 기존 설정이 작동하지 않음

✅ 해결

yarn add -D @tailwindcss/postcss
//postcss.config.js

import tailwindcss from '@tailwindcss/postcss';
import autoprefixer from 'autoprefixer';

export default {
  plugins: [tailwindcss(), autoprefixer()],
};

 

오류 3: 클래스 적용 X

💡 원인

Tailwind는 content 경로에 나타나지 않은 클래스는 자동으로 제거(JIT purge)

✅ 해결 1

safelist에 강제로 포함

safelist: ['bg-green-200', 'font-bold']

✅ 해결 2

커스텀 클래스로 정의

.bg-Mainblue { background-color: #0073F9; }

 

정리

항목 상태
@apply 오류 대응 직접 CSS로 대체
색상 클래스 정리 .text-*, .bg-* 방식
PostCSS 설정 변경 @tailwindcss/postcss 사용

📚 참고자료

https://tailwindcss.com/blog/tailwindcss-v4

 

Tailwind CSS v4.0

We just released Tailwind CSS v4.0 — an all-new version of the framework optimized for performance and flexibility, with a reimagined configuration and customization experience, and taking full advantage of the latest advancements the web platform has to

tailwindcss.com

https://tailwindcss.com/docs/installation/using-vite

 

Installing with Vite - Installation

Integrate Tailwind CSS with frameworks like Laravel, SvelteKit, React Router, and SolidJS.

tailwindcss.com

https://tailwindcss.com/docs/upgrade-guide

 

Upgrade guide - Getting started

Upgrading your Tailwind CSS projects from v3 to v4.

tailwindcss.com

 

 

 

'4주차' 카테고리의 다른 글

CommonJS와 ES Modules  (0) 2025.05.13
Zustand 전역 상태 관리: 개념부터 실무까지 한 번에 정리  (0) 2025.05.13
Tanstack Query  (0) 2025.05.13
Lazy loading과 Suspense  (0) 2025.05.13
챗지*티야 빨리 글 좀 써줘!!!  (3) 2025.05.13