themes-wordpress/blockbase/functions.php
Jason Crist e83203dbcc
Try/quadrat semantic color customizations (#4090)
* Refactored blockbase color configuration from 'descriptive' to 'semantic'

* Refactored Quadrat to support Semantic Colors

* WIP experiment to allow Customizer editing of semantic colors in Quadrat

* Update the settings in theme.json not styles

* remove class variable for simplicity

* allow users to set multiple colors

* move merged colors to a class property

* Refactored to simplify and integrate changes to save everything at once

* Refactored and implemented save-all-at-once

* Refactored color customization logic from Quadrat to Blockbase

* Refactored Mayland blocks to support semantic color customizations

* Refactored Seedlet for configurable semantic colors.  Refactored meaning of 'primary' in blockbase.

* Minor color cleanups

* Fixed quadrat background color override

* Change variables to camelCase

* remove slug class property

* rename a few variables and add some comments

* remove the noop.css

* don't assume properties exist

Co-authored-by: Ben Dwyer <ben@scruffian.com>
2021-06-25 11:22:53 +01:00

87 lines
2.1 KiB
PHP

<?php
if ( ! function_exists( 'blockbase_support' ) ) :
function blockbase_support() {
// Alignwide and alignfull classes in the block editor.
add_theme_support( 'align-wide' );
// Add support for experimental link color control.
add_theme_support( 'experimental-link-color' );
// Add support for responsive embedded content.
// https://github.com/WordPress/gutenberg/issues/26901
add_theme_support( 'responsive-embeds' );
// Add support for editor styles.
add_theme_support( 'editor-styles' );
// Add support for post thumbnails.
add_theme_support( 'post-thumbnails' );
// Enqueue editor styles.
add_editor_style(
array(
'/assets/ponyfill.css',
)
);
}
add_action( 'after_setup_theme', 'blockbase_support' );
endif;
/**
*
* Enqueue scripts and styles.
*/
function blockbase_editor_styles() {
// Enqueue editor styles.
add_editor_style(
array(
blockbase_fonts_url(),
)
);
}
add_action( 'admin_init', 'blockbase_editor_styles' );
/**
*
* Enqueue scripts and styles.
*/
function blockbase_scripts() {
// Enqueue Google fonts
wp_enqueue_style( 'blockbase-fonts', blockbase_fonts_url(), array(), null );
wp_enqueue_style( 'blockbase-ponyfill', get_template_directory_uri() . '/assets/ponyfill.css', array(), wp_get_theme()->get( 'Version' ) );
}
add_action( 'wp_enqueue_scripts', 'blockbase_scripts' );
/**
* Add Google webfonts
*
* @return $fonts_url
*/
function blockbase_fonts_url() {
if ( ! class_exists( 'WP_Theme_JSON_Resolver_Gutenberg' ) ) {
return '';
}
$theme_data = WP_Theme_JSON_Resolver_Gutenberg::get_merged_data()->get_settings();
if ( empty( $theme_data ) || empty( $theme_data['custom'] ) ) {
return '';
}
$custom_data = $theme_data['custom'];
if ( ! array_key_exists( 'fontsToLoadFromGoogle', $custom_data ) ) {
return '';
}
$font_families = $theme_data['custom']['fontsToLoadFromGoogle'];
$font_families[] = 'display=swap';
// Make a single request for the theme fonts.
return esc_url_raw( 'https://fonts.googleapis.com/css2?' . implode( '&', $font_families ) );
}
/**
* Customize Global Styles
*/
require get_template_directory() . '/inc/customization.php';