Pāriet uz saturu

Saderība un jaunināšana

Šajā lapā apkopots, kas jāzina pirms jaunināšanas vai paļaušanās uz precīzu izvadi: izpildvides prasības, TailwindCSS laidieni, kuriem ports seko, vietas, kur TailwindPHP apzināti atšķiras no TailwindCSS, un piezīmes par katru laidienu. Pilna vēsture pieejama CHANGELOG.md.

Prasības

  • PHP 8.2 vai jaunāka versija. Testu kopa darbojas ar PHP 8.2, 8.3 un 8.4.
  • Paplašinājumi ctype un mbstring. Kompilators izsauc ctype_* un mb_chr(). Tie ir iekļauti lielākajā daļā PHP būvējumu un oficiālajos Docker attēlos, taču composer.json tos vēl nedeklarē (#11), tāpēc būvējums bez tiem instalē pakotni, bet izpildlaikā kļūdās.
  • Neobligāti: pcntl ļauj CLI --watch režīmam korekti apstāties, saņemot SIGINT/SIGTERM. Bez tā novērošanas režīms joprojām darbojas.

Netiek izmantots Node.js, FFI vai vietējie binārie faili.

Kuram TailwindCSS laidienam tiek sekots

Laidienā 1.7.0 tiek izsekots TailwindCSS v4.3.3. Augšupējā repozitorija versija ir fiksēta kā git apakšmodulis ceļā reference/tailwindcss, tā testu komplekti tiek iegūti no šīs fiksētās kopijas, un 4,427 testi tiek palaisti pēc katras augšupielādes (skatiet Veiktspēja un testēšana). Pārnestie spraudņi atbilst @tailwindcss/typography un @tailwindcss/forms, bet klašu utilītas — clsx, tailwind-merge un CVA; katra no tām ir fiksēta tādā pašā veidā.

Zināmās atšķirības no TailwindCSS

Serializācijas detaļas

Ģenerētais CSS atbilst atsauces testu komplektiem. Dažas serializācijas detaļas atšķiras no tā, ko izvada TailwindCSS CLI, taču neviena no tām nemaina kaskādi:

  • Piegādātāju prefiksi: ja atsauce izvada gan autora -webkit-* rindu, gan ģenerētu rindu, TailwindPHP izvada vienu rindu.
  • Pārveidotie pseid elementi (::file-selector-button, ::-webkit-datetime-edit-*) paliek autora selektoru sarakstos, nevis tiek sadalīti atsevišķos noteikumos katram pseid elementam.
  • Autora virknes ar vienpēdiņām saglabā vienpēdiņas ('Segoe UI'), nevis tiek pārveidotas par virknēm ar dubultpēdiņām.
  • Vienlaikus sastopamie garie rekvizīti netiek apvienoti saīsinātā pierakstā (Tailwind paša izvadei tas nekad nav nepieciešams).
  • .p-0 saglabā padding: 0px, kur atsauce CLI izvada padding: 0, jo izvilktā testu kopa fiksē formu 0px. Minifikators to saīsina līdz 0.

Nav iekļauts

TailwindPHP ir CSS kompilators. Tajā nav iekļauti Tailwind ekosistēmas redaktora rīki (IntelliSense, automātiskā pabeigšana, klašu kārtošana) un avota kartes, tāpēc CLI nav --map opcijas.

Satura skenēšana

tw::generate() un TailwindCompiler::generate() nolasa klašu nosaukumus tikai no class un className atribūtiem. Klašu nosaukumiem, kas atrodas PHP vai JavaScript virknēs, izmantojiet tw::extractCandidatesFromStrings() vai @source inline("…"). @source ceļu formas API ignorē, bet CLI ņem vērā tikai daļēji (skatiet tālāk).

Zināmās pašreizējā laidiena problēmas

Joma Pašreizējā darbība Problēma
CLI @source Ceļi un glob izteiksmes netiek lietoti; tā vietā tiek skenēta ievades faila mape, un @source not neko neizslēdz. Skatiet Ko skenē CLI #8
CLI --optimize Minificē, tāpat kā --minify #9
CLI garās opcijas --input file.css (atdalīts ar atstarpēm) tiek ignorēts; izmantojiet --input=file.css vai -i file.css #13
Spraudņu varianti addVariant()/matchVariant() varianti un tipogrāfijas elementu modifikatori (prose-headings: …) tiek kompilēti bez sava selektora #10
@apply maisījumi @apply --my-mixin; tiek atmests, nevis nodots tālāk #12
Atsauces imports Izvade ir tukša, ja atsauces imports ir pirms utilītu importa; @import "tailwindcss" reference neietekmē rezultātu #14

Jaunināšanas piezīmes

1.7.0

  • Izvade mainās pa baitiem, salīdzinot ar 1.6.x, vienlaikus funkcionāli paliekot līdzvērtīga TailwindCSS v4.3.3 atsaucei. Starp redzamajām izmaiņām:
    • Atstarpju reizinātāji: p-1 izvada padding: var(--spacing), nevis calc(), bet reizinātājs 0 izvada vienkāršu nulles garumu.
    • Daļskaitļi tiek pārveidoti procentos: w-1/2 izvada width: 50%.
    • Krāsas: oklch()/oklab() gaišums tiek serializēts procentos (oklch(62.3% .214 259.815)), white un black tiek saīsināti līdz #fff un #000.
    • CSS2 pseidoelementi tiek serializēti ar vienu kolu (:before, :after, :first-letter, :first-line).
    • Ligzdotie @media/@supports/@container noteikumi tiek saplacināti to sākotnējā vietā un avota secībā, nevis pārvietoti uz beigām; deklarācijas tiek pārkārtotas tā, kā tās kārto lightningcss; aizēnotās deklarāciju dublikāti tiek noņemti.
  • Kešatmiņas, kuru atslēga ir izvade, vienreiz jāatjauno. Failu kešatmiņas atslēgā tw::generate() nav iekļauta TailwindPHP versija, tāpēc pēc jaunināšanas palaidiet tw::clearCache() (vai mapi, ko norādījāt kā cache). kompilatora stāvokļa kešatmiņa pati sevi invalidē.
  • Jauns: @variant autora CSS, CSS maisījumi @apply, @media reference un @import "…" reference, pilns --value()/--modifier() dzinējs funkcionāliem @utility, stingrāka @utility nosaukumu validācija un tw::compile() opcija polyfills.

1.6.1

  • Jauns: utilīta container (width: 100% plus viens max-width katram pārtraukumpunktam).
  • Kombinētie --tw-* mainīgie (pārvietošana, mērogošana, pagriešana, sašķiebšana, filtri un citi) tagad ir reģistrēti @property, tāpēc stilu lapās ir pieejami šie @property noteikumi, un tādas transformācijas kā translate-x-7 darbojas pārlūkā.

1.6.0

  • Jauns: pastāvīgā kompilatora stāvokļa kešatmiņa (stateCacheFile tw::compile() un TailwindCompiler, StateCache\compileCssCached()), kā arī sadalītās funkcijas parseCssState()/finalizeCssState()/compileParsed(). Esošie izsaukumi darbojas tieši tāpat kā iepriekš.

1.5.0

  • TailwindCompiler apakšklasēm, kas pārraksta generate() vai css(), jāpievieno neobligātais parametrs bool $minify = false; PHP noraida pārrakstīšanas, kurās nav iekļauts vecākklases neobligātais parametrs.
  • Minificēto izvadi veido serializētājs, tāpēc minificētie baiti nedaudz atšķiras no 1.4.x (kešatmiņas, kuru atslēga ir minificētā izvade, vienreiz jāatjauno).
  • Jauns: generateExact() un cssExact() katras lapas CSS iegūšanai no viena ilgdzīvojoša kompilatora.