Returns compiled CSS from a collection of selectors and declarations.
Description
Useful for returning a compiled stylesheet from any collection of CSS selector + declarations.
Example usage:
$css_rules = array(
array(
'selector' => '.elephant-are-cool',
'declarations' => array(
'color' => 'gray',
'width' => '3em',
),
),
);
$css = wp_style_engine_get_stylesheet_from_css_rules( $css_rules );
Returns:
.elephant-are-cool{color:gray;width:3em}
Parameters
$css_rules
arrayrequired- Required. A collection of CSS rules.
...$0
arrayrules_group
stringA parent CSS selector in the case of nested CSS, or a CSS nested @rule, such as@media (min-width: 80rem)
or@layer module
.selector
stringA CSS selector.declarations
string[]An associative array of CSS definitions, e.g.array( "$property" => "$value", "$property" => "$value" )
.
$options
arrayoptionalAn array of options.
context
string|nullAn identifier describing the origin of the style object, e.g.'block-supports'
or'global-styles'
. Default'block-supports'
.
When set, the style engine will attempt to store the CSS rules.optimize
boolWhether to optimize the CSS output, e.g. combine rules.
Default false.prettify
boolWhether to add new lines and indents to output.
Defaults to whether theSCRIPT_DEBUG
constant is defined.
Default:
array()
Source
function wp_style_engine_get_stylesheet_from_css_rules( $css_rules, $options = array() ) { if ( empty( $css_rules ) ) { return ''; } $options = wp_parse_args( $options, array( 'context' => null, ) ); $css_rule_objects = array(); foreach ( $css_rules as $css_rule ) { if ( empty( $css_rule['selector'] ) || empty( $css_rule['declarations'] ) || ! is_array( $css_rule['declarations'] ) ) { continue; } $rules_group = $css_rule['rules_group'] ?? null; if ( ! empty( $options['context'] ) ) { WP_Style_Engine::store_css_rule( $options['context'], $css_rule['selector'], $css_rule['declarations'], $rules_group ); } $css_rule_objects[] = new WP_Style_Engine_CSS_Rule( $css_rule['selector'], $css_rule['declarations'], $rules_group ); } if ( empty( $css_rule_objects ) ) { return ''; } return WP_Style_Engine::compile_stylesheet_from_css_rules( $css_rule_objects, $options ); }
Changelog
User Contributed Notes
You must log in before being able to contribute a note or feedback.