Skip to content

Commit a50fe55

Browse files
committed
Add a mechanism to store what style variation is used and leverage that to add a style variation specific class to the rendered body
1 parent 3547e1c commit a50fe55

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

lib/global-styles-and-settings.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,3 +277,13 @@ function gutenberg_get_global_styles( $path = array(), $context = array() ) {
277277
function gutenberg_get_remote_theme_patterns() {
278278
return WP_Theme_JSON_Resolver_Gutenberg::get_theme_data( array(), array( 'with_supports' => false ) )->get_patterns();
279279
}
280+
281+
function add_variation_class_to_body( $classes ) {
282+
$custom = wp_get_global_settings( array( 'custom' ) );
283+
if ( isset($custom['variation']) && 'Default' !== $custom['variation'] ) {
284+
$classes[] = 'uses-style-variation';
285+
$classes[] = _wp_to_kebab_case('is style variation ' . $custom['variation']);
286+
}
287+
return $classes;
288+
}
289+
add_filter( 'body_class','add_variation_class_to_body' );

packages/edit-site/src/components/global-styles/style-variations-container.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,14 @@ function Variation( { variation } ) {
4343
const selectVariation = () => {
4444
setUserConfig( () => {
4545
return {
46-
settings: variation.settings,
46+
settings: {
47+
...( 'Default' !== variation.title && {
48+
custom: {
49+
variation: variation.title,
50+
},
51+
} ),
52+
...variation.settings,
53+
},
4754
styles: variation.styles,
4855
};
4956
} );

0 commit comments

Comments
 (0)