TailwindPHP
TailwindPHP은 TailwindCSS 4.x을 PHP로 1:1 포팅한 것입니다. CSS를 파싱하고 마크업에서 클래스 이름을 스캔해 TailwindCSS v4.3.3이 생성하는 유틸리티 CSS를 만듭니다. Node.js이나 빌드 단계 없이 전적으로 PHP에서 실행됩니다.
- 순수 PHP — Composer 패키지로 제공되며 표준
ctype및mbstring확장 기능이 포함된 PHP 8.2 이상에서 실행됩니다.exec, FFI, 네이티브 빌드 도구가 필요하지 않습니다. - TailwindCSS 기준 검증 — 유틸리티, 변형, 지시문, CSS 함수는 TailwindCSS v4.3.3에 맞춰져 있습니다. 출력은 TypeScript 소스에서 추출한 Tailwind 자체 테스트 스위트와 비교 검증하며, 푸시할 때마다 다시 실행합니다(4,400개 이상 테스트). 알려진 차이(계단식 적용에 영향이 없는 일부 직렬화 세부 사항과 미해결 이슈)는 호환성 및 업그레이드에 나와 있습니다.
- 전체 기능 세트 — TailwindCSS v4.3.3 유틸리티 전체(
container, 스크롤바 유틸리티,zoom-*,tab-*포함), 모든 변형(hover, focus, 반응형, 다크 모드, 컨테이너 쿼리, 임의 값), 전체 지시문 API인@import,@theme,@apply,@utility,@variant,@custom-variant,@layer,@plugin,@source을 제공합니다. - 필요한 기능 포함 —
cn(),merge(),join(),variants()에는 clsx, tailwind-merge, CVA의 PHP 포팅이 포함되어 있어 Tailwind 프로젝트에서 자주 사용하는 보조 라이브러리를 바로 쓸 수 있습니다. - 플러그인 —
@tailwindcss/typography와@tailwindcss/forms을 모두 포팅했으며, API을 사용해 직접 플러그인을 작성할 수 있는 PHP 플러그인도 제공합니다.
TailwindPHP이 필요한 이유
TailwindCSS은 TypeScript로 작성되어 Node.js에서 실행됩니다. Tailwind를 원하는 PHP 프로젝트에는 두 번째 런타임, npm 설치, CI 및 Docker의 빌드 단계가 반드시 필요합니다. 많은 PHP 애플리케이션에는 이런 부담이 불필요합니다.
TailwindPHP은 이러한 부담을 없앱니다. PHP 코드가 표준 라이브러리만 사용해 Tailwind CSS를 직접 컴파일합니다. 그 결과 JavaScript 도구 체인으로는 번거롭거나 불가능한 몇 가지 작업을 할 수 있습니다:
- WordPress 및 PHP 프레임워크 — Tailwind 기반 테마와 플러그인을 제공할 때 사용자에게 Node.js 설치나 빌드를 요구하지 않아도 됩니다.
composer require만 실행하면 됩니다. TailwindPHP을 사용해 블록 편집기 CSS를 생성하는 예제 WordPress 플러그인인 TailwindWP을 참조하세요. - 런타임 CSS — 빌드 시점에 생성하는 대신 사용자 입력, 데이터베이스 콘텐츠 또는 템플릿 변수로 유틸리티 CSS를 즉시 생성합니다.
- 간편한 배포 — 프로덕션에 Node.js이 필요 없고, CI 빌드 단계도 없으며, Docker 이미지에 npm도 필요하지 않습니다.
SCSS에 scssphp가 도입한 아이디어와 같습니다. 전체 컴파일러를 PHP로 구현했습니다.
기능
- 콘텐츠에서 찾은 클래스 이름으로 TailwindCSS v4.3.3 유틸리티 세트, 변형, 임의 값을 컴파일합니다.
- 전체 지시문 API를 처리합니다:
@import(tailwindcss및tailwindcss/utilities같은 가상 모듈과reference가져오기 포함),@theme,@apply,@utility,@variant,@custom-variant,@layer,@plugin,@source. - Tailwind의 CSS 함수인
theme(),--theme(),--spacing(),--alpha()를 구현합니다.color-mix()에서oklab()로의 변환과 TailwindCSS이 LightningCSS에 맡기는 CSS 변환도 지원합니다. - 중첩 가져오기, 중복 제거, 사용자 정의 리졸버를 지원하며 파일 시스템에서
@import를 처리하거나 인라인 CSS 문자열에서 처리합니다. - Preflight(Tailwind의 기본 리셋), 접두사 지원,
@property대체 값, 벤더 접두사, 키프레임 호이스팅을 제공합니다. - 클래스 이름 구성, 충돌 해결, 컴포넌트 변형을 위해
cn(),merge(),join(),variants()/compose()를 포함합니다. - 타이포그래피 및 폼 플러그인과 사용자 정의 플러그인을 위한 플러그인 API(
addUtilities,matchUtilities,addComponents,addVariant,theme, …)도 제공합니다. @tailwindcss/cli빌드 옵션이 포함된 CLI(bin/tailwindphp), 파일 기반 출력 캐싱, 지속형 컴파일러 상태 캐시, 프로덕션용 CSS 축소기를 제공합니다.
해당하지 않는 것
TailwindPHP은 에디터 도구 체인이 아닌 CSS 컴파일러입니다. 의도적으로 Tailwind 생태계의 IDE 관련 기능인 IntelliSense, 자동 완성, 클래스 정렬, 소스 맵을 제외했습니다. 이는 에디터 기능이며 CSS 생성에 포함되지 않기 때문입니다. CSS를 생성하는 기능은 모두 범위에 포함되며, 에디터를 지원하는 기능은 포함되지 않습니다.