oont-contents/plugins/astra-addon/addons/nav-menu/classes/dynamic.css.php
2025-02-08 15:10:23 +01:00

558 lines
31 KiB
PHP

<?php
/**
* Mega Menu - Dynamic CSS
*
* @package Astra Addon
*/
add_filter( 'astra_addon_dynamic_css', 'astra_addon_mega_menu_dynamic_css' );
/**
* Dynamic CSS
*
* @param string $dynamic_css Astra Dynamic CSS.
* @param string $dynamic_css_filtered Astra Dynamic CSS Filters.
* @return string
*/
function astra_addon_mega_menu_dynamic_css( $dynamic_css, $dynamic_css_filtered = '' ) {
// set page width depending on site layout.
$above_header_layout = astra_get_option( 'above-header-layout' );
$above_header_section_1 = astra_get_option( 'above-header-section-1' );
$above_header_section_2 = astra_get_option( 'above-header-section-2' );
$below_header_layout = astra_get_option( 'below-header-layout' );
$below_header_section_1 = astra_get_option( 'below-header-section-1' );
$below_header_section_2 = astra_get_option( 'below-header-section-2' );
$above_header_enabled = ( ( 'disabled' !== $above_header_layout ) && ( 'menu' === $above_header_section_1 || 'menu' === $above_header_section_2 ) ) ? true : false;
$below_header_enabled = ( ( 'disabled' !== $below_header_layout ) && ( 'menu' === $below_header_section_1 || 'menu' === $below_header_section_2 ) ) ? true : false;
$default_theme_color = astra_get_option( 'theme-color' );
$css = '';
$submenu_border = astra_get_option( 'primary-submenu-border' );
$primary_submenu_b_color = astra_get_option( 'primary-submenu-b-color' );
if ( Astra_Ext_Extension::is_active( 'header-sections' ) ) {
$above_header_h_color = astra_get_option( 'above-header-menu-h-color-responsive' );
$above_header_submenu_h_color = astra_get_option( 'above-header-submenu-hover-color-responsive' );
$below_header_h_color = astra_get_option( 'below-header-menu-text-hover-color-responsive' );
$below_header_submneu_h_color = astra_get_option( 'below-header-submenu-hover-color-responsive' );
$above_header_submenu_bg_color = astra_get_option( 'above-header-submenu-bg-color-responsive' );
$below_header_submenu_bg_color = astra_get_option( 'below-header-submenu-bg-color-responsive' );
$above_header_submenu_border_color = astra_get_option( 'above-header-submenu-border-color' );
$below_header_submenu_border_color = astra_get_option( 'below-header-submenu-border-color' );
$above_header_menu_h_bg_color = astra_get_option( 'above-header-menu-h-bg-color-responsive' );
$above_header_submenu_bg_hover_color = astra_get_option( 'above-header-submenu-bg-hover-color-responsive' );
$below_header_menu_hover_bg_color = astra_get_option( 'below-header-menu-bg-hover-color-responsive' );
$below_header_submenu_bg_hover_color = astra_get_option( 'below-header-submenu-bg-hover-color-responsive' );
// Responsive Colors.
$desktop_colors = array(
'.ast-above-header-menu.ast-mega-menu-enabled .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $above_header_submenu_bg_color['desktop'] ),
),
'.ast-below-header-menu .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $below_header_submenu_bg_color['desktop'] ),
),
// Above header bg color - Added for tablet & mobile devices only.
'.ast-desktop .ast-above-header-navigation .ast-mega-menu-enabled .astra-megamenu-li a:hover,.ast-desktop .ast-above-header-navigation .ast-mega-menu-enabled .astra-megamenu-li a:focus' => array(
'background-color' => esc_attr( $above_header_menu_h_bg_color['desktop'] ),
),
// Above header bg color - Added for tablet & mobile devices only.
'.ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item .menu-link:hover' => array(
'background-color' => esc_attr( $above_header_submenu_bg_hover_color['desktop'] ),
),
// Below header bg color - Added for tablet & mobile devices only.
'.ast-desktop .ast-mega-menu-enabled.ast-below-header-menu .menu-item .menu-link:hover, .ast-desktop .ast-mega-menu-enabled.ast-below-header-menu .menu-item .menu-link:focus' => array(
'background-color' => esc_attr( $below_header_menu_hover_bg_color['desktop'] ),
),
// Below header bg color - Added for tablet & mobile devices only.
'.ast-desktop .ast-mega-menu-enabled.ast-below-header-menu .sub-menu .menu-item .menu-link:hover' => array(
'background-color' => esc_attr( $below_header_submenu_bg_hover_color['desktop'] ),
),
// Above header color.
'.ast-desktop .ast-above-header-navigation .astra-megamenu-li .menu-item .menu-link:hover, .ast-desktop .ast-above-header-navigation .astra-megamenu-li .menu-item .menu-link:focus' => array(
'color' => esc_attr( $above_header_h_color['desktop'] ),
),
'.ast-desktop .ast-above-header-navigation .ast-above-header-menu .astra-megamenu-li .sub-menu .menu-item .menu-link:hover, .ast-desktop .ast-above-header-navigation .ast-above-header-menu .astra-megamenu-li .sub-menu .menu-item .menu-link:focus' => array(
'color' => esc_attr( $above_header_submenu_h_color['desktop'] ),
),
// Below header color.
'.ast-desktop .ast-below-header-navigation .astra-megamenu-li .menu-item .menu-link:hover, .ast-desktop .ast-below-header-navigation .astra-megamenu-li .menu-item .menu-link:focus' => array(
'color' => esc_attr( $below_header_h_color['desktop'] ),
),
'.ast-desktop .ast-below-header-navigation .astra-megamenu-li .sub-menu .menu-item .menu-link:hover, .ast-desktop .ast-below-header-navigation .astra-megamenu-li .sub-menu .menu-item .menu-link:focus' => array(
'color' => esc_attr( $below_header_submneu_h_color['desktop'] ),
),
);
$tablet_colors = array(
'.ast-above-header .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $above_header_submenu_bg_color['tablet'] ),
),
'.ast-below-header .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $below_header_submenu_bg_color['tablet'] ),
),
);
$mobile_colors = array(
'.ast-above-header .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $above_header_submenu_bg_color['mobile'] ),
),
'.ast-below-header .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $below_header_submenu_bg_color['mobile'] ),
),
);
$css .= astra_parse_css( $desktop_colors );
$css .= astra_parse_css( $tablet_colors, '', astra_addon_get_tablet_breakpoint() );
$css .= astra_parse_css( $mobile_colors, '', astra_addon_get_mobile_breakpoint() );
$colors_options_style = array(
// Box Shadow.
'.ast-above-header-menu .astra-full-megamenu-wrapper' => array(
'box-shadow' => '0 5px 20px rgba(0,0,0,0.06)',
),
'.ast-above-header-menu .astra-full-megamenu-wrapper .sub-menu, .ast-above-header-menu .astra-megamenu .sub-menu' => array(
'box-shadow' => 'none',
),
'.ast-above-header-menu.ast-mega-menu-enabled.submenu-with-border .astra-full-megamenu-wrapper' => array(
'border-color' => esc_attr( $above_header_submenu_border_color ),
),
'.ast-below-header-menu.ast-mega-menu-enabled.submenu-with-border .astra-full-megamenu-wrapper' => array(
'border-color' => esc_attr( $below_header_submenu_border_color ),
),
// Box Shadow.
'.ast-below-header-menu .astra-full-megamenu-wrapper' => array(
'box-shadow' => '0 5px 20px rgba(0,0,0,0.06)',
),
'.ast-below-header-menu .astra-full-megamenu-wrapper .sub-menu, .ast-below-header-menu .astra-megamenu .sub-menu' => array(
'box-shadow' => 'none',
),
);
/* Parse CSS from array() */
$css .= astra_parse_css( $colors_options_style );
}
if ( Astra_Ext_Extension::is_active( 'colors-and-background' ) ) {
$primary_header_h_color = astra_get_option( 'primary-menu-h-color-responsive' );
$primary_header_submenu_h_color = astra_get_option( 'primary-submenu-h-color-responsive' );
$primary_submenu_bg_color = astra_get_option( 'primary-submenu-bg-color-responsive' );
$primary_menu_h_bg_color = astra_get_option( 'primary-menu-h-bg-color-responsive' );
$primary_submenu_h_bg_color = astra_get_option( 'primary-submenu-h-bg-color-responsive' );
$border = array(
'.ast-desktop .main-header-menu.submenu-with-border .astra-megamenu, .ast-desktop .main-header-menu.ast-mega-menu-enabled.submenu-with-border .astra-full-megamenu-wrapper' => array(
'border-top-width' => ! empty( $submenu_border['top'] ) ? astra_get_css_value( $submenu_border['top'], 'px' ) : '',
'border-left-width' => ! empty( $submenu_border['left'] ) ? astra_get_css_value( $submenu_border['left'], 'px' ) : '',
'border-right-width' => ! empty( $submenu_border['right'] ) ? astra_get_css_value( $submenu_border['right'], 'px' ) : '',
'border-bottom-width' => ! empty( $submenu_border['bottom'] ) ? astra_get_css_value( $submenu_border['bottom'], 'px' ) : '',
'border-style' => 'solid',
'border-color' => esc_attr( $primary_submenu_b_color ),
),
);
/* Parse CSS from array() */
$css .= astra_parse_css( $border );
$colors_options_style = array(
/**
* Sub Menu Border Colors support for the Full Width Mega Menu
*/
'.main-header-menu.ast-mega-menu-enabled.submenu-with-border .astra-full-megamenu-wrapper' => array(
'border-color' => esc_attr( $primary_submenu_b_color ),
),
);
/* Parse CSS from array() */
$css .= astra_parse_css( $colors_options_style );
// Responsive Colors.
$desktop_colors = array(
/**
* Sub Menu Background Colors support for the Full Width Mega Menu
*/
'.main-header-menu.ast-mega-menu-enabled .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $primary_submenu_bg_color['desktop'] ),
),
'.ast-desktop .main-header-menu .astra-megamenu-li .menu-item .menu-link:hover, .ast-desktop .main-header-menu .astra-megamenu-li .menu-item .menu-link:focus' => array(
'color' => esc_attr( $primary_header_h_color['desktop'] ),
),
'.ast-desktop .main-header-menu .astra-megamenu-li .sub-menu .menu-item .menu-link:hover, .ast-desktop .main-header-menu .astra-megamenu-li .sub-menu .menu-item .menu-link:focus' => array(
'color' => esc_attr( $primary_header_submenu_h_color['desktop'] ),
),
/**
* Primary header bg color
*/
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item .menu-link:hover, .ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item .menu-link:focus' => array(
'background-color' => esc_attr( $primary_menu_h_bg_color['desktop'] ),
),
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item .menu-link:hover, .ast-desktop .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item .menu-link:focus' => array(
'background-color' => esc_attr( $primary_submenu_h_bg_color['desktop'] ),
),
);
$tablet_colors = array(
/**
* Sub Menu Background Colors support for the Full Width Mega Menu
*/
'.main-header-menu .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $primary_submenu_bg_color['tablet'] ),
),
);
$mobile_colors = array(
/**
* Sub Menu Background Colors support for the Full Width Mega Menu
*/
'.main-header-menu .astra-full-megamenu-wrapper' => array(
'background-color' => esc_attr( $primary_submenu_bg_color['mobile'] ),
),
);
$css .= astra_parse_css( $desktop_colors );
$css .= astra_parse_css( $tablet_colors, '', astra_addon_get_tablet_breakpoint() );
$css .= astra_parse_css( $mobile_colors, '', astra_addon_get_mobile_breakpoint() );
}
$sticky_above_mega_menu_heading_color = astra_get_option( 'sticky-above-header-megamenu-heading-color' );
$sticky_above_mega_menu_heading_h_color = astra_get_option( 'sticky-above-header-megamenu-heading-h-color' );
$sticky_mega_menu_heading_color = astra_get_option( 'sticky-primary-header-megamenu-heading-color' );
$sticky_mega_menu_heading_h_color = astra_get_option( 'sticky-primary-header-megamenu-heading-h-color' );
$sticky_below_mega_menu_heading_color = astra_get_option( 'sticky-below-header-megamenu-heading-color' );
$sticky_below_mega_menu_heading_h_color = astra_get_option( 'sticky-below-header-megamenu-heading-h-color' );
$above_mega_menu_heading_color = astra_get_option( 'above-header-megamenu-heading-color' );
$above_mega_menu_heading_h_color = astra_get_option( 'above-header-megamenu-heading-h-color' );
$primary_mega_menu_heading_color = astra_get_option( 'primary-header-megamenu-heading-color' );
$primary_mega_menu_heading_h_color = astra_get_option( 'primary-header-megamenu-heading-h-color' );
$below_mega_menu_heading_color = astra_get_option( 'below-header-megamenu-heading-color' );
$below_mega_menu_heading_h_color = astra_get_option( 'below-header-megamenu-heading-h-color' );
/**
* Executing condition for managing backward compatibility in case of Colors when sticky is active.
*
* Because till previous to this version normal header Mega Menu heading colors overriden by sticky colors.
*
* @since 2.6.0
*/
$astra_settings = get_option( ASTRA_THEME_SETTINGS );
$backward_sticky_header_comp = ( isset( $astra_settings['can-inherit-sticky-colors-in-header'] ) && $astra_settings['can-inherit-sticky-colors-in-header'] ) ? true : false;
if ( $backward_sticky_header_comp ) {
// For above menu colors.
$above_mega_menu_heading_color = $sticky_above_mega_menu_heading_color;
$above_mega_menu_heading_h_color = $sticky_above_mega_menu_heading_h_color;
// For primary menu colors.
$primary_mega_menu_heading_color = $sticky_mega_menu_heading_color;
$primary_mega_menu_heading_h_color = $sticky_mega_menu_heading_h_color;
// For below menu colors.
$below_mega_menu_heading_color = $sticky_below_mega_menu_heading_color;
$below_mega_menu_heading_h_color = $sticky_below_mega_menu_heading_h_color;
}
$colors = array(
// Normal Above Header.
'.ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .menu-item-heading > .menu-link' => array(
'color' => esc_attr( $above_mega_menu_heading_color ),
),
'.ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item.menu-item-heading:hover > .menu-link, .ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .sub-menu.menu-item .menu-item-heading:focus > .menu-link, .ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item.menu-item-heading.focus > .menu-link, .ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item.menu-item-heading > .menu-link:hover' => array(
'color' => esc_attr( $above_mega_menu_heading_h_color ),
),
// Sticky Above Header.
'.ast-desktop.ast-above-sticky-header-active .ast-mega-menu-enabled.ast-above-header-menu .menu-item-heading > .menu-link, .ast-desktop.ast-above-sticky-header-active #ast-fixed-header .ast-mega-menu-enabled.ast-above-header-menu .menu-item-heading > .menu-link' => array(
'color' => esc_attr( $sticky_above_mega_menu_heading_color ),
),
'.ast-desktop .astra-megamenu-li .menu-item-heading > .menu-link:hover, .ast-desktop .ast-mega-menu-enabled.submenu-with-border .astra-megamenu-li .menu-item-heading > .menu-link:hover, .ast-desktop .ast-mega-menu-enabled .astra-megamenu-li .menu-item-heading > .menu-link:hover, .ast-desktop.ast-above-sticky-header-active .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item-heading:hover > .menu-link, .ast-desktop.ast-above-sticky-header-active .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item-heading:focus > .menu-link, .ast-desktop.ast-above-sticky-header-active .ast-mega-menu-enabled.ast-above-header-menu .sub-menu .menu-item-heading > .menu-link.hover, .ast-desktop.ast-above-sticky-header-active #ast-fixed-header .ast-mega-menu-enabled.ast-above-header-menu .menu-item-heading:hover > .menu-link' => array(
'color' => esc_attr( $sticky_above_mega_menu_heading_h_color ),
),
// Primary Header.
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link' => array(
'color' => esc_attr( $primary_mega_menu_heading_color ),
),
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item.menu-item-heading > .menu-link:hover, .ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item.menu-item-heading > .menu-link:focus' => array(
'color' => esc_attr( $primary_mega_menu_heading_h_color ),
),
// Sticky Primary Header.
'.ast-desktop.ast-primary-sticky-header-active .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item.menu-item-heading > .menu-link, .ast-desktop #ast-fixed-header .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item.menu-item-heading > .menu-link' => array(
'color' => esc_attr( $sticky_mega_menu_heading_color ),
),
'.ast-desktop.ast-primary-sticky-header-active .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link:hover, .ast-desktop.ast-primary-sticky-header-active .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link:focus, .ast-desktop.ast-primary-sticky-header-active .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link.focus, .ast-desktop #ast-fixed-header .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item-heading > .menu-link:hover, .ast-desktop #ast-fixed-header .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item-heading > .menu-link:focus, .ast-desktop #ast-fixed-header .ast-mega-menu-enabled.main-header-menu .sub-menu .menu-item-heading > .menu-link.focus' => array(
'color' => esc_attr( $sticky_mega_menu_heading_h_color ),
),
// Normal Below Header.
'.ast-desktop .ast-mega-menu-enabled.ast-below-header-menu .menu-item-heading > .menu-link' => array(
'color' => esc_attr( $below_mega_menu_heading_color ),
),
'.ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled.ast-below-header-menu .menu-item.menu-item-heading > .menu-link:hover, .ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled.ast-below-header-menu .menu-item.menu-item-heading > .menu-link:focus, .ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled.ast-below-header-menu .menu-item.menu-item-heading > .menu-link.focus' => array(
'color' => esc_attr( $below_mega_menu_heading_h_color ),
),
// Sticky Below Header.
'.ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled .menu-item-heading > .menu-link, .ast-desktop.ast-below-sticky-header-active #ast-fixed-header .ast-mega-menu-enabled.ast-below-header-menu .menu-item-heading > .menu-link' => array(
'color' => esc_attr( $sticky_below_mega_menu_heading_color ),
),
'.ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled .menu-item-heading > .menu-link:hover, .ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled .menu-item-heading > .menu-link:focus, .ast-desktop.ast-below-sticky-header-active .ast-mega-menu-enabled .menu-item-heading > .menu-link.focus, .ast-desktop.ast-below-sticky-header-active #ast-fixed-header .ast-mega-menu-enabled.ast-below-header-menu.menu-item .menu-item-heading > .menu-link:hover, .ast-desktop.ast-below-sticky-header-active #ast-fixed-header .ast-mega-menu-enabled.ast-below-header-menu .menu-item-heading > .menu-link:focus, .ast-desktop.ast-below-sticky-header-active #ast-fixed-header .ast-mega-menu-enabled.ast-below-header-menu .menu-item-heading > .menu-link.focus' => array(
'color' => esc_attr( $sticky_below_mega_menu_heading_h_color ),
),
);
// Common options of Above Header.
$css .= astra_parse_css( $colors );
$font_size = astra_get_option( 'primary-header-megamenu-heading-font-size' );
$font_family = astra_get_option( 'primary-header-megamenu-heading-font-family' );
$font_weight = astra_get_option( 'primary-header-megamenu-heading-font-weight' );
$text_transform = astra_get_option( 'primary-header-megamenu-heading-text-transform' );
$common_css_output = array(
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link' => array(
'font-family' => astra_get_css_value( $font_family, 'font' ),
'font-weight' => astra_get_css_value( $font_weight, 'font' ),
'font-size' => astra_responsive_font( $font_size, 'desktop' ),
'text-transform' => esc_attr( $text_transform ),
),
);
// Common options of Above Header.
$css .= astra_parse_css( $common_css_output );
$site_identity_spacing = astra_get_option( 'primary-header-megamenu-heading-space' );
// Desktop Spacing.
$spacing = array(
// Site Identity Spacing.
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $site_identity_spacing, 'top', 'desktop' ),
'padding-right' => astra_responsive_spacing( $site_identity_spacing, 'right', 'desktop' ),
'padding-bottom' => astra_responsive_spacing( $site_identity_spacing, 'bottom', 'desktop' ),
'padding-left' => astra_responsive_spacing( $site_identity_spacing, 'left', 'desktop' ),
),
);
$tablet_spacing = array(
// Site Identity Spacing.
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $site_identity_spacing, 'top', 'tablet' ),
'padding-right' => astra_responsive_spacing( $site_identity_spacing, 'right', 'tablet' ),
'padding-bottom' => astra_responsive_spacing( $site_identity_spacing, 'bottom', 'tablet' ),
'padding-left' => astra_responsive_spacing( $site_identity_spacing, 'left', 'tablet' ),
),
);
// Site Identity Spacing.
$mobile_spacing = array(
'.ast-desktop .ast-mega-menu-enabled.main-header-menu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $site_identity_spacing, 'top', 'mobile' ),
'padding-right' => astra_responsive_spacing( $site_identity_spacing, 'right', 'mobile' ),
'padding-bottom' => astra_responsive_spacing( $site_identity_spacing, 'bottom', 'mobile' ),
'padding-left' => astra_responsive_spacing( $site_identity_spacing, 'left', 'mobile' ),
),
);
$css .= astra_parse_css( $spacing );
$css .= astra_parse_css( $mobile_spacing, '', astra_addon_get_mobile_breakpoint() );
$css .= astra_parse_css( $tablet_spacing, '', astra_addon_get_tablet_breakpoint() );
/**
* Above Header.
*/
if ( $above_header_enabled ) {
$above_megamenu_space = astra_get_option( 'above-header-megamenu-heading-space' );
// Desktop Spacing.
$spacing = array(
// Site Identity Spacing.
'.ast-above-header-navigation .ast-mega-menu-enabled.ast-above-header-menu .astra-megamenu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $above_megamenu_space, 'top', 'desktop' ),
'padding-right' => astra_responsive_spacing( $above_megamenu_space, 'right', 'desktop' ),
'padding-bottom' => astra_responsive_spacing( $above_megamenu_space, 'bottom', 'desktop' ),
'padding-left' => astra_responsive_spacing( $above_megamenu_space, 'left', 'desktop' ),
),
);
$tablet_spacing = array(
// Site Identity Spacing.
'.ast-above-header-navigation .ast-mega-menu-enabled.ast-above-header-menu .astra-megamenu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $above_megamenu_space, 'top', 'tablet' ),
'padding-right' => astra_responsive_spacing( $above_megamenu_space, 'right', 'tablet' ),
'padding-bottom' => astra_responsive_spacing( $above_megamenu_space, 'bottom', 'tablet' ),
'padding-left' => astra_responsive_spacing( $above_megamenu_space, 'left', 'tablet' ),
),
);
// Site Identity Spacing.
$mobile_spacing = array(
'.ast-above-header-navigation .ast-mega-menu-enabled.ast-above-header-menu .astra-megamenu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $above_megamenu_space, 'top', 'mobile' ),
'padding-right' => astra_responsive_spacing( $above_megamenu_space, 'right', 'mobile' ),
'padding-bottom' => astra_responsive_spacing( $above_megamenu_space, 'bottom', 'mobile' ),
'padding-left' => astra_responsive_spacing( $above_megamenu_space, 'left', 'mobile' ),
),
);
$css .= astra_parse_css( $spacing );
$css .= astra_parse_css( $mobile_spacing, '', astra_addon_get_mobile_breakpoint() );
$css .= astra_parse_css( $tablet_spacing, '', astra_addon_get_tablet_breakpoint() );
$font_size = astra_get_option( 'above-header-megamenu-heading-font-size' );
$font_family = astra_get_option( 'above-header-megamenu-heading-font-family' );
$font_weight = astra_get_option( 'above-header-megamenu-heading-font-weight' );
$text_transform = astra_get_option( 'above-header-megamenu-heading-text-transform' );
$common_css_output = array(
'.ast-desktop .ast-mega-menu-enabled.ast-above-header-menu .menu-item-heading > .menu-link' => array(
'font-family' => astra_get_css_value( $font_family, 'font' ),
'font-weight' => astra_get_css_value( $font_weight, 'font' ),
'font-size' => astra_responsive_font( $font_size, 'desktop' ),
'text-transform' => esc_attr( $text_transform ),
),
);
// Common options of Above Header.
$css .= astra_parse_css( $common_css_output );
}
/**
* Below Header.
*/
if ( $below_header_enabled ) {
$below_megamenu_space = astra_get_option( 'below-header-megamenu-heading-space' );
// Desktop Spacing.
$spacing = array(
// Site Identity Spacing.
'.ast-below-header-navigation .ast-mega-menu-enabled.ast-below-header-menu .astra-megamenu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $below_megamenu_space, 'top', 'desktop' ),
'padding-right' => astra_responsive_spacing( $below_megamenu_space, 'right', 'desktop' ),
'padding-bottom' => astra_responsive_spacing( $below_megamenu_space, 'bottom', 'desktop' ),
'padding-left' => astra_responsive_spacing( $below_megamenu_space, 'left', 'desktop' ),
),
);
$tablet_spacing = array(
// Site Identity Spacing.
'.ast-below-header-navigation .ast-mega-menu-enabled.ast-below-header-menu .astra-megamenu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $below_megamenu_space, 'top', 'tablet' ),
'padding-right' => astra_responsive_spacing( $below_megamenu_space, 'right', 'tablet' ),
'padding-bottom' => astra_responsive_spacing( $below_megamenu_space, 'bottom', 'tablet' ),
'padding-left' => astra_responsive_spacing( $below_megamenu_space, 'left', 'tablet' ),
),
);
// Site Identity Spacing.
$mobile_spacing = array(
'.ast-below-header-navigation .ast-mega-menu-enabled.ast-below-header-menu .astra-megamenu .menu-item-heading > .menu-link' => array(
'padding-top' => astra_responsive_spacing( $below_megamenu_space, 'top', 'mobile' ),
'padding-right' => astra_responsive_spacing( $below_megamenu_space, 'right', 'mobile' ),
'padding-bottom' => astra_responsive_spacing( $below_megamenu_space, 'bottom', 'mobile' ),
'padding-left' => astra_responsive_spacing( $below_megamenu_space, 'left', 'mobile' ),
),
);
$css .= astra_parse_css( $spacing );
$css .= astra_parse_css( $mobile_spacing, '', astra_addon_get_mobile_breakpoint() );
$css .= astra_parse_css( $tablet_spacing, '', astra_addon_get_tablet_breakpoint() );
$font_size = astra_get_option( 'below-header-megamenu-heading-font-size' );
$font_family = astra_get_option( 'below-header-megamenu-heading-font-family' );
$font_weight = astra_get_option( 'below-header-megamenu-heading-font-weight' );
$text_transform = astra_get_option( 'below-header-megamenu-heading-text-transform' );
$common_css_output = array(
'.ast-desktop .ast-mega-menu-enabled.ast-below-header-menu .menu-item-heading > .menu-link' => array(
'font-family' => astra_get_css_value( $font_family, 'font' ),
'font-weight' => astra_get_css_value( $font_weight, 'font' ),
'font-size' => astra_responsive_font( $font_size, 'desktop' ),
'text-transform' => esc_attr( $text_transform ),
),
);
// Common options of Below Header.
$css .= astra_parse_css( $common_css_output );
}
if ( Astra_Ext_Extension::is_active( 'header-sections' ) ) {
// Above header border.
$above_header_submenu_border = astra_get_option( 'above-header-submenu-border' );
$above_header_submenu_border_color = astra_get_option( 'above-header-submenu-border-color' );
$border = array(
'.ast-desktop .ast-above-header .submenu-with-border .astra-full-megamenu-wrapper' => array(
'border-top-width' => ! empty( $above_header_submenu_border['top'] ) ? astra_get_css_value( $above_header_submenu_border['top'], 'px' ) : '',
'border-left-width' => ! empty( $above_header_submenu_border['left'] ) ? astra_get_css_value( $above_header_submenu_border['left'], 'px' ) : '',
'border-right-width' => ! empty( $above_header_submenu_border['right'] ) ? astra_get_css_value( $above_header_submenu_border['right'], 'px' ) : '',
'border-bottom-width' => ! empty( $above_header_submenu_border['bottom'] ) ? astra_get_css_value( $above_header_submenu_border['bottom'], 'px' ) : '',
'border-style' => 'solid',
),
);
/* Parse CSS from array() */
$css .= astra_parse_css( $border );
// Below header border.
$below_header_submenu_border = astra_get_option( 'below-header-submenu-border' );
$below_header_submenu_border_color = astra_get_option( 'below-header-submenu-border-color' );
$border = array(
'.ast-desktop .ast-below-header .submenu-with-border .astra-full-megamenu-wrapper' => array(
'border-top-width' => ! empty( $below_header_submenu_border['top'] ) ? astra_get_css_value( $below_header_submenu_border['top'], 'px' ) : '',
'border-left-width' => ! empty( $below_header_submenu_border['left'] ) ? astra_get_css_value( $below_header_submenu_border['left'], 'px' ) : '',
'border-right-width' => ! empty( $below_header_submenu_border['right'] ) ? astra_get_css_value( $below_header_submenu_border['right'], 'px' ) : '',
'border-bottom-width' => ! empty( $below_header_submenu_border['bottom'] ) ? astra_get_css_value( $below_header_submenu_border['bottom'], 'px' ) : '',
'border-style' => 'solid',
),
);
/* Parse CSS from array() */
$css .= astra_parse_css( $border );
}
if ( false === Astra_Icons::is_svg_icons() ) {
$astra_font = array(
'.ast-desktop .ast-mega-menu-enabled.main-header-menu > .menu-item-has-children > .menu-link .sub-arrow:after, .ast-desktop .ast-mega-menu-enabled.ast-below-header-menu > .menu-item-has-children > .menu-link .sub-arrow:after, .ast-desktop .ast-mega-menu-enabled.ast-above-header-menu > .menu-item-has-children > .menu-link .sub-arrow:after' => array(
'content' => '"\e900"',
'display' => 'inline-block',
'font-family' => 'Astra',
'font-size' => '9px',
'font-size' => '.6rem',
'font-weight' => 'bold',
'text-rendering' => 'auto',
'-webkit-font-smoothing' => 'antialiased',
'-moz-osx-font-smoothing' => 'grayscale',
'margin-left' => '10px',
'line-height' => 'normal',
),
);
} else {
$astra_font = array(
'.ast-header-break-point .menu-text + .icon-arrow, .ast-header-break-point .menu-link .icon-arrow:first-child, .ast-desktop .menu-link > .icon-arrow:first-child, .ast-header-break-point .astra-mm-highlight-label + .icon-arrow' => array(
'display' => 'none',
),
'.ast-header-break-point .sub-menu .menu-link > .icon-arrow:first-child' => array(
'display' => 'inline-block',
),
);
}
/* Parse CSS from array() */
$css .= astra_parse_css( $astra_font );
return $dynamic_css . $css;
}