Ugrás a tartalomhoz

Kompatibilitás és frissítés

Ez az oldal összefoglalja, amit frissítés előtt vagy a pontos kimenetre támaszkodva tudnia kell: a futtatási követelményeket, hogy a port melyik TailwindCSS kiadást követi, miben tér el szándékosan az TailwindPHP az TailwindCSS-től, valamint az egyes kiadások megjegyzéseit. A teljes előzmény a CHANGELOG.md fájlban található.

Követelmények

  • PHP 8.2 vagy újabb. A tesztcsomag PHP 8.2, 8.3 és 8.4 verzióján fut.
  • A ctype és a mbstring bővítmények. A fordító a ctype_* és a mb_chr() függvényt hívja. Ezek a legtöbb PHP builddel és a hivatalos Docker lemezképekkel együtt érkeznek, de a composer.json még nem deklarálja őket (#11), így nélkülük a csomag települ, de futás közben hibát jelez.
  • Nem kötelező: pcntl lehetővé teszi, hogy a CLI --watch módja szabályosan leálljon SIGINT/SIGTERM esetén. Nélküle a figyelő mód továbbra is működik.

Nincs Node.js, FFI vagy natív bináris.

Melyik TailwindCSS kiadást követi

A 1.7.0 kiadás a TailwindCSS v4.3.3 verzióját követi. Az upstream adattár a reference/tailwindcss-ban git almodulként van rögzítve, a tesztcsomagjai ebből a rögzített másolatból származnak, a 4,427 tesztjei pedig minden feltöltéskor lefutnak (lásd: Teljesítmény és tesztelés). Az átültetett bővítmények az @tailwindcss/typography és az @tailwindcss/forms mintáját követik, az osztálysegédprogramok pedig a clsx, az tailwind-merge és a CVA mintáját, mindegyik ugyanígy rögzített verzióval.

Ismert eltérések az TailwindCSS-től

Szerializálási részletek

A létrehozott CSS megfelel a referencia tesztcsomagjainak. Néhány szerializálási részlet eltér attól, amit a TailwindCSS CLI kiír; ezek egyike sem változtatja meg a kaszkádot:

  • Gyártóspecifikus előtagok: ha a referencia a szerzői -webkit-* sort és egy generált sort is kiad, az TailwindPHP csak egy sort ír ki.
  • Az alacsonyabb szintre alakított pszeudoelemek (::file-selector-button, ::-webkit-datetime-edit-*) a szerzői szelektorlistában maradnak, nem bomlanak külön szabályokra pszeudoelemenként.
  • A szerzői, egyszeres idézőjeles karakterláncok egyszeres idézőjelesek maradnak ('Segoe UI'), nem normalizálódnak dupla idézőjelekre.
  • Az együtt előforduló hosszú alakú tulajdonságok nem vonódnak össze rövidített tulajdonsággá (az Tailwind saját kimenetében erre nincs szükség).
  • Az .p-0 megtartja a padding: 0px értéket ott, ahol a referencia CLI a padding: 0 értéket adja ki, mert a kinyert tesztkorpusz a 0px alakot rögzíti. A tömörítő ezt 0 alakra rövidíti.

Nem része

A TailwindPHP egy CSS fordító. Kimaradnak belőle a Tailwind ökoszisztéma szerkesztőeszközei (IntelliSense, automatikus kiegészítés, osztályok rendezése) és a forrástérképek, ezért a CLI nem kínál --map beállítást.

Tartalom beolvasása

A tw::generate() és a TailwindCompiler::generate() csak a class és className attribútumokból olvassa ki az osztályneveket. A PHP vagy JavaScript karakterláncokban lévő osztálynevekhez használja a tw::extractCandidatesFromStrings() vagy a @source inline("…") eszközt. A @source elérési út alakjait a API figyelmen kívül hagyja, a CLI pedig csak részben veszi figyelembe (lásd alább).

Ismert problémák a jelenlegi kiadásban

Terület Jelenlegi működés Probléma
CLI @source Az elérési utak és globminták nem érvényesülnek; a rendszer a bemeneti fájl könyvtárát vizsgálja, a @source not pedig semmit sem zár ki. Lásd: Mit vizsgál a CLI #8
CLI --optimize Tömörít, a --minify-hoz hasonlóan #9
CLI hosszú kapcsolók A --input file.css (szóközzel elválasztva) figyelmen kívül marad; használja a --input=file.css vagy -i file.css kapcsolót #13
Bővítményváltozatok A addVariant()/matchVariant() változatok és a tipográfiai elemek módosítói (prose-headings: …) a szelektoruk nélkül fordulnak le #10
@apply mixinek A @apply --my-mixin; eltűnik ahelyett, hogy változatlanul továbbadódna #12
Referenciaimportok A kimenet üres, ha egy referenciaimport megelőzi a segédprogramok importját; a @import "tailwindcss" reference nincs hatással #14

Frissítési megjegyzések

1.7.0

  • A kimenet bájtszinten változik az 1.6.x-hez képest, miközben funkcionálisan megfelel az TailwindCSS v4.3.3 referenciának. A látható változások közé tartozik:
    • Térközszorzók: a p-1 padding: var(--spacing) alakot ad ki calc() helyett, a 0 szorzó pedig egyszerű nulla hosszúságot eredményez.
    • A törtek százalékká alakulnak: a w-1/2 width: 50% alakot adja.
    • Színek: a oklch()/oklab() világossági értéke százalékként szerializálódik (oklch(62.3% .214 259.815)), a white és black pedig #fff és #000 alakra rövidül.
    • A CSS2 pszeudoelemek egy kettősponttal szerializálódnak (:before, :after, :first-letter, :first-line).
    • A beágyazott @media/@supports/@container szabályok helyben, forrássorrendben lapulnak ki, nem a végére kerülnek; a deklarációk a lightningcss rendezését követik, az árnyékolt ismétlődő deklarációk pedig törlődnek.
  • A kimenethez kötött gyorsítótárak egyszer ürülnek. A tw::generate() fájlgyorsítótára nem veszi figyelembe a TailwindPHP verzióját, ezért frissítés után futtassa a tw::clearCache() parancsot (vagy ürítse ki a cache könyvtárat). A fordítóállapot gyorsítótára önmagát érvényteleníti.
  • Új: @variant a szerzői CSS nyelvben, CSS mixinek a @apply nyelvben, @media reference és @import "…" reference, a teljes --value()/--modifier() motor a funkcionális @utility-hez, szigorúbb @utility névellenőrzés, valamint a tw::compile() polyfills beállítása.

1.6.1

  • Új: a container segédprogram (width: 100%, valamint töréspontonként egy max-width).
  • Az összetett --tw-* változók (eltolás, méretezés, forgatás, döntés, szűrők és mások) mostantól regisztrálva vannak a @property rendszerben, így a stíluslapok megkapják ezeket a @property szabályokat, és a translate-x-7-hez hasonló transzformációk működnek a böngészőben.

1.6.0

  • Új: a tartós fordítóállapot-gyorsítótár (stateCacheFile a tw::compile() és TailwindCompiler esetén, StateCache\compileCssCached()), valamint a különálló parseCssState()/finalizeCssState()/compileParsed() függvények. A meglévő hívások pontosan úgy működnek, mint korábban.

1.5.0

  • Azoknak a TailwindCompiler alosztályoknak, amelyek felülírják a generate() vagy css() metódust, hozzá kell adniuk a nem kötelező bool $minify = false paramétert; a PHP elutasítja azokat a felülírásokat, amelyek kihagyják az ősosztály nem kötelező paraméterét.
  • A tömörített kimenetet a szerializáló állítja elő, ezért a tömörített bájtok kissé eltérnek a 1.4.x kimenetétől (a tömörített kimenethez kötött gyorsítótár egyszer ürül).
  • Új: generateExact() és cssExact() oldalankénti CSS adatokhoz egy hosszan futó fordítóból.