Združljivost in nadgradnja
Na tej strani so zbrane informacije, ki jih potrebujete pred nadgradnjo ali če se zanašate na natančen izhod: zahteve izvajalnega okolja, kateri izdaji TailwindCSS sledi prenesena različica, kje se TailwindPHP namenoma razlikuje od TailwindCSS ter opombe za posamezne izdaje. Celotna zgodovina je v CHANGELOG.md.
Zahteve
- PHP 8.2 ali novejši. Zbirka testov se izvaja v PHP 8.2, 8.3 in 8.4.
- Razširitvi
ctypeinmbstring. Prevajalnik kličectype_*inmb_chr(). Priloženi sta večini gradenj PHP in uradnim slikam Docker, vendar jucomposer.jsonše ne deklarira (#11), zato se paket brez njiju namesti, a pri izvajanju odpove. - Izbirno:
pcntlomogoča, da se način--watchv CLI čisto ustavi obSIGINT/SIGTERM. Način spremljanja deluje tudi brez tega.
Ne uporabljajo se Node.js, FFI ali izvorne dvojiške datoteke.
Kateri izdaji TailwindCSS sledi različica
Izdaja 1.7.0 sledi TailwindCSS v4.3.3. Izvorno skladišče je pripeto kot podmodul git v reference/tailwindcss, njegove zbirke testov so izluščene iz te pripete kopije, testi 4,427 pa se izvedejo ob vsakem potisku (glejte Testiranje zmogljivosti in delovanja). Preneseni vtičniki sledijo @tailwindcss/typography in @tailwindcss/forms, pripomočki razredov pa sledijo clsx, tailwind-merge in CVA; vsi so pripeti na enak način.
Znane razlike od TailwindCSS
Podrobnosti serializacije
Ustvarjeni CSS se ujema z referenčnimi zbirkami testov. Nekaj podrobnosti serializacije se razlikuje od izhoda, ki ga prikaže TailwindCSS CLI, vendar nobena od teh razlik ne spremeni kaskade:
- Predpone ponudnikov: kadar referenca izpiše tako zapisano vrstico
-webkit-*kot ustvarjeno, TailwindPHP izpiše eno vrstico. - Psevdoprvine znižane ravni (
::file-selector-button,::-webkit-datetime-edit-*) ostanejo na svojih zapisanih seznamih izbirnikov, namesto da bi bile razdeljene na po eno pravilo za vsako psevdoprvinо. - Nizi, zapisani z enojnimi narekovaji, ostanejo zapisani tako (
'Segoe UI'), namesto da bi bili pretvorjeni v dvojne narekovaje. - Sočasno prisotne dolge oblike lastnosti se ne združijo v skrajšano obliko (lastni izhod Tailwind tega nikoli ne potrebuje).
.p-0ohranipadding: 0px, medtem ko referenčni CLI izpišepadding: 0, ker izluščena zbirka testov določa obliko0px. Minifikator jo skrajša v0.
Ni vključeno
TailwindPHP je prevajalnik CSS. Ne vključuje orodij za urejanje v ekosistemu Tailwind (IntelliSense, samodokončanje, razvrščanje razredov) ali izvornih zemljevidov, zato CLI nima možnosti --map.
Pregledovanje vsebine
tw::generate() in TailwindCompiler::generate() bereta imena razredov samo iz atributov class in className. Za imena razredov v nizih PHP ali JavaScript uporabite tw::extractCandidatesFromStrings() ali @source inline("…"). Oblike poti za @source prezre API, CLI pa jih upošteva le delno (glejte spodaj).
Znane težave v trenutni izdaji
| Področje | Trenutno delovanje | Težava |
|---|---|---|
CLI @source |
Poti in vzorci glob se ne uporabijo; namesto tega se preišče imenik vhodne datoteke, @source not pa ničesar ne izključi. Glejte Kaj preišče CLI |
#8 |
CLI --optimize |
Minificira, tako kot --minify |
#9 |
| Dolge možnosti CLI | --input file.css (ločeno s presledki) se prezre; uporabite --input=file.css ali -i file.css |
#13 |
| Različice vtičnikov | Različice addVariant()/matchVariant() in modifikatorji elementov tipografije (prose-headings: …) se prevedejo brez svojega izbirnika |
#10 |
Mešanice @apply |
@apply --my-mixin; se zavrže namesto posredovanja naprej |
#12 |
| Referenčni uvozi | Izhod je prazen, kadar je referenčni uvoz pred uvozom pripomočkov; @import "tailwindcss" reference ne učinkuje |
#14 |
Opombe ob nadgradnji
1.7.0
- Izhod se spremeni na ravni bajtov v primerjavi z 1.6.x, vendar ostaja funkcionalno enakovreden referenci TailwindCSS v4.3.3. Med vidnimi spremembami so:
- Množilniki razmikov:
p-1izpišepadding: var(--spacing)namestocalc(), množilnik0pa izpiše navadno dolžino nič. - Ulomki se pretvorijo v odstotke:
w-1/2izpišewidth: 50%. - Barve: svetlost
oklch()/oklab()se serializira kot odstotek (oklch(62.3% .214 259.815)),whiteinblackpa se skrajšata v#fffin#000. - Psevdoprvine CSS2 se serializirajo z enim dvopičjem (
:before,:after,:first-letter,:first-line). - Ugnezdena pravila
@media/@supports/@containerse sploščijo na mestu in v vrstnem redu izvorne kode, namesto da bi bila prestavljena na konec; deklaracije se prerazporedijo po vrstnem redu lightningcss; zasenčene podvojene deklaracije se odstranijo.
- Množilniki razmikov:
- Predpomnilniki, vezani na izhod, se enkrat izpraznijo. Datotečni predpomnilnik
tw::generate()v ključ ne vključuje različice TailwindPHP, zato po nadgradnji zaženitetw::clearCache()(ali imenik, ki ste ga podali kotcache). Predpomnilnik stanja prevajalnika se samodejno razveljavi. - Novo:
@variantv avtorskem CSS, mešanice CSS v@apply,@media referencein@import "…" reference, celotni mehanizem--value()/--modifier()za funkcionalni@utility, strožje preverjanje imen@utilityter možnosttw::compile()zapolyfills.
1.6.1
- Novo: pripomoček
container(width: 100%in enmax-widthza vsako prelomno točko). - Sestavljene spremenljivke
--tw-*(translate, scale, rotate, skew, filtri in druge) so zdaj registrirane pri@property, zato slogovne predloge pridobijo ta pravila@property, transformacije, kot jetranslate-x-7, pa začnejo delovati v brskalniku.
1.6.0
- Novo: trajni predpomnilnik stanja prevajalnika (
stateCacheFilevtw::compile()inTailwindCompiler,StateCache\compileCssCached()) ter ločene funkcijeparseCssState()/finalizeCssState()/compileParsed(). Obstoječi klici se vedejo povsem enako kot prej.
1.5.0
- Podrazredi
TailwindCompiler, ki preglasijogenerate()alicss(), morajo dodati izbirni parameterbool $minify = false; PHP zavrne preglasitve, ki izpustijo izbirni parameter nadrejenega razreda. - Minificirani izhod ustvari serializator, zato se minificirani bajti nekoliko razlikujejo od 1.4.x (predpomnilniki, vezani na minificirani izhod, se enkrat izpraznijo).
- Novo:
generateExact()incssExact()za CSS posameznih strani z enim dolgoživečim prevajalnikom.