반복적으로 사용하는 Tailwind CSS 클래스 패턴을(특정 요소에 정의한 클래스 그룹을 여러 곳에서 사용할 때) 하나의 커스텀 클래스로 추출해서 사용할 수 있다

배경 지식 — Tailwind CSS 3계층


Tailwind는 CSS 우선순위를 제어하기 위해 base components utilities 3개의 계층(layer)으로 구분한다. 이렇게 계층을 구분해두면 각 스타일이 어떻게 상호작용하는지 더 쉽게 이해할 수 있으며, @layer 지시문(해당 스타일이 어떤 계층에 속할지 지정)을 사용해 원하는 방식으로 선언 순서를 제어할 수 있게 된다. — 참고





🔍️ 커스텀 스타일을 정의할 때 @layer 지시문을 사용하면, @tailwind 지시문으로 자동 재배치돼서 선언 순서를 제어하는데 도움을 주며, 커스텀 스타일에도 modifierstree shaking 기능이 적용된다.

클래스 패턴 추출


@apply 지시문 사용

<aside> 💡 공식문서에선 @apply 지시문(directive)을 사용한 클래스 추상화는 form 조작이나 button 처럼 **“재사용성이 높은 작은 부분”**에 대해서만 사용할 것을 권고한다. @apply를 사용하면 CSS 번들 크기가 커지고 클래스 이름을 고려해야 되는 등 Tailwind 프레임워크가 가진 장점을 상쇄하기 때문이다 — 참고

</aside>

@apply 지시문은 커스텀 스타일内 유틸리티 클래스를 적용할 때 사용한다. ➊@apply 지시문으로 자주 사용하는 클래스 패턴을 추출해 새로운 커스텀 클래스를 만들거나, ➋기존 클래스(써드파티 라이브러리가 이미 정의해둔 클래스 등)에 새로운 스타일을 덮어쓸 수 있다.