block_core_navigation_link_build_css_colors() – Build an array with CSS classes and inline styles defining the colors which will be applied to the navigation markup in the front-end.

You appear to be a bot. Output may be restricted

Description

Build an array with CSS classes and inline styles defining the colors which will be applied to the navigation markup in the front-end.

Usage

$array = block_core_navigation_link_build_css_colors( $context, $attributes );

Parameters

$context
( array ) required – Navigation block context.
$attributes
( array ) required – Block attributes.

Returns

array Colors CSS classes and inline styles.

Source

File name: wordpress/wp-includes/blocks/navigation-link.php
Lines:

1 to 62 of 62
function block_core_navigation_link_build_css_colors( $context, $attributes ) {
  $colors = array(
    'css_classes'   => array(),
    'inline_styles' => '',
  );

  $is_sub_menu = isset( $attributes['isTopLevelLink'] ) ? ( ! $attributes['isTopLevelLink'] ) : false;

  // Text color.
  $named_text_color  = null;
  $custom_text_color = null;

  if ( $is_sub_menu && array_key_exists( 'customOverlayTextColor', $context ) ) {
    $custom_text_color = $context['customOverlayTextColor'];
  } elseif ( $is_sub_menu && array_key_exists( 'overlayTextColor', $context ) ) {
    $named_text_color = $context['overlayTextColor'];
  } elseif ( array_key_exists( 'customTextColor', $context ) ) {
    $custom_text_color = $context['customTextColor'];
  } elseif ( array_key_exists( 'textColor', $context ) ) {
    $named_text_color = $context['textColor'];
  } elseif ( isset( $context['style']['color']['text'] ) ) {
    $custom_text_color = $context['style']['color']['text'];
  }

  // If has text color.
  if ( ! is_null( $named_text_color ) ) {
    // Add the color class.
    array_push( $colors['css_classes'], 'has-text-color', sprintf( 'has-%s-color', $named_text_color ) );
  } elseif ( ! is_null( $custom_text_color ) ) {
    // Add the custom color inline style.
    $colors['css_classes'][]  = 'has-text-color';
    $colors['inline_styles'] .= sprintf( 'color: %s;', $custom_text_color );
  }

  // Background color.
  $named_background_color  = null;
  $custom_background_color = null;

  if ( $is_sub_menu && array_key_exists( 'customOverlayBackgroundColor', $context ) ) {
    $custom_background_color = $context['customOverlayBackgroundColor'];
  } elseif ( $is_sub_menu && array_key_exists( 'overlayBackgroundColor', $context ) ) {
    $named_background_color = $context['overlayBackgroundColor'];
  } elseif ( array_key_exists( 'customBackgroundColor', $context ) ) {
    $custom_background_color = $context['customBackgroundColor'];
  } elseif ( array_key_exists( 'backgroundColor', $context ) ) {
    $named_background_color = $context['backgroundColor'];
  } elseif ( isset( $context['style']['color']['background'] ) ) {
    $custom_background_color = $context['style']['color']['background'];
  }

  // If has background color.
  if ( ! is_null( $named_background_color ) ) {
    // Add the background-color class.
    array_push( $colors['css_classes'], 'has-background', sprintf( 'has-%s-background-color', $named_background_color ) );
  } elseif ( ! is_null( $custom_background_color ) ) {
    // Add the custom background-color inline style.
    $colors['css_classes'][]  = 'has-background';
    $colors['inline_styles'] .= sprintf( 'background-color: %s;', $custom_background_color );
  }

  return $colors;
}
 

 View on GitHub View on Trac