TailwindPHP
Port TailwindCSS 4.x ke PHP. Hasilkan Tailwind utility CSS dalam PHP, tanpa Node.js dan tanpa langkah build. Disertai cn(), tailwind-merge, CVA, plugin tipografi dan formulir, serta CLI.
composer require tailwindphp/tailwindphpRilis terbaru 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'Dalam praktik
Berikan markup dan file input CSS opsional dalam satu pemanggilan PHP, lalu dapatkan stylesheet.
Hasilkan CSS dari PHP
tw::generate() memindai markup untuk mencari nama kelas dan hanya mengembalikan CSS yang dibutuhkan kelas tersebut. Argumen kedua menerima input CSS, sehingga warna yang didefinisikan dalam @theme menjadi utility.
cn() menyusun string kelas dan menyelesaikan konflik Tailwind, sehingga utility terakhir yang berkonflik akan digunakan.
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 Murni
Tanpa Node.js dan tanpa langkah build. Berjalan pada PHP 8.2+ dengan ekstensi mbstring dan ctype standar. Jalankan composer require, lalu mulai.
Mengikuti TailwindCSS v4.3.3
Port Tailwind v4.3.3 dengan utility, varian, dan direktif yang sama. Perbedaan yang diketahui dari Tailwind telah didokumentasikan.
4,400+ pengujian
Output diverifikasi terhadap suite pengujian milik TailwindCSS, diekstrak dari sumber TypeScript dan dijalankan ulang pada setiap push.
Setiap utility & varian
Set utility lengkap dan setiap variannya: hover, focus, responsif, mode gelap, kueri kontainer, dan nilai arbitrer.
Direktif CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin, dan @source, diurai dan diresolusikan dalam PHP.
Pembuatan saat runtime
Hasilkan utility CSS secara langsung dari HTML, konten basis data, atau variabel template. Tidak memerlukan langkah build.
Semua sudah termasuk
cn(), merge(), join(), dan variants(): clsx, tailwind-merge, dan CVA yang diport ke PHP, tanpa paket tambahan.
Plugin
@tailwindcss/typography dan @tailwindcss/forms diport ke PHP, ditambah plugin PHP API untuk utility dan komponen Anda sendiri.
CLI
bin/tailwindphp membuat stylesheet dari file input CSS dengan -i, -o, --watch, dan --minify.
Periksa tema
Baca nilai properti mentah dan hasil komputasi, warna, breakpoint, dan spasi untuk kelas apa pun langsung dari PHP.
Cache dan minifier
Minifier CSS bawaan dan cache file dengan TTL membuat build berulang lebih cepat dan output lebih ringkas.
Framework WordPress & PHP
Rilis tema dan plugin berbasis Tailwind tanpa Node.js dalam stack. TailwindPHP adalah satu dependensi Composer.
Mengapa TailwindPHP
Satu runtime di produksi
Proyek PHP yang menggunakan Tailwind biasanya juga memerlukan Node.js, instalasi npm, serta langkah build di CI dan Docker. TailwindPHP mengompilasi CSS di dalam proses PHP.
CSS untuk konten yang diketahui saat runtime
Markup dari basis data, input pengguna, atau variabel template dapat langsung diberikan ke tw::generate(), yang hanya mengembalikan CSS yang dibutuhkan kelasnya.
Diuji terhadap rilis Tailwind yang dipatok
Kasus pengujian diekstrak dari sumber Tailwind yang dipatok di repositori dan dijalankan terhadap output PHP, sehingga perbedaan membuat CI gagal. Rilis 1.7.0 diuji terhadap Tailwind v4.3.3 dengan 4,427 pengujian.
CSS per halaman dari satu compiler
Kompilasi tema sekali dengan tw::compile(), lalu panggil generateExact() untuk setiap halaman. Setiap pemanggilan menghasilkan apa yang akan dihasilkan oleh tw::generate() dingin untuk halaman itu, tanpa mengurai tema lagi.
Dibandingkan dengan
Tailwind Labs menyediakan cara sendiri untuk membangun Tailwind CSS. Berikut perbedaannya dengan TailwindPHP.
| Alat | Keunggulan | Perbedaan dengan TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | KeunggulanTool baris perintah milik Tailwind, dipasang dari npm. Tool ini memindai file HTML, komponen, dan template untuk mencari nama kelas, lalu menulis gaya yang cocok ke file CSS statis. | Perbedaan dengan TailwindPHPTailwindPHP mengompilasi di dalam PHP tanpa instalasi Node.js atau npm. Tool ini mengikuti rilis Tailwind tetap (v4.3.3 di 1.7.0), dan benchmark-nya sendiri menunjukkan bahwa versi asli TypeScript menjalankan operasi tingkat rendah lebih cepat. |
| Tailwind CLI mandiri | KeunggulanTailwind CLI sebagai executable mandiri, untuk proyek yang ingin menggunakannya tanpa memasang Node.js. | Perbedaan dengan TailwindPHPExecutable ini adalah biner terpisah yang berjalan sebagai langkah build. TailwindPHP adalah paket Composer yang dipanggil oleh kode PHP Anda, sehingga paket ini juga dapat menghasilkan CSS saat permintaan berlangsung dari konten basis data atau variabel template. |
| Tailwind Play CDN | KeunggulanTag skrip yang menjalankan Tailwind di browser untuk mencobanya tanpa langkah build. Dokumentasi Tailwind menyatakan bahwa tool ini dirancang untuk pengembangan dan tidak ditujukan untuk produksi. | Perbedaan dengan TailwindPHPTailwindPHP juga tidak memerlukan langkah build, tetapi menghasilkan CSS di PHP pada server lalu mengembalikannya sebagai string, misalnya untuk ditulis ke stylesheet. |
Sumber, dicentang
Tanya jawab
Jawaban singkat dari dokumentasi TailwindPHP.
Rilis 1.7.0 mengikuti Tailwind CSS v4.3.3. Suite pengujiannya diekstrak ulang berdasarkan versi tersebut.
Output diuji berdasarkan kasus yang diekstrak dari file pengujian milik Tailwind. Changelog 1.7.0 mencatat beberapa perbedaan serialisasi, misalnya .p-0 mempertahankan padding: 0px, sedangkan CLI referensi menghasilkan padding: 0.
Tidak. Plugin tidak PHP: plugin tipografi dan formulir telah diport, dan Anda dapat menulis plugin sendiri berdasarkan PHP plugin API lalu mendaftarkannya dengan registerPlugin(). Nama @plugin yang tidak terdaftar akan menimbulkan error.
Dalam benchmark proyek pada PHP 8.4.5 dan Apple M1, pembuatan halaman penuh memerlukan sekitar 14 ms per halaman. Untuk input berulang, cache file melewati kompilasi, sedangkan compiler yang berjalan lama dengan generateExact() menggunakan kembali tema yang telah diurai.
Tidak. IntelliSense, pelengkapan otomatis, pengurutan kelas, dan peta sumber sengaja tidak disertakan. TailwindPHP hanya menghasilkan CSS.
PHP 8.2 atau yang lebih baru dengan ekstensi ctype dan mbstring. composer.json menetapkan versi PHP, dan CI menjalankan suite pengujian pada PHP 8.2, 8.3, dan 8.4.
Pasang paket dengan Composer dan ikuti panduan memulai untuk menghasilkan stylesheet pertama Anda dari PHP.