跳转到正文

TailwindPHP

TailwindPHP 是 1:1 移植版:将 TailwindCSS 4.x 移植到 PHP。它会解析你的 CSS,扫描标记中的类名,并生成 TailwindCSS v4.3.3 所生成的工具 CSS——完全使用 PHP,无需 Node.js,也无需构建步骤。

  • 纯 PHP — 以 Composer 包的形式发布,可在 PHP 8.2+ 上运行,使用标准的 ctype 和 mbstring 扩展。无需 exec、FFI 或本机构建工具。
  • 通过 TailwindCSS 验证 — 工具、变体、指令和 CSS 函数均与 TailwindCSS v4.3.3 保持同步。输出会根据 Tailwind 自带的测试套件进行验证;测试套件从 TypeScript 源码中提取,并在每次推送时重新运行(4,400+ 项测试)。已知差异(少数不会影响级联的序列化细节,以及未解决的问题)列于兼容性与升级。
  • 完整功能集 — 完整的 TailwindCSS v4.3.3 工具集(包括 container、滚动条工具、zoom-* 和 tab-*)、所有变体(悬停、焦点、响应式、暗色模式、容器查询、任意值),以及完整的指令集:@import、@theme、@apply、@utility、@variant、@custom-variant、@layer、@plugin 和 @source。
  • 开箱即用 — cn()、merge()、join() 和 variants() 打包了 clsx、PHP、tailwind-merge 和 CVA 的移植版本,因此每个 Tailwind 项目都会用到的配套库都已内置。
  • 插件 — @tailwindcss/typography 和 @tailwindcss/forms 已完整移植,且提供 PHP 插件 API,让你可以编写自己的插件。

TailwindPHP为何存在

TailwindCSS 使用 TypeScript 编写,可在 Node.js 上运行。对于任何想要使用 Tailwind 的 PHP 项目来说,这都是硬性要求:需要第二个运行时、安装 npm,并在 CI 和 Docker 中加入构建步骤。许多 PHP 应用都不愿承担这些额外负担。

TailwindPHP 消除了这些负担。你的 PHP 代码可以直接编译为 Tailwind CSS,只使用标准库。这让一些在 JavaScript 工具链中难以实现或无法实现的事情成为可能:

  • WordPress 和 PHP 框架 — 发布由 Tailwind 驱动的主题和插件,无需让用户安装 Node.js 或运行构建。只需 composer require 即可开始使用。请参阅 TailwindWP,这是一个示例 WordPress 插件,可使用 TailwindPHP 生成区块编辑器 CSS。
  • 运行时 CSS — 根据用户输入、数据库内容或模板变量即时生成工具 CSS,而不是在构建时生成。
  • 简化部署 — 生产环境无需 Node.js,CI 无需构建步骤,Docker 镜像中也无需 npm。

这正是 scssphp 为 SCSS 带来的理念——在 PHP 中运行完整编译器。

功能说明

  • 根据内容中找到的类名编译 TailwindCSS v4.3.3 工具集、变体和任意值。
  • 解析完整的指令集:@import(包括 tailwindcss 和 tailwindcss/utilities 等虚拟模块,以及 reference 导入)、@theme、@apply、@utility、@variant、@custom-variant、@layer、@plugin 和 @source。
  • 实现 Tailwind 的 CSS 函数——theme()、--theme()、--spacing() 和 --alpha()——以及 color-mix() → oklab() 转换,并支持 TailwindCSS 委托给 LightningCSS 的 CSS 转换。
  • 从文件系统解析 @import,支持嵌套导入、去重和自定义解析器;也可从内联 CSS 字符串解析。
  • 内置 Preflight(Tailwind 的基础重置样式)、前缀支持、@property 回退、供应商前缀以及关键帧提升。
  • 打包 cn()、merge()、join() 和 variants()/compose(),用于构建类名、解决冲突和定义组件变体。
  • 包含排版和表单插件,以及用于自定义插件的插件 API(addUtilities、matchUtilities、addComponents、addVariant、theme、…)。
  • 提供带有 @tailwindcss/cli 构建选项的 CLI(bin/tailwindphp),以及基于文件的输出缓存、持久编译器状态缓存和用于生产环境的 CSS 压缩器。

它不是什么

TailwindPHP 是一个 CSS 编译器,而不是编辑器工具链。它有意省略了 Tailwind 生态系统中面向 IDE 的部分——IntelliSense、自动补全、类名排序和源映射——因为这些属于编辑器功能,而非 CSS 生成的一部分。所有用于生成 CSS 的内容都在支持范围内;驱动编辑器的功能则不在其中。

从这里开始

  • 入门 — 安装软件包并生成你的第一个样式表。
  • 用法 — 扫描内容、自定义主题并使用 Tailwind 的指令。
  • 类工具 — cn()、merge()、join() 和 variants()。
  • 插件 — 排版、表单以及编写自己的插件。
  • API — 完整的 tw 指令集和 TailwindCompiler 实例。
  • CLI — 用于基于文件的构建和监视模式的 bin/tailwindphp。
  • 进阶 — 架构、缓存、性能和兼容性说明。