TailwindPHP
En portering av TailwindCSS 4.x till PHP. Generera Tailwind-verktyg CSS i PHP, utan Node.js och utan byggsteg. Levereras med cn(), tailwind-merge, CVA, typografi- och formulärpluginerna samt en CLI.
composer require tailwindphp/tailwindphpSenaste versionen 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'I praktiken
Skicka markup och valfri indata-CSS i ett enda anrop till PHP och få tillbaka en formatmall.
Generera CSS från PHP
tw::generate() skannar markuppen efter klassnamn och returnerar bara den CSS som klasserna behöver. Det andra argumentet tar emot indata-CSS, så en färg som definieras i @theme blir en verktygsklass.
cn() bygger klasssträngar och löser konflikter i Tailwind, så den sista motstridiga verktygsklassen vinner.
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'Ren PHP
Ingen Node.js och inget byggsteg. Körs på PHP 8.2+ med standardtilläggen mbstring och ctype. Kör composer require och sätt igång.
Följer TailwindCSS v4.3.3
En portering av Tailwind v4.3.3 med samma verktygsklasser, varianter och direktiv. De kända skillnaderna jämfört med Tailwind finns dokumenterade.
4,400+ tester
Utdata verifieras mot TailwindCSSs egna testsviter, som hämtats från källkoden TypeScript och körs på nytt vid varje push.
Alla verktygsklasser och varianter
Hela uppsättningen verktygsklasser och alla varianter: hover, focus, responsivt, mörkt läge, containerfrågor och godtyckliga värden.
Direktiv för CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin och @source, parsade och lösta i PHP.
Generering vid körning
Generera verktygs-CSS direkt från HTML, databasinnehåll eller mallvariabler. Inget byggsteg krävs.
Allt ingår
cn(), merge(), join() och variants(): clsx, tailwind-merge och CVA porterade till PHP, utan extra paket.
Pluginer
@tailwindcss/typography och @tailwindcss/forms porterade till PHP, plus ett insticksprogram för PHP API för egna verktygsklasser och komponenter.
CLI
bin/tailwindphp bygger en formatmall från en indatCSS-fil med -i, -o, --watch och --minify.
Inspektera temat
Läs råa och beräknade egenskapsvärden, färger, brytpunkter och avstånd för valfri klass direkt från PHP.
Cache och minifierare
En inbyggd CSS-minifierare och en filcache med TTL håller upprepade byggen snabba och utdata kompakt.
Ramverk för WordPress och PHP
Leverera Tailwind-baserade teman och insticksprogram utan Node.js i teknikstacken. TailwindPHP är ett enda beroende av typen Composer.
Varför TailwindPHP
En körningsmiljö i produktion
Ett PHP-projekt som inför Tailwind tar vanligtvis också på sig Node.js, en npm-installation samt ett byggsteg i CI och Docker. TailwindPHP kompilerar i stället CSS i processen PHP.
CSS för innehåll som är känt vid körning
Markup från en databas, användarinmatning eller en mallvariabel kan skickas direkt till tw::generate(), som bara returnerar den CSS som klasserna behöver.
Kontrollerad mot en låst version av Tailwind
Testfall hämtas från källkoden för Tailwind, som är låst i kodarkivet, och körs mot utdata från PHP, så att avvikelser stoppar CI. Version 1.7.0 kontrollerades mot Tailwind v4.3.3 med 4,427 tester.
CSS per sida från en enda kompilator
Kompilera temat en gång med tw::compile() och anropa sedan generateExact() för varje sida. Varje anrop returnerar samma sak som en kall tw::generate() av sidan skulle generera, utan att temat parsas igen.
Jämfört med
Tailwind Labs har egna sätt att bygga Tailwind CSS. Så här skiljer sig TailwindPHP.
| Verktyg | Bra på | Skillnaden jämfört med TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Bra påTailwinds eget kommandoradsverktyg, installerat från npm. Det skannar dina HTML-filer, komponenter och mallar efter klassnamn och skriver matchande formatregler till en statisk CSS-fil. | Skillnaden jämfört med TailwindPHPTailwindPHP kompilerar inuti PHP utan installation av Node.js eller npm. Det följer en fast version av Tailwind (v4.3.3 i 1.7.0), och dess eget riktmärke visar att originalet TypeScript kör lågnivåoperationerna snabbare. |
| Fristående Tailwind CLI | Bra påTailwind CLI som en fristående körbar fil, för projekt som vill använda den utan att installera Node.js. | Skillnaden jämfört med TailwindPHPDen körbara filen är en separat binär som körs som ett byggsteg. TailwindPHP är ett Composer-paket som anropas av din PHP-kod och kan därför även generera CSS vid anropstillfället från databasinnehåll eller mallvariabler. |
| Tailwind Play CDN | Bra påEn skripttagg som kör Tailwind i webbläsaren för att prova det utan byggsteg. I dokumentationen för Tailwind står det att det är utformat för utveckling och inte avsett för produktion. | Skillnaden jämfört med TailwindPHPTailwindPHP behöver inte heller något byggsteg, men genererar CSS i PHP på servern och returnerar den som en sträng, till exempel för att skriva den till en formatmall. |
Frågor och svar
Korta svar från dokumentationen för TailwindPHP.
Version 1.7.0 följer Tailwind CSS v4.3.3. Dess testsviter extraherades på nytt mot den versionen.
Utdata testas mot fall som hämtats från Tailwinds egna testfiler. Ändringsloggen för 1.7.0 beskriver några skillnader i serialisering. Exempelvis behåller .p-0 padding: 0px, medan referensimplementationen CLI ger padding: 0.
Nej. Insticksprogram är PHP: typografi- och formulärinsticksprogrammen har porterats, och du kan skriva egna mot insticksprogrammets PHP API och registrera det med registerPlugin(). Ett namn av typen @plugin som inte har registrerats orsakar ett fel.
I projektets riktmärke på PHP 8.4.5 och en Apple M1 tog generering av en hel sida ungefär 14 ms per sida. För upprepad indata hoppar filcachen över kompileringen, och en långlivad kompilator med generateExact() återanvänder det parsade temat.
Nej. IntelliSense, automatisk komplettering, klassortering och källkartor har medvetet utelämnats. TailwindPHP genererar bara CSS.
PHP 8.2 eller senare med tilläggen ctype och mbstring. composer.json anger PHP-versionen, och CI kör testsviten på PHP 8.2, 8.3 och 8.4.
Installera paketet med Composer och följ kom igång-guiden för att generera din första formatmall från PHP.