2022년 11월 9일
조회 : 317|2분 읽기
TailwindCSS은 뭐고 왜 사용할까
TailwindCSS란
공식 문서 사이트에 제일 먼저 들어가면 HTML을 벗어나지 않고도 최신 웹사이트를 빠르게 구축할 수 있습니다 라고 적혀있다.
Tailwind CSS는 사용자(개발자)가 앱을 더 빠르고 쉽게 만들 수 있도록 설계된 유틸리티 우선 프레임 워크이다.
유틸리티 클래스를 사용하여 레이아웃, 색상, 간격, 타이포그래피, 그림자 등 을 제어하여 HTML을 벗어나거나 사용자 정의 CSS를 한 줄도 작성하지 않고 완전한 사용자 정의 구성요소 디자인을 만들 수 있다.
ex)
// class 안에 들어가 있는 속성들이 유틸리티 클래스
<div class="flex w-1/2 justify-center rounded-lg border-2 border-red-500">안녕하세요</div>
TailwindCSS Playground를 사용하여 가볍게 사용해 볼 수 있다.
Tailwind의 이점
-
맞춤 CSS를 덜 작성한다. HTML에 직접 클래스에 적용하여 요소의 스타일을 지정할 수 있다. 이런 방식으로 유틸리티 클래스를 사용하면 CSS를 작성하지 않고도 사용자 정의 디자인을 작성할 수 있다.
-
CSS파일을 작게 유지한다. 만약 styled-componets와 같이 js 파일 안에서 CSS를 작성하지 않는 경우(CSS-in-JS) 프로젝트에 컴포넌트를 하나 생성할때 마다 같이 CSS 파일을 생성해야하지만 HTML의 클래스에서 스타일을 지정할 수 있기 때문에 프로젝트에 CSS파일이 적게 할 수 있다.
-
빠른 빌드 시간 및 CSS 파일 크기 PurgeCSS 최적화와 관련있다. 이것을 사용하여 HTML을 스캔하고 사용하지 않는 클래스를 제거하여 파일 크기를 상당히 줄일 수 있다.
-
클래스 이름을 만들 필요가 없다. styled-components나 sass를 사용할때 이름을 정하는 것은 꽤 어려운 일이었다. Tailwind를 사용한다면 이름을 붙여줄 필요가 없이 스타일 지정이 가능하다. 따라서 특정 스타일 및 구성 요소에 대해 완벽한 클래스 이름을 선택하기 위해 고민할 필요가 없다.
-
안전한 수정 기존 접근 방식을 사용해 CSS를 변경하면 앱 전체에 문제가 발생할 경우가 있다. 하지만 HTML의 유틸리티 클래스는 로컬이기 때문에 자기 의외에 다른 곳에 영향을 끼칠 걱정 없이 수정이 가능하다.
-
반응형 Tailwind는 기본적으로 모바일 우선 접근 방식을 사용한다. 유틸리티 클래스를 사용할 수 있어 복잡한 반응형 레이아웃을 더 쉽게 자유롭게 구축할 수 있다.
-
캐시 CSS 파일을 변경하지 않고 마크업에서 동일한 클래스를 계속 사용하기 때문에 디자인을 변경하기 위해 CSS 캐시를 파괴할 필요가 없다. -> 유저가 CSS파일을 자주 다시 다운로드할 필요가 없다.
-
커스터마이징 플러그인을 사용해서 CSS 대신 JS를 사용해 사용자의 스타일 시트에 삽입할 새 스타일 등록이 가능하다. 다크 모드도 간단하게 구현이 가능하다. 브라우저의 session 공간에 들어가서 dark인지 아닌지 상태를 확인하며 class에 dark: 를 붙이면 dark 모드일 때의 스타일 정의가 가능하다.
단점
1. 코드의 가독성 & 유지 보수 클래스 네임을 스타일로 추가해야하기 때문에 코드가 너무 복잡하고 더러워 보일 수 있다. 유지보수를 해야하는데 스타일을 고쳐야 할 경우 이름이 없어 어디가 어딘지 모르고 스타일에 따라 찾아야한다.
-
러닝커브 및 적응 CSS를 베이스로 만들어졌지만 사용하기 위해선 tailwind의 방식을 따라야 하기 때문에 적응하기 힘들 수 도 있다.
-
스타일 동적 적용 styled-components와 비교해서 상태에 따라 style을 지정하는 것이 어렵다. 필요한 경우 util 함수를 만들어서 사용했다.
javascript1export function cls(...classNames: string[]) { 2 return classNames.join(" "); 3}