Plugin Directory

Test out the new Plugin Directory and let us know what you think.

WordPress Dynamic CSS

Dynamic CSS compiler for WordPress themes and plugins

WordPress Dynamic CSS is a lightweight library for generating CSS stylesheets from dynamic content (i.e. content that can be modified by the user). The most obvious use case for this library is for creating stylesheets based on Customizer options. Using the special dynamic CSS syntax you can write CSS rules with variables that will be replaced by static values using a custom callback function that you provide.

As of version 1.0.2 this plugin supports multiple callback functions, thus making it safe to use by multiple plugins/themes at the same time.

Basic Example

First, add this to your functions.php file:

// 1. Load the library (skip this if you are loading the library as a plugin)
require_once 'wp-dynamic-css/bootstrap.php';

// 2. Enqueue the stylesheet (using an absolute path, not a URL)
wp_dynamic_css_enqueue( 'my_dynamic_style', 'path/to/my-style.css' );

// 3. Set the callback function (used to convert variables to actual values)
function my_dynamic_css_callback( $var_name )
    return get_theme_mod($var_name);
wp_dynamic_css_set_callback( 'my_dynamic_style', 'my_dynamic_css_callback' );

// 4. Nope, only three steps

Then, create a file called my-style.css and write this in it:

body {
    background-color: $body_bg_color;

In the above example, the stylesheet will be automatically compiled and printed to the of the document. The value of $body_bg_color will be replaced by the value of get_theme_mod('body_bg_color').

Now, let's say that get_theme_mod('body_bg_color') returns the value #fff, then my-style.css will be compiled to:

body {
    background-color: #fff;

There's even support for array subscripts and piped filters:

body {
    background-color: $myVar['index'];
    color: $myVar|myFilter;

You can find detailed documentation on how to use this library on the GitHub page

Useful Links

Requires: 3.0 or higher
Compatible up to: 4.7.2
Last Updated: 2 months ago
Active Installs: 40+


5 out of 5 stars


Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1