Preskoči na vsebino

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 ctype in mbstring. Prevajalnik kliče ctype_* in mb_chr(). Priloženi sta večini gradenj PHP in uradnim slikam Docker, vendar ju composer.json še ne deklarira (#11), zato se paket brez njiju namesti, a pri izvajanju odpove.
  • Izbirno: pcntl omogoča, da se način --watch v CLI čisto ustavi ob SIGINT/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-0 ohrani padding: 0px, medtem ko referenčni CLI izpiše padding: 0, ker izluščena zbirka testov določa obliko 0px. Minifikator jo skrajša v 0.

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-1 izpiše padding: var(--spacing) namesto calc(), množilnik 0 pa izpiše navadno dolžino nič.
    • Ulomki se pretvorijo v odstotke: w-1/2 izpiše width: 50%.
    • Barve: svetlost oklch()/oklab() se serializira kot odstotek (oklch(62.3% .214 259.815)), white in black pa se skrajšata v #fff in #000.
    • Psevdoprvine CSS2 se serializirajo z enim dvopičjem (:before, :after, :first-letter, :first-line).
    • Ugnezdena pravila @media/@supports/@container se 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.
  • Predpomnilniki, vezani na izhod, se enkrat izpraznijo. Datotečni predpomnilnik tw::generate() v ključ ne vključuje različice TailwindPHP, zato po nadgradnji zaženite tw::clearCache() (ali imenik, ki ste ga podali kot cache). Predpomnilnik stanja prevajalnika se samodejno razveljavi.
  • Novo: @variant v avtorskem CSS, mešanice CSS v @apply, @media reference in @import "…" reference, celotni mehanizem --value()/--modifier() za funkcionalni @utility, strožje preverjanje imen @utility ter možnost tw::compile() za polyfills.

1.6.1

  • Novo: pripomoček container (width: 100% in en max-width za 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 je translate-x-7, pa začnejo delovati v brskalniku.

1.6.0

  • Novo: trajni predpomnilnik stanja prevajalnika (stateCacheFile v tw::compile() in TailwindCompiler, StateCache\compileCssCached()) ter ločene funkcije parseCssState()/finalizeCssState()/compileParsed(). Obstoječi klici se vedejo povsem enako kot prej.

1.5.0

  • Podrazredi TailwindCompiler, ki preglasijo generate() ali css(), morajo dodati izbirni parameter bool $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() in cssExact() za CSS posameznih strani z enim dolgoživečim prevajalnikom.