Ga naar de inhoud

TailwindPHP

TailwindPHP is een 1:1-port van TailwindCSS 4.x naar PHP. Het parseert je CSS, scant je markup op klassennamen en genereert de CSS voor utilityklassen die TailwindCSS v4.3.3 oplevert — volledig in PHP, zonder Node.js of buildstap.

  • Pure PHP — wordt geleverd als Composer-pakket en werkt op PHP 8.2+ met de standaardextensies ctype en mbstring. Geen exec, geen FFI en geen native buildtools.
  • Getest tegen TailwindCSS — hulpfuncties, varianten, directives en CSS-functies volgen TailwindCSS v4.3.3. De uitvoer wordt gecontroleerd met de eigen testsuites van Tailwind, uit de broncode van TypeScript gehaald en bij elke push opnieuw uitgevoerd (4,400+ tests). De bekende verschillen (enkele serialisatiedetails zonder effect op de cascade, plus openstaande problemen) staan vermeld in Compatibiliteit en upgraden.
  • De volledige functieset — de volledige set hulpfuncties van TailwindCSS v4.3.3 (inclusief container, de scrollbar-hulpfuncties, zoom-* en tab-*), elke variant (hover, focus, responsief, donkere modus, containerqueries, willekeurige waarden) en het volledige aanbod directives: @import, @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin en @source.
  • Alles inbegrepen — cn(), merge(), join() en variants() bundelen PHP-ports van clsx, tailwind-merge en CVA, zodat de bijbehorende bibliotheken waar elk Tailwind-project gebruik van maakt al beschikbaar zijn.
  • Plugins — @tailwindcss/typography en @tailwindcss/forms zijn volledig geporteerd, en met een PHP-plugin API kun je je eigen plugin schrijven.

Waarom TailwindPHP bestaat

TailwindCSS is geschreven in TypeScript en draait op Node.js. Dat is een harde eis voor elk PHP-project dat Tailwind wil gebruiken: een tweede runtime, een installatie van npm en een buildstap in CI en Docker. Voor veel PHP-applicaties is dat extra gedoe waar ze liever niet aan beginnen.

TailwindPHP neemt die eis weg. Je PHP-code compileert rechtstreeks naar Tailwind CSS, met alleen de standaardbibliotheek. Dat maakt een aantal dingen mogelijk die met de JavaScript-toolchain lastig of onmogelijk zijn:

  • Frameworks voor WordPress en PHP — lever thema's en plugins met Tailwind zonder gebruikers te vragen Node.js te installeren of een build uit te voeren. Gewoon composer require en klaar. Zie TailwindWP, een voorbeeldplugin voor WordPress die blokeditor-CSS genereert met TailwindPHP.
  • CSS tijdens runtime — genereer hulpfunctie-CSS direct op basis van gebruikersinvoer, database-inhoud of templatevariabelen in plaats van tijdens het bouwen.
  • Eenvoudigere implementatie — geen Node.js in productie, geen buildstap in CI en geen npm in je Docker-image.

Het is hetzelfde idee dat scssphp naar SCSS bracht — de volledige compiler, in PHP.

Wat het doet

  • Compileert de utilityklassen, varianten en willekeurige waarden van TailwindCSS v4.3.3 op basis van klassennamen in je inhoud.
  • Verwerkt alle directives: @import (inclusief virtuele modules zoals tailwindcss en tailwindcss/utilities, en reference-imports), @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin en @source.
  • Implementeert de CSS-functies van Tailwind — theme(), --theme(), --spacing() en --alpha() — plus de omzetting van color-mix() → oklab() en de CSS-transformaties die TailwindCSS aan LightningCSS uitbesteedt.
  • Verwerkt @import vanuit het bestandssysteem met geneste imports, deduplicatie en eigen resolvers, of vanuit inline CSS-tekenreeksen.
  • Bevat Preflight (de basisreset van Tailwind), prefixondersteuning, @property-fallbacks, browserprefixen en het naar boven verplaatsen van keyframedefinities.
  • Bundelt cn(), merge(), join() en variants()/compose() voor het opbouwen van klassennamen, conflictoplossing en componentvarianten.
  • Bevat de typography- en forms-plugins, plus een plugin-API (addUtilities, matchUtilities, addComponents, addVariant, theme, …) voor eigen plugins.
  • Biedt een CLI (bin/tailwindphp) met de buildopties van @tailwindcss/cli, plus uitvoercaching in bestanden, een persistente cache voor de compilerstatus en een CSS-minifier voor productie.

Wat het niet is

TailwindPHP is een CSS-compiler, geen toolchain voor editors. De IDE-gerichte onderdelen van het Tailwind-ecosysteem — IntelliSense, automatisch aanvullen, sorteren van klassen en bronkaarten — zijn bewust weggelaten, omdat dit editorfuncties zijn en geen onderdeel van het genereren van CSS. Alles waarmee CSS wordt geproduceerd, valt binnen het bereik; alles wat je editor aandrijft, niet.

Waar begin je?

  • Aan de slag — installeer het pakket en genereer je eerste stylesheet.
  • Gebruik — scan content, pas het thema aan en gebruik de directives van Tailwind.
  • Klassehulpmiddelen — cn(), merge(), join() en variants().
  • Plugins — typografie, formulieren en je eigen plugins schrijven.
  • API — het volledige tw-oppervlak en de TailwindCompiler-instantie.
  • CLI — bin/tailwindphp voor bestandsgebaseerde builds en de watchmodus.
  • Geavanceerd — architectuur, caching, prestaties en compatibiliteitsnotities.