Run Autoprefixer using node.js in you php.
Autoprefixer is a tool to parse CSS and add vendor prefixes to CSS rules using values from the Can I Use. This library provides PHP integration with Node.js application., (*1)
Write your CSS rules without vendor prefixes (in fact, forget about them entirely):, (*2)
$autoprefixer = new Autoprefixer(); $css = 'a { transition: transform 1s }'; $prefixed = $autoprefixer->compile($css);
Autoprefixer uses the data on current browser popularity and properties support to apply prefixes for you:, (*3)
a { -webkit-transition: -webkit-transform 1s; transition: -ms-transform 1s; transition: transform 1s }
You can ask me any questions by e-mail: vladkens@yandex.ru, (*4)
Create a composer.json file in your project root:, (*5)
{ "require": { "vladkens/autoprefixer": "dev-master" } }
Write in the project root:, (*6)
Linux: php composer.phar install
, (*7)
Windows: composer.bat install
, (*8)
In index.php
write:, (*9)
require_once 'vendor/autoload.php';
$autoprefixer = new Autoprefixer(); $css_one = 'a { color: black; }'; $css_two = 'a { color: white; }'; // If need compile one css. Function return compied CSS. $prefixed = $autoprefixer->compile($css_one); echo $prefixed; // If need compile many css in one time. Function return array of compiled CSS. $prefixed = $autoprefixer->([$css_one, $css_two]); echo $prefixed[0] . "\n" . $prefixed[1]; // If occurred error in compile time Autoprefixer throw exception named `AutoprefixerException`. // You need process it. try { $autoprefixer->compile($css_one); } catch (AutoprefixerException $error) { echo $error->getMessage(); } catch (Exception $error) { echo $error->getMessage(); } // If you want to choose specific browsers $autoprefixer = new Autoprefixer('last 1 version'); // one rule // or $autoprefixer = new Autoprefixer(['ff > 2', '> 2%', 'ie 8']); // many rules // or $autoprefixer->setBrowsers('last 1 version'); // or change browsers on a one iteration $autoprefixer->compile($css_one, 'last 1 version'); // Also, you can get latest version Autoprefixer using $autoprefixer->update();
On my Intel i5-3210M 2.5GHz and HDD 5200 RPM GitHub styles compiled in 390 ms., (*10)
MIT, (*11)
See https://github.com/ai/autoprefixer/blob/master/README.md, (*12)