TailwindPHP
TailwindCSS의 4.x를 PHP로 포팅했습니다. 순수 PHP로 Tailwind 유틸리티 CSS를 생성하며, Node.js이나 빌드 단계가 필요 없습니다. cn(), tailwind-merge, CVA, 타이포그래피 및 폼 플러그인과 CLI를 포함합니다.
composer require tailwindphp/tailwindphp최신 릴리스 v1.7.0 MIT PHP 8.2+
use function TailwindPHP\merge;
merge('px-2 py-1 bg-red-500', 'px-4 bg-blue-500');
// => 'py-1 px-4 bg-blue-500'
// Conflict resolution is variant-aware
merge('hover:bg-red-500', 'hover:bg-blue-500');
// => 'hover:bg-blue-500'실제 사용
마크업과 선택적 입력 CSS를 단일 PHP 호출에 전달하면 스타일시트가 반환됩니다.
PHP에서 CSS 생성
tw::generate()는 마크업에서 클래스 이름을 스캔하고 해당 클래스에 필요한 CSS만 반환합니다. 두 번째 인수로 입력 CSS를 전달하면 @theme에 정의된 색상을 유틸리티로 사용할 수 있습니다.
cn()는 클래스 문자열을 만들고 Tailwind 충돌을 해결하므로, 충돌하는 유틸리티 중 마지막 항목이 우선합니다.
use TailwindPHP\tw;
$css = tw::generate(
'<div class="bg-brand p-4">Hello</div>',
'@import "tailwindcss"; @theme { --color-brand: #3b82f6; }'
);
// .bg-brand now resolves to var(--color-brand)use function TailwindPHP\cn;
cn('px-2 py-1', 'px-4'); // 'py-1 px-4'
cn('btn', ['btn-primary' => true]); // 'btn btn-primary'순수 PHP
Node.js이나 빌드 단계가 필요 없습니다. 표준 mbstring 및 ctype 확장 기능을 갖춘 PHP 8.2+에서 실행됩니다. composer require 명령으로 설치하면 바로 사용할 수 있습니다.
TailwindCSS v4.3.3 추적
Tailwind v4.3.3를 포팅해 동일한 유틸리티, 변형 및 지시문을 제공합니다. Tailwind와의 알려진 차이점은 문서화되어 있습니다.
4,400개 이상의 테스트
TypeScript 소스에서 추출한 TailwindCSS 자체 테스트 모음과 출력을 대조하며, 푸시할 때마다 다시 실행합니다.
모든 유틸리티 및 변형
전체 유틸리티와 모든 변형을 지원합니다: hover, focus, 반응형, 다크 모드, 컨테이너 쿼리 및 임의 값.
CSS 지시문
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin 및 @source를 PHP에서 파싱하고 확인합니다.
런타임 생성
HTML, 데이터베이스 콘텐츠 또는 템플릿 변수에서 유틸리티 CSS를 즉시 생성합니다. 빌드 단계가 필요 없습니다.
필요한 기능 모두 포함
cn(), merge(), join(), variants(): clsx, tailwind-merge 및 CVA를 PHP로 포팅했으며 추가 패키지는 필요하지 않습니다.
플러그인
@tailwindcss/typography 및 @tailwindcss/forms를 PHP로 포팅했으며, 자체 유틸리티와 컴포넌트를 위한 PHP 플러그인 API도 제공합니다.
CLI
bin/tailwindphp는 -i, -o, --watch 및 --minify를 사용해 입력 CSS 파일에서 스타일시트를 빌드합니다.
테마 검사
PHP에서 클래스의 원시 속성값과 계산된 속성값, 색상, 중단점 및 간격을 바로 확인하세요.
캐시 및 압축기
내장 CSS 압축기와 TTL이 적용된 파일 캐시로 반복 빌드 속도를 높이고 출력을 간결하게 유지합니다.
WordPress 및 PHP 프레임워크
Node.js를 사용하지 않는 스택에서 Tailwind 기반 테마와 플러그인을 배포하세요. TailwindPHP는 단일 Composer 종속성입니다.
TailwindPHP를 사용하는 이유
프로덕션에서 하나의 런타임 사용
Tailwind를 도입하는 PHP 프로젝트는 보통 Node.js와 npm 설치, CI 및 Docker의 빌드 단계도 추가합니다. 대신 TailwindPHP는 PHP 프로세스 안에서 CSS를 컴파일합니다.
런타임에 알 수 있는 콘텐츠를 위한 CSS
데이터베이스, 사용자 입력 또는 템플릿 변수의 마크업을 tw::generate()에 바로 전달하면 해당 클래스에 필요한 CSS만 반환합니다.
고정된 Tailwind 릴리스 기준 검증
저장소에 고정된 Tailwind 소스에서 테스트 사례를 추출해 PHP 출력과 대조하므로 결과가 달라지면 CI가 실패합니다. 1.7.0 릴리스는 Tailwind v4.3.3의 4,427개 테스트를 기준으로 검증했습니다.
컴파일러 하나로 페이지별 CSS 생성
tw::compile()로 테마를 한 번 컴파일한 다음 각 페이지마다 generateExact()를 호출하세요. 각 호출은 테마를 다시 파싱하지 않고도 해당 페이지를 새로 tw::generate()했을 때 생성될 내용을 반환합니다.
비교 대상
Tailwind Labs는 Tailwind CSS를 빌드하는 자체 방법을 제공합니다. TailwindPHP의 차이점은 다음과 같습니다.
| 도구 | 잘하는 점 | TailwindPHP와의 차이점 |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | 잘하는 점Tailwind의 자체 명령줄 도구로, npm에서 설치합니다. HTML 파일, 컴포넌트 및 템플릿에서 클래스 이름을 스캔하고 일치하는 스타일을 정적 CSS 파일에 씁니다. | TailwindPHP와의 차이점TailwindPHP는 Node.js나 npm 설치 없이 PHP 내부에서 컴파일합니다. 고정된 Tailwind 릴리스(1.7.0의 v4.3.3)를 추적하며, 자체 벤치마크에서는 원본 TypeScript이 저수준 작업을 더 빠르게 실행하는 것으로 나타났습니다. |
| 독립 실행형 Tailwind CLI | 잘하는 점Tailwind를 Node.js 설치 없이 사용하려는 프로젝트를 위한 독립 실행 파일로서의 CLI입니다. | TailwindPHP와의 차이점실행 파일은 별도의 바이너리로, 빌드 단계에서 실행됩니다. TailwindPHP는 PHP 코드에서 호출하는 Composer 패키지이므로 데이터베이스 콘텐츠나 템플릿 변수로 요청 시점에 CSS를 생성할 수도 있습니다. |
| Tailwind Play CDN | 잘하는 점빌드 단계 없이 시험해 볼 수 있도록 브라우저에서 Tailwind를 실행하는 스크립트 태그입니다. Tailwind 문서에 따르면 개발용으로 설계되었으며 프로덕션용은 아닙니다. | TailwindPHP와의 차이점TailwindPHP도 빌드 단계가 필요 없지만, 서버의 PHP에서 CSS를 생성해 문자열로 반환합니다. 예를 들어 스타일시트 파일에 쓸 수 있습니다. |
질문과 답변
TailwindPHP 문서의 간단한 답변.
1.7.0 릴리스는 Tailwind CSS v4.3.3를 추적합니다. 해당 버전에 맞춰 테스트 모음을 다시 추출했습니다.
출력은 Tailwind의 테스트 파일에서 추출한 사례를 기준으로 테스트합니다. 1.7.0 변경 로그에는 일부 직렬화 차이가 기록되어 있습니다. 예를 들어 .p-0은 padding: 0px를 유지하지만 참조 CLI는 padding: 0을 출력합니다.
아니요. 플러그인은 PHP 방식으로 구현해야 합니다. 타이포그래피 및 폼 플러그인은 포팅되어 있으며, PHP 플러그인 API를 사용해 직접 작성한 뒤 registerPlugin()에 등록할 수 있습니다. 등록되지 않은 @plugin 이름은 오류를 발생시킵니다.
프로젝트 벤치마크에서 PHP 8.4.5 및 Apple M1 기준 전체 페이지 생성에는 페이지당 약 14 ms가 걸렸습니다. 입력을 반복해서 처리할 때는 파일 캐시가 컴파일을 건너뛰고, 오래 실행되는 컴파일러는 generateExact()를 사용해 파싱된 테마를 재사용합니다.
아니요. IntelliSense, 자동 완성, 클래스 정렬 및 소스 맵은 의도적으로 제외했습니다. TailwindPHP는 CSS만 생성합니다.
PHP 8.2 이상과 ctype 및 mbstring 확장 기능이 필요합니다. composer.json에서 PHP 버전을 선언하며, CI는 PHP 8.2, 8.3, 8.4에서 테스트 스위트를 실행합니다.
Composer로 패키지를 설치하고 시작하기 가이드를 따라 PHP에서 첫 스타일시트를 생성하세요.