¡Hola! He escrito una pequeña biblioteca que quizá os resulte útil. CssDispatcher es una biblioteca PHP libre que te ayuda a manejar múltiples estilos CSS como plantillas PHP, unirlos y minimizarlos.
1 CSS que se superan
Con CssDispatcher puedes introducir variables en las hojas de estilo...
Código:
body {
color: <?=$primaryColor ?>;
}
#main {
<?=css_round_border('1em') ?>;
background: <?=$secondaryColor ?>;
}
...declarándolas de un modo elegante:
Código PHP:
$layout = new Css('layout.css.php');
$layout->primaryColor = '#333';
$layout->secondaryColor = '#eee';
2 Mejora el rendimiento
Cuando tienes varios archivos CSS, más peticiones HTTP implican más lentitud al cargar y más trabajo para el servidor. Con CssDispatcher, puedes unir varias hojas de estilos y servirlas como un sólo archivo:
Código PHP:
$styles = new CssDispatcher;
$styles->add(new Css('ie-hacks.css.php'));
$styles->add(new Css('general.css.php'));
$styles->render();
CssDispatcher también puede minimizar la hoja de estilos generada, eliminando saltos de linea y tabulaciones innecesarias.
3 Compatibilidad entre navegadores
Si tienes hojas de estilo específicas de un navegador, CssDispatcher las servirá cuando lo especifiques:
Código PHP:
$styles = new CssDispatcher;
//This CSS code will be sent only if the user agent is IE 6
$styles->add(new Css('ie-hacks.css.php', Css::UA_IE6));
$styles->add(new Css('general.css.php'));
$styles->render();
4 Aún más rendimiento
Puedes comprimir y almacenar en cache la salida de CssDispatcher para obtener mejor velocidad y menos carga en el servidor. Hay un artículo dedicado a este tema titulado "
Aún más rendimiento con CssDispatcher"
Espero que os resulte útil. Si alguno la prueba y se le ocurre alguna idea o fallo, le agradeceré el feedback
Un saludo a todos!