shyim / php-lightningcss
Lightning CSS for PHP via FFI (downloads prebuilt shyim/lightningcss-ffi binaries)
dev-main
2026-08-02 08:33 UTC
Requires
- php: >=8.3
- ext-ffi: *
- shyim/composer-binary-downloader: ^0.1
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^12.0
This package is auto-updated.
Last update: 2026-08-03 04:26:03 UTC
README
PHP bindings for Lightning CSS via FFI.
The native library is the prebuilt shyim/lightningcss-ffi release for your platform, installed by shyim/composer-binary-downloader.
Install
composer require shyim/php-lightningcss
{
"config": {
"allow-plugins": {
"shyim/composer-binary-downloader": true
}
}
}
Requires PHP 8.3+ and ext-ffi.
Quick start
use LightningCss\Browsers; use LightningCss\TransformOptions; use LightningCss\Transformer; $t = new Transformer(); // Minify echo $t->minify('.foo { color: #ff0000; }'); // → .foo{color:red} // Transform for browser targets echo $t->transform( '.x { display: flex; }', new TransformOptions( minify: true, targets: Browsers::chrome(90), ), );
Helpers:
LightningCss\minify($css); LightningCss\transform($css, $options); LightningCss\version(); // package LightningCss\engine_version(); // lightningcss crate
Native library
Configured in extra.binaries.lightningcss → GitHub Releases on shyim/lightningcss-ffi.
composer binary:install lightningcss composer binary:list
| Variable | Effect |
|---|---|
LIGHTNINGCSS_LIBRARY |
Path to shared library (skip download) |
LIGHTNINGCSS_SKIP_DOWNLOAD |
Do not download |
LIGHTNINGCSS_TARGET |
Force target triple |
Development
Until a release is published (or for local work):
# Build native lib from sibling lightningcss-ffi checkout (cd ../lightningcss-ffi && bash bin/build-native.sh release) export LIGHTNINGCSS_LIBRARY=$PWD/../lightningcss-ffi/lib/liblightningcss_ffi.dylib composer install composer test composer phpstan php examples/minify.php
License
MIT OR Apache-2.0. Lightning CSS is MPL-2.0 — see upstream.