- 새로운 고성능 엔진인 Oxide가 Tailwind CSS v4.0으로 개발 중임.
- 개발자 경험을 단순화하고 웹 플랫폼의 최신 진화를 활용하기 위해 설계됨.
- 원래 v3.x 릴리스로 출시될 예정이었으나, 새로운 세대의 프레임워크로서 v4.0으로 출시하기로 결정됨.
- 아직 초기 단계이며 많은 작업이 남아 있지만, 첫 번째 공개 알파 버전을 태깅하여 실험을 시작할 수 있음.
새 엔진, 속도를 위해 구축됨
- 새 엔진은 처음부터 다시 작성되었으며, 더 적은 코드로 더 빠른 속도를 제공함.
- 최대 10배 빠른 빌드 속도를 제공하며, Tailwind CSS 웹사이트는 105ms, Catalyst UI 키트는 55ms만에 빌드 가능.
- 새 엔진은 설치 크기가 35% 이상 작아졌으며, Rust와 Lightning CSS와 같은 무거운 네이티브 패키지를 포함함.
- Rust를 사용하여 프레임워크의 가장 비용이 많이 드는 부분을 처리하고, TypeScript로 코어를 유지하여 확장성을 제공함.
- 새 엔진은 Lightning CSS에만 의존함.
- 자체 CSS 파서를 작성하고, PostCSS보다 2배 빠른 파싱 속도를 제공하는 데이터 구조를 설계함.
통합된 툴체인
- Tailwind CSS v4는 더 이상 플러그인이 아니며, CSS를 처리하는 올인원 도구임.
@import처리, 벤더 프리픽싱, 중첩 지원 등이 내장되어 있어 별도의 설정이 필요 없음.oklch()색상과 미디어 쿼리 범위와 같은 현대적인 CSS 기능을 더 나은 브라우저 지원을 위한 구문으로 변환함.- PostCSS 플러그인을 계속 제공하지만, 번들러 플러그인을 탐색 중이며, 첫 알파 릴리스와 함께 공식 Vite 플러그인을 제공함.
현대 웹을 위해 설계됨
- Tailwind CSS v4는 향후 몇 년 동안 최첨단으로 느껴질 프레임워크를 구축하고자 함.
- 실제
@layer규칙을 사용하여 과거에 문제가 되었던 특정성 문제를 해결함. @property를 사용하여 내부 사용자 정의 속성을 명확하게 정의하고, 배경 그라데이션과 같은 효과를 가능하게 함.color-mix를 사용하여 색상 변수의 불투명도 수정이나currentColor의 불투명도 조정을 더 쉽게 함.- 코어에 컨테이너 쿼리를 직접 지원하며, 새로운
@min-*및@max-*변형을 통해 컨테이너 쿼리 범위를 지원함.
조합 가능한 변형
- 새 아키텍처는 다른 선택자에 작용하는 변형을 함께 구성할 수 있게 함.
- 이전 버전에서는
group-has-*와 같은 변형이 프레임워크에 명시적으로 정의되었으나, 이제group-*은 기존has-*변형과 함께 구성될 수 있음.
제로 구성 콘텐츠 감지
- 초기 알파 릴리스에서는
content경로를 구성할 수 없으며, 대부분의 프로젝트에서는 이를 다시 설정할 필요가 없음. - PostCSS 플러그인이나 CLI를 사용하는 경우, Tailwind는 프로젝트 전체를 크롤링하여 템플릿 파일을 찾음.
- Vite 플러그인을 사용하는 경우, 모듈 그래프에 의존하여 실제로 사용하는 파일을 정확히 알 수 있음.
CSS 우선 구성
- Tailwind CSS v4.0의 주요 목표는 프레임워크를 CSS 네이티브처럼 느끼게 하고, JavaScript 라이브러리처럼 느껴지지 않게 하는 것임.
- 설치 후, 일반 CSS
@import문을 사용하여 프로젝트에 추가함. - JavaScript 구성 파일에서 모든 사용자 정의를 설정하는 대신, CSS 변수를 사용함.
변경된 사항
- 중요한 변경 사항을 가볍게 다루지 않지만, v4에서는 몇 가지 다르게 처리되는 사항이 있음.
- 더 이상 문서화되지 않은 유틸리티를 제거함.
- PostCSS 플러그인과 CLI는 별도의 패키지로 제공됨.
- 기본 테두리 색상을 제거함.
- 기본적으로
ring유틸리티는 이제currentColor를 사용하는 1px 링임.
v4.0으로 가는 로드맵
- 새 엔진은 처음부터 다시 작성되었으며, 새로운 구성 접근 방식을 사용하는 개발자 경험에 전적으로 집중함.
- 뒤로 호환성을 매우 중요하게 생각하며, 안정적인 v4.0 릴리스를 위한 주요 작업임.
- JavaScript 구성 파일 지원, 명시적 콘텐츠 경로 구성, 다른 다크 모드 지원, 플러그인 및 사용자 정의 유틸리티 지원, 클래스 접두사 구성, Safelists 및 blocklists 지원,
important구성 지원,theme()함수 지원, 독립 실행형 CLI 지원 등이 포함됨.
알파 버전 시도하기
- 이미 몇 가지 알파 릴리스가 태깅되었으며, 프로젝트에서 오늘부터 실험을 시작할 수 있음.
- Tailwind CSS IntelliSense 확장 프로그램을 사용하는 경우, VS Code 확장 페이지에서 사전 릴리스 버전으로 전환해야 함.
- 문제가 발견되면 GitHub에서 알려주기를 바람.
Vite 사용하기
- Tailwind CSS v4 알파와 새로운 Vite 플러그인을 설치함.
vite.config.ts파일에 플러그인을 추가함.- 메인 CSS 파일에서 Tailwind를 가져옴.
PostCSS 사용하기
- Tailwind CSS v4 알파와 별도의 PostCSS 플러그인 패키지를 설치함.
postcss.config.js파일에 플러그인을 추가함.- 메인 CSS 파일에서 Tailwind를 가져옴.
CLI 사용하기
- Tailwind CSS v4 알파와 별도의 CLI 패키지를 설치함.
- 메인 CSS 파일에서 Tailwind를 가져옴.
- CLI 도구를 사용하여 CSS를 컴파일함.
GN⁺의 의견
- Tailwind CSS v4.0의 오픈 소스 공개는 개발자 커뮤니티에게 새로운 기능과 개선 사항을 미리 경험할 기회를 제공함. 이는 개발자들이 프레임워크에 대한 피드백을 제공하고, 더 안정적인 최종 릴리스에 기여할 수 있는 기회를 의미함.
- 새로운 엔진의 성능 향상은 빌드 시간을 크게 단축시키는 것으로 보여, 특히 대규모 프로젝트나 빠른 개발 사이클이 중요한 환경에서 유용할 것으로 예상됨.
- Rust와 TypeScript의 조합은 성능과 확장성을 동시에 추구하는 현대적인 접근 방식을 반영함. Rust로 작성된 부분은 성능을 극대화하는 반면, TypeScript는 개발자들이 쉽게 확장하고 유지보수할 수 있게 함.
- CSS 변수를 사용한 새로운 구성 방식은 기존의 JavaScript 기반 설정보다 더 CSS 친화적이며, 디자인 시스템과의 통합을 용이하게 할 수 있음.
- 이러한 변화는 기존 사용자들에게는 일부 마이그레이션 작업을 요구할 수 있으나, 장기적으로는 더 간결하고 유지보수가 쉬운 코드베이스로 이어질 것으로 기대됨.