block_core_navigation_build_css_colors

The timeline below displays how wordpress function block_core_navigation_build_css_colors has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.9

/**
 * Build an array with CSS classes and inline styles defining the colors
 * which will be applied to the navigation markup in the front-end.
 *
 * @param array $attributes Navigation block attributes.
 *
 * @return array Colors CSS classes and inline styles.
 */
function block_core_navigation_build_css_colors($attributes)
{
    $colors = array('css_classes' => array(), 'inline_styles' => '', 'overlay_css_classes' => array(), 'overlay_inline_styles' => '');
    // Text color.
    $has_named_text_color = array_key_exists('textColor', $attributes);
    $has_custom_text_color = array_key_exists('customTextColor', $attributes);
    // If has text color.
    if ($has_custom_text_color || $has_named_text_color) {
        // Add has-text-color class.
        $colors['css_classes'][] = 'has-text-color';
    }
    if ($has_named_text_color) {
        // Add the color class.
        $colors['css_classes'][] = sprintf('has-%s-color', $attributes['textColor']);
    } elseif ($has_custom_text_color) {
        // Add the custom color inline style.
        $colors['inline_styles'] .= sprintf('color: %s;', $attributes['customTextColor']);
    }
    // Background color.
    $has_named_background_color = array_key_exists('backgroundColor', $attributes);
    $has_custom_background_color = array_key_exists('customBackgroundColor', $attributes);
    // If has background color.
    if ($has_custom_background_color || $has_named_background_color) {
        // Add has-background class.
        $colors['css_classes'][] = 'has-background';
    }
    if ($has_named_background_color) {
        // Add the background-color class.
        $colors['css_classes'][] = sprintf('has-%s-background-color', $attributes['backgroundColor']);
    } elseif ($has_custom_background_color) {
        // Add the custom background-color inline style.
        $colors['inline_styles'] .= sprintf('background-color: %s;', $attributes['customBackgroundColor']);
    }
    // Overlay text color.
    $has_named_overlay_text_color = array_key_exists('overlayTextColor', $attributes);
    $has_custom_overlay_text_color = array_key_exists('customOverlayTextColor', $attributes);
    // If has overlay text color.
    if ($has_custom_overlay_text_color || $has_named_overlay_text_color) {
        // Add has-text-color class.
        $colors['overlay_css_classes'][] = 'has-text-color';
    }
    if ($has_named_overlay_text_color) {
        // Add the overlay color class.
        $colors['overlay_css_classes'][] = sprintf('has-%s-color', $attributes['overlayTextColor']);
    } elseif ($has_custom_overlay_text_color) {
        // Add the custom overlay color inline style.
        $colors['overlay_inline_styles'] .= sprintf('color: %s;', $attributes['customOverlayTextColor']);
    }
    // Overlay background color.
    $has_named_overlay_background_color = array_key_exists('overlayBackgroundColor', $attributes);
    $has_custom_overlay_background_color = array_key_exists('customOverlayBackgroundColor', $attributes);
    // If has overlay background color.
    if ($has_custom_overlay_background_color || $has_named_overlay_background_color) {
        // Add has-background class.
        $colors['overlay_css_classes'][] = 'has-background';
    }
    if ($has_named_overlay_background_color) {
        // Add the overlay background-color class.
        $colors['overlay_css_classes'][] = sprintf('has-%s-background-color', $attributes['overlayBackgroundColor']);
    } elseif ($has_custom_overlay_background_color) {
        // Add the custom overlay background-color inline style.
        $colors['overlay_inline_styles'] .= sprintf('background-color: %s;', $attributes['customOverlayBackgroundColor']);
    }
    return $colors;
}