Pereiti prie turinio

Suderinamumas ir naujinimas

Šiame puslapyje rasite tai, ką reikia žinoti prieš naujinant arba tikintis tikslios išvesties: vykdymo aplinkos reikalavimus, kurio TailwindCSS leidimo laikosi prievadas, kuo TailwindPHP sąmoningai skiriasi nuo TailwindCSS ir kiekvieno leidimo pastabas. Visą istoriją rasite čia: CHANGELOG.md.

Reikalavimai

  • PHP 8.2 arba naujesnė versija. Testų rinkinys veikia su PHP 8.2, 8.3 ir 8.4.
  • Plėtiniai ctype ir mbstring. Kompiliatorius iškviečia ctype_* ir mb_chr(). Abu plėtiniai įtraukti į daugumą PHP sąrankų ir oficialius Docker atvaizdus, bet composer.json jų dar nedeklaruoja (#11), todėl be jų įdiegiant paketą vykdymo metu kyla klaida.
  • Pasirinktinai: pcntl leidžia CLI --watch režimui tvarkingai sustoti ties SIGINT/SIGTERM. Be jo stebėjimo režimas vis tiek veikia.

Nenaudojama Node.js, FFI ar savųjų dvejetainių failų.

Kurio TailwindCSS leidimo laikomasi

Leidimas 1.7.0 laikosi TailwindCSS v4.3.3. Pradinės saugyklos versija fiksuojama kaip git submodulis faile reference/tailwindcss, jos testų rinkiniai išgaunami iš šios fiksuotos kopijos, o 4,427 testai vykdomi po kiekvieno išsiuntimo (žr. Našumas ir testavimas). Perkelti papildiniai naudoja @tailwindcss/typography ir @tailwindcss/forms, o klasės įrankiai — clsx, tailwind-merge ir CVA; visų jų versijos fiksuojamos tuo pačiu būdu.

Žinomi skirtumai nuo TailwindCSS

Serializavimo ypatumai

Sugeneruotas CSS atitinka etaloninių testų rinkinius. Kai kurios serializavimo detalės skiriasi nuo to, ką pateikia TailwindCSS CLI, tačiau nė viena iš jų nepakeičia kaskados:

  • Tiekėjų prefiksai: kai etalonas pateikia ir autoriaus parašytą eilutę -webkit-*, ir sugeneruotą, TailwindPHP pateikia vieną eilutę.
  • Žemesnio lygio pseudolementai (::file-selector-button, ::-webkit-datetime-edit-*) lieka autoriaus parašytuose selektorių sąrašuose, užuot buvę išskaidyti į po vieną taisyklę kiekvienam pseudolementui.
  • Autoriaus parašytos eilutės su viengubomis kabutėmis lieka su viengubomis kabutėmis ('Segoe UI'), užuot buvusios normalizuotos į dvigubas kabutes.
  • Kartu pasitaikantys ilgieji savybių pavadinimai nesujungiami į trumpinį (Tailwind išvestyje jo niekada nereikia).
  • .p-0 išsaugo padding: 0px, kai etalonas CLI pateikia padding: 0, nes ištrauktame testų korpuse naudojama 0px forma. Minifikatorius ją sutrumpina iki 0.

Neįtraukta

TailwindPHP yra CSS kompiliatorius. Jame nėra Tailwind ekosistemos redaktoriaus įrankių (IntelliSense, automatinio užbaigimo, klasių rūšiavimo) ir išeities kodų žemėlapių, todėl CLI neturi parinkties --map.

Turinio nuskaitymas

tw::generate() ir TailwindCompiler::generate() skaito klasių pavadinimus tik iš class ir className atributų. Jei klasių pavadinimai saugomi PHP arba JavaScript eilutėse, naudokite tw::extractCandidatesFromStrings() arba @source inline("…"). @source kelio formų API nepaiso, o CLI jas palaiko tik iš dalies (žr. toliau).

Žinomos dabartinio leidimo problemos

Sritis Dabartinė elgsena Problema
CLI @source Keliai ir glob šablonai netaikomi; vietoj jų nuskaitomas įvesties failo katalogas, o @source not nieko nepašalina. Žr. Ką nuskaito CLI #8
CLI --optimize Minifikuoja, kaip --minify #9
Ilgosios CLI parinktys Nepaisoma --input file.css (atskirta tarpais); naudokite --input=file.css arba -i file.css #13
Papildinių variantai addVariant()/matchVariant() variantai ir tipografijos elementų modifikatoriai (prose-headings: …) kompiliuojami be selektoriaus #10
@apply mišiniai @apply --my-mixin; pašalinamas, užuot perduotas toliau #12
Etaloniniai importai Išvestis tuščia, kai etaloninis importas nurodytas prieš paslaugų importą; @import "tailwindcss" reference neveikia #14

Atnaujinimo pastabos

1.7.0

  • Išvesties baitai skiriasi nuo 1.6.x, nors funkciniu požiūriu jie atitinka TailwindCSS v4.3.3 etaloną. Matomi pakeitimai:
    • Tarpų daugikliai: p-1 pateikia padding: var(--spacing) vietoj calc(), o daugiklis 0 pateikia paprastą nulio ilgio reikšmę.
    • Trupmenos paverčiamos procentais: w-1/2 pateikia width: 50%.
    • Spalvos: oklch()/oklab() šviesumas serializuojamas procentais (oklch(62.3% .214 259.815)), white ir black sutrumpinami iki #fff ir #000.
    • CSS2 pseudoelementai serializuojami su vienu dvitaškiu (:before, :after, :first-letter, :first-line).
    • Įdėtinės @media/@supports/@container taisyklės išskleidžiamos vietoje, išlaikant pradinę tvarką, užuot perkeltos į pabaigą; deklaracijos perrikiuojamos taip, kaip jas išrikiuoja „lightningcss“; pašalinamos nustelbtos pasikartojančios deklaracijos.
  • Podėliai, kurių raktai paremti išvestimi, vieną kartą taps negaliojantys. tw::generate() failų podėlio rakte nėra TailwindPHP versijos, todėl atnaujinę paleiskite tw::clearCache() (arba išvalykite katalogą, kurį nurodėte kaip cache). kompiliatoriaus būsenos podėlis pats panaikina pasenusius įrašus.
  • Nauja: @variant autoriaus CSS, CSS mišiniai @apply, @media reference ir @import "…" reference, visas --value()/--modifier() variklis funkciniam @utility, griežtesnis @utility pavadinimų tikrinimas ir tw::compile() parinktis polyfills.

1.6.1

  • Nauja: įrankis container (width: 100% ir po vieną max-width kiekvienam lūžio taškui).
  • Sudėtiniai --tw-* kintamieji (perstūmimas, mastelio keitimas, pasukimas, pakreipimas, filtrai ir kiti) dabar registruojami @property, todėl stiliaus lapuose sukuriamos šios @property taisyklės, o naršyklėje pradeda veikti transformacijos, tokios kaip translate-x-7.

1.6.0

  • Nauja: ilgalaikis kompiliatoriaus būsenos podėlis (stateCacheFile su tw::compile() ir TailwindCompiler, StateCache\compileCssCached()) ir atskiros funkcijos parseCssState()/finalizeCssState()/compileParsed(). Esami iškvietimai veikia kaip anksčiau.

1.5.0

  • TailwindCompiler poklasiai, kuriuose pakeičiama generate() arba css(), turi pridėti pasirenkamą parametrą bool $minify = false; PHP atmeta pakeistus metodus, kuriuose praleistas pasirenkamas tėvinės klasės parametras.
  • Minifikuotą išvestį kuria serializatorius, todėl minifikuoti baitai šiek tiek skiriasi nuo 1.4.x (podėliai, kurių raktai paremti minifikuota išvestimi, vieną kartą taps negaliojantys).
  • Nauja: generateExact() ir cssExact(), skirti kiekvieno puslapio CSS gauti iš vieno ilgai veikiančio kompiliatoriaus.