TailwindPHP
En port af TailwindCSS 4.x til PHP. Generér Tailwind-hjælpe-CSS i PHP uden Node.js og uden et buildtrin. Leveres med cn(), tailwind-merge, CVA, typografi- og formularplugins samt en CLI.
composer require tailwindphp/tailwindphpSeneste udgivelse 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 praksis
Send markup og valgfrit input-CSS med ét PHP-kald, og få et stylesheet retur.
Generér CSS fra PHP
tw::generate() scanner markuppen for klassenavne og returnerer kun de CSS, klasserne har brug for. Det andet argument tager input-CSS, så en farve defineret i @theme bliver til en hjælpeklasse.
cn() bygger klassestrenge og løser konflikter i Tailwind, så den sidste modstridende hjælpeklasse vinder.
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
Intet Node.js og intet buildtrin. Kører på PHP 8.2+ med standardudvidelserne mbstring og ctype. Kør composer require, så er du klar.
Følger TailwindCSS v4.3.3
En port af Tailwind v4.3.3 med de samme hjælpeklasser, varianter og direktiver. De kendte forskelle fra Tailwind er dokumenteret.
4,400+ tests
Outputtet verificeres mod TailwindCSSs egne testpakker, udtrukket fra kilden TypeScript og kørt igen ved hver push.
Alle hjælpeklasser og varianter
Det fulde sæt af hjælpeklasser og alle varianter: hover, fokus, responsiv visning, mørk tilstand, containerforespørgsler og vilkårlige værdier.
Direktiver for CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin og @source parses og løses i PHP.
Generering under kørsel
Generér hjælpe-CSS direkte ud fra HTML, databaseindhold eller skabelonvariabler. Intet buildtrin kræves.
Alt inkluderet
cn(), merge(), join() og variants(): clsx, tailwind-merge og en CVA-port til PHP uden ekstra pakker.
Plugins
@tailwindcss/typography og @tailwindcss/forms porteret til PHP samt et PHP-plugin API til dine egne hjælpeklasser og komponenter.
CLI
bin/tailwindphp bygger et stylesheet fra en input-CSS-fil med -i, -o, --watch og --minify.
Undersøg temaet
Læs rå og beregnede egenskabsværdier, farver, brudpunkter og afstande for enhver klasse direkte fra PHP.
Cache og minificering
En indbygget CSS-minificering og en filcache med TTL holder gentagne builds hurtige og outputtet kompakt.
WordPress- og PHP-frameworks
Udgiv Tailwind-baserede temaer og plugins uden Node.js i stakken. TailwindPHP er én enkelt Composer-afhængighed.
Hvorfor TailwindPHP
Én runtime i produktion
Et PHP-projekt, der tager Tailwind i brug, får som regel også Node.js, en npm-installation og et buildtrin i CI og Docker. TailwindPHP kompilerer i stedet CSS i PHP-processen.
CSS til indhold, der kendes under kørsel
Markup fra en database, brugerinput eller en skabelonvariabel kan sendes direkte til tw::generate(), som kun returnerer de CSS, klasserne har brug for.
Kontrolleret mod en fastlåst Tailwind-udgave
Testtilfælde udtrækkes fra Tailwind-kilden, der er fastlåst i arkivet, og køres mod PHP-outputtet, så afvigelser får CI til at fejle. Udgave 1.7.0 blev kontrolleret mod Tailwind v4.3.3 med 4,427 tests.
Sidevis CSS fra én compiler
Kompilér temaet én gang med tw::compile(), og kald derefter generateExact() for hver side. Hvert kald returnerer det, en kold tw::generate() af siden ville generere, uden at temaet parses igen.
Sammenlignet med
Tailwind Labs leverer sine egne måder at bygge Tailwind CSS på. Sådan adskiller TailwindPHP sig.
| Værktøj | God til | Forskel fra TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | God tilTailwinds eget kommandolinjeværktøj, installeret fra npm. Det scanner dine HTML-filer, komponenter og skabeloner for klassenavne og skriver de matchende styles til en statisk CSS-fil. | Forskel fra TailwindPHPTailwindPHP kompileres i PHP uden installation af Node.js eller npm. Det følger en fast Tailwind-udgave (v4.3.3 i 1.7.0), og dets eget benchmark viser, at den oprindelige TypeScript udfører operationer på lavt niveau hurtigere. |
| Selvstændig Tailwind CLI | God tilTailwind CLI som et selvstændigt program til projekter, der vil bruge det uden at installere Node.js. | Forskel fra TailwindPHPProgrammet er en separat binærfil, der køres som et buildtrin. TailwindPHP er en Composer-pakke, som din PHP-kode kalder, så den også kan generere CSS ved forespørgselstid ud fra databaseindhold eller skabelonvariabler. |
| Tailwind Play CDN | God tilEt script-tag, der kører Tailwind i browseren, så du kan prøve det uden et buildtrin. Tailwinds dokumentation siger, at det er udviklet til udvikling og ikke beregnet til produktion. | Forskel fra TailwindPHPTailwindPHP kræver heller ikke et buildtrin, men genererer CSS på serveren i PHP og returnerer det som en streng, f.eks. så det kan skrives til et stylesheet. |
Spørgsmål og svar
Korte svar fra TailwindPHP-dokumentationen.
Udgave 1.7.0 følger Tailwind CSS v4.3.3. Testserierne blev udtrukket igen mod den version.
Outputtet testes mod eksempler udtrukket fra Tailwinds egne testfiler. Ændringsloggen for 1.7.0 beskriver enkelte serialiseringsforskelle. For eksempel beholder .p-0 padding: 0px, mens reference-CLI udsender padding: 0.
Nej. Plugins er PHP: typografi- og formularplugins er porteret, og du kan skrive dine egne ud fra plugin-API til PHP og registrere dem med registerPlugin(). Et @plugin-navn, der ikke er registreret, udløser en fejl.
I projektets benchmark på PHP 8.4.5 og en Apple M1 tog generering af hele sider cirka 14 ms pr. side. Ved gentaget input springer filcachen kompileringen over, og en langlivet compiler med generateExact() genbruger det fortolkede tema.
Nej. IntelliSense, autofuldførelse, klassesortering og sourcemaps er bevidst udeladt. TailwindPHP genererer kun CSS.
PHP 8.2 eller nyere med udvidelserne ctype og mbstring. composer.json angiver PHP-versionen, og CI kører testserien på PHP 8.2, 8.3 og 8.4.
Installer pakken med Composer, og følg introduktionsvejledningen for at generere dit første stylesheet fra PHP.