TailwindPHP
Een port van TailwindCSS 4.x naar PHP. Genereer Tailwind-utility CSS in PHP, zonder Node.js en zonder buildstap. Inclusief cn(), tailwind-merge, CVA, de typografie- en formulierenplugins en een CLI.
composer require tailwindphp/tailwindphpNieuwste release 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'In de praktijk
Geef markup en optioneel invoer-CSS mee aan één aanroep van PHP en ontvang een stylesheet terug.
Genereer CSS op basis van PHP
tw::generate() scant de markup op classnamen en retourneert alleen de CSS die deze classes nodig hebben. Het tweede argument accepteert invoer-CSS, zodat een kleur die is gedefinieerd in @theme een utility wordt.
cn() bouwt classstrings en lost conflicten tussen Tailwind op, zodat de laatste conflicterende utility wint.
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'Zuiver PHP
Geen Node.js en geen buildstap. Werkt met PHP 8.2+ en de standaardextensies mbstring en ctype. Voer composer require uit en ga aan de slag.
Volgt TailwindCSS v4.3.3
Een port van Tailwind v4.3.3 met dezelfde utilities, varianten en directives. De bekende verschillen met Tailwind zijn gedocumenteerd.
4 400+ tests
De uitvoer wordt gecontroleerd met de eigen testsuites van TailwindCSS, gehaald uit de in TypeScript geschreven broncode van TailwindCSS en bij elke push opnieuw uitgevoerd.
Elke utility en variant
De volledige set utilities en alle varianten: hover, focus, responsive, donkere modus, containerqueries en willekeurige waarden.
CSS-directives
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin en @source, geparseerd en opgelost in PHP.
Genereren tijdens runtime
Genereer utility-CSS direct op basis van HTML, database-inhoud of templatevariabelen. Geen buildstap nodig.
Alles inbegrepen
cn(), merge(), join() en variants(): clsx, tailwind-merge en CVA geport naar PHP, zonder extra packages.
Plug-ins
@tailwindcss/typography en @tailwindcss/forms geport naar PHP, plus een PHP-plugin API voor je eigen utilities en componenten.
CLI
bin/tailwindphp bouwt een stylesheet op basis van een invoerbestand van CSS met -i, -o, --watch en --minify.
Het thema inspecteren
Lees onbewerkte en berekende propertywaarden, kleuren, breakpoints en afstanden voor elke class rechtstreeks uit PHP.
Cache en minifier
Een ingebouwde minifier voor CSS en een bestandscache met TTL houden herhaalde builds snel en de uitvoer compact.
Frameworks voor WordPress en PHP
Lever thema's en plugins op basis van Tailwind zonder Node.js in de stack. TailwindPHP is één enkele dependency van Composer.
Waarom TailwindPHP
Eén runtime in productie
Een PHP-project dat Tailwind gebruikt, neemt doorgaans ook Node.js, een installatie van npm en een buildstap in CI en Docker met zich mee. TailwindPHP compileert de CSS in plaats daarvan binnen het proces van PHP.
CSS voor inhoud die tijdens runtime bekend wordt
Markup uit een database, gebruikersinvoer of templatevariabele kan rechtstreeks naar tw::generate(), dat alleen de CSS retourneert die de classes nodig hebben.
Gecontroleerd aan de hand van een vastgezette release van Tailwind
Testgevallen worden gehaald uit de broncode van Tailwind die in de repository is vastgezet, en uitgevoerd tegen de uitvoer van PHP; afwijkingen laten CI mislukken. Release 1.7.0 is gecontroleerd aan de hand van Tailwind v4.3.3 met 4 427 tests.
CSS per pagina vanuit één compiler
Compileer het thema één keer met tw::compile() en roep daarna generateExact() aan voor elke pagina. Elke aanroep retourneert wat een koude tw::generate() van die pagina zou opleveren, zonder het thema opnieuw te parsen.
Vergeleken met
Tailwind Labs biedt eigen manieren om Tailwind CSS te bouwen. Dit zijn de verschillen met TailwindPHP.
| Tool | Goed in | Verschil met TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Goed inDe eigen command-line-tool van Tailwind, geïnstalleerd vanuit npm. Deze scant je HTML-bestanden, componenten en templates op classnamen en schrijft de bijbehorende stijlen naar een statisch CSS-bestand. | Verschil met TailwindPHPTailwindPHP compileert binnen PHP zonder installatie van Node.js of npm. Het volgt een vaste release van Tailwind (v4.3.3 in 1.7.0), en uit de eigen benchmark blijkt dat de oorspronkelijke implementatie in TypeScript de low-levelbewerkingen sneller uitvoert. |
| Zelfstandige Tailwind CLI | Goed inDe Tailwind CLI als zelfstandig uitvoerbaar bestand, voor projecten die het willen gebruiken zonder Node.js te installeren. | Verschil met TailwindPHPHet uitvoerbare bestand is een aparte binary die als buildstap wordt uitgevoerd. TailwindPHP is een package van Composer dat je code in PHP aanroept, zodat het ook tijdens een request CSS kan genereren op basis van database-inhoud of templatevariabelen. |
| Tailwind Play CDN | Goed inEen script-tag die Tailwind in de browser uitvoert, om het zonder buildstap uit te proberen. Volgens de documentatie van Tailwind is het bedoeld voor ontwikkeling en niet voor productie. | Verschil met TailwindPHPTailwindPHP heeft ook geen buildstap nodig, maar genereert de CSS op de server in PHP en retourneert die als string, bijvoorbeeld om naar een stylesheet te schrijven. |
Bronnen, aangevinkt
Vragen en antwoorden
Korte antwoorden uit de documentatie van TailwindPHP.
Release 1.7.0 volgt Tailwind CSS v4.3.3. De testsuites zijn opnieuw uit die versie gehaald.
De uitvoer wordt getest aan de hand van gevallen uit de eigen testbestanden van Tailwind. In het changelog van 1.7.0 staan enkele verschillen in serialisatie; zo behoudt .p-0 padding: 0px, terwijl de referentie-CLI padding: 0 genereert.
Nee. Plugins zijn PHP: de plugins voor typografie en formulieren zijn geport, en je kunt zelf een plugin schrijven met de PHP-plugin-API en die registreren met registerPlugin(). Een @plugin-naam die niet is geregistreerd, geeft een foutmelding.
In de benchmark van het project op PHP 8.4.5 en een Apple M1 duurde het genereren van een volledige pagina ongeveer 14 ms per pagina. Bij herhaalde invoer slaat de bestandscache compilatie over, en een compiler met lange levensduur en generateExact() hergebruikt het geparseerde thema.
Nee. IntelliSense, automatisch aanvullen, het sorteren van classes en sourcemaps zijn bewust weggelaten. TailwindPHP genereert alleen CSS.
PHP 8.2 of later met de extensies ctype en mbstring. composer.json vermeldt de versie van PHP, en CI voert de testsuite uit op PHP 8.2, 8.3 en 8.4.
Installeer het package met Composer en volg de handleiding om aan de slag te gaan en je eerste stylesheet te genereren op basis van PHP.