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 的内容都在支持范围内;驱动编辑器的功能则不在其中。