Tailwind CSS를 v3에서 v4로 업그레이드했는데, 빌드는 에러 없이 되는데 tailwind.config.js에 정의한 커스텀 컬러(brand, accent 등)랑 폰트가 유틸리티 클래스로 안 먹습니다. bg-brand 같은 걸 쓰면 그냥 무시돼요.
// tailwind.config.js
module.exports = {
theme: { extend: { colors: { brand: '#1a73e8' } } }
}기본 유틸리티(bg-blue-500 같은 거)는 멀쩡히 잘 나오는데 제가 정의한 커스텀만 안 나옵니다. 마이그레이션 문서를 봐도 뭐가 바뀐 건지 헷갈리네요. config 파일 위치나 이름은 그대로인데 왜 이것만 무시되는 걸까요?
댓글 1
v4 방식으로 옮기면 이렇게 됩니다. 엔트리 CSS에서 @import "tailwindcss"; 한 뒤, 테마를 @theme 블록으로 선언하세요.
@import "tailwindcss";
@theme {
--color-brand: #1a73e8;
}
이러면 bg-brand, text-brand 같은 유틸이 생성됩니다. 네이밍이 규칙이에요. 색은 --color-* , 폰트는 --font-* , 이런 네임스페이스로 넣으면 거기 맞는 유틸이 자동으로 만들어집니다. v3의 @tailwind base/components/utilities 세 줄 디렉티브도 이제 @import "tailwindcss" 한 줄로 대체됐고, PostCSS 플러그인도 @tailwindcss/postcss 로 바뀌었으니 postcss 설정도 같이 확인하세요.
기존 JS config를 당장 다 옮기기 부담되면 임시 다리는 있습니다. CSS에 @config "./tailwind.config.js"; 를 명시적으로 적어주면 v4가 그 파일을 읽어줍니다. 자동으로는 안 읽으니 이 한 줄이 있어야 해요. 다만 이건 과도기용이고, 결국 @theme 방식으로 옮기는 걸 권합니다.
손으로 다 고치기 싫으면 npx @tailwindcss/upgrade 돌려보세요. config를 CSS @theme 로 상당 부분 자동 변환해줍니다. 돌린 뒤 커스텀 색/폰트 잘 옮겨졌는지랑 postcss 설정만 눈으로 한 번 확인하면 됩니다.