summaryrefslogtreecommitdiff
path: root/inc/builder/type/header/mobile-trigger/dynamic-css/dynamic.css.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/builder/type/header/mobile-trigger/dynamic-css/dynamic.css.php')
-rw-r--r--inc/builder/type/header/mobile-trigger/dynamic-css/dynamic.css.php184
1 files changed, 184 insertions, 0 deletions
diff --git a/inc/builder/type/header/mobile-trigger/dynamic-css/dynamic.css.php b/inc/builder/type/header/mobile-trigger/dynamic-css/dynamic.css.php
new file mode 100644
index 0000000..b7bbbbb
--- /dev/null
+++ b/inc/builder/type/header/mobile-trigger/dynamic-css/dynamic.css.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * Mobile Trigger - Dynamic CSS
+ *
+ * @package astra-builder
+ * @since 3.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly.
+}
+
+/**
+ * Mobile Trigger.
+ */
+add_filter( 'astra_dynamic_theme_css', 'astra_mobile_trigger_row_setting', 11 );
+
+/**
+ * Mobile Trigger - Dynamic CSS
+ *
+ * @param string $dynamic_css Astra Dynamic CSS.
+ * @param string $dynamic_css_filtered Astra Dynamic CSS Filters.
+ * @return String Generated dynamic CSS for Heading Colors.
+ *
+ * @since 3.0.0
+ */
+function astra_mobile_trigger_row_setting( $dynamic_css, $dynamic_css_filtered = '' ) {
+
+ if ( ! Astra_Builder_Helper::is_component_loaded( 'mobile-trigger', 'header', 'mobile' ) ) {
+ return $dynamic_css;
+ }
+
+ $_section = 'section-header-mobile-trigger';
+
+ $selector = '[data-section="section-header-mobile-trigger"]';
+
+ $theme_color = astra_get_option( 'theme-color' );
+ $icon_size = astra_get_option( 'mobile-header-toggle-icon-size' );
+ $trigger_bg = astra_get_option( 'mobile-header-toggle-btn-bg-color', $theme_color );
+ $trigger_border_width = astra_get_option( 'mobile-header-toggle-btn-border-size' );
+ $trigger_border_color = astra_get_option( 'mobile-header-toggle-border-color', $trigger_bg );
+ $trigger_border_radius = astra_get_option( 'mobile-header-toggle-border-radius' );
+ $font_size = astra_get_option( 'mobile-header-label-font-size' );
+ $style = astra_get_option( 'mobile-header-toggle-btn-style' );
+ $default = '#ffffff';
+
+ if ( 'fill' !== $style ) {
+ $default = $theme_color;
+ }
+
+ $icon_color = astra_get_option( 'mobile-header-toggle-btn-color', $default );
+
+ // Border.
+ $trigger_border_width_top = ( isset( $trigger_border_width ) && isset( $trigger_border_width['top'] ) ) ? $trigger_border_width['top'] : 0;
+
+ $trigger_border_width_bottom = ( isset( $trigger_border_width ) && isset( $trigger_border_width['bottom'] ) ) ? $trigger_border_width['bottom'] : 0;
+
+ $trigger_border_width_right = ( isset( $trigger_border_width ) && isset( $trigger_border_width['right'] ) ) ? $trigger_border_width['right'] : 0;
+
+ $trigger_border_width_left = ( isset( $trigger_border_width ) && isset( $trigger_border_width['left'] ) ) ? $trigger_border_width['left'] : 0;
+
+ $margin = astra_get_option( $_section . '-margin' );
+ $margin_selector = $selector . ' .ast-button-wrap .menu-toggle';
+
+ /**
+ * Off-Canvas CSS.
+ */
+ $css_output = array(
+
+ $selector . ' .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg' => array(
+ 'width' => astra_get_css_value( $icon_size, 'px' ),
+ 'height' => astra_get_css_value( $icon_size, 'px' ),
+ 'fill' => $icon_color,
+ ),
+ $selector . ' .ast-button-wrap .mobile-menu-wrap .mobile-menu' => array(
+ // Color.
+ 'color' => $icon_color,
+
+ // Typography.
+ 'font-size' => astra_get_css_value( $font_size, 'px' ),
+ ),
+ $margin_selector => array(
+ // Margin CSS.
+ 'margin-top' => astra_responsive_spacing( $margin, 'top', 'desktop' ),
+ 'margin-bottom' => astra_responsive_spacing( $margin, 'bottom', 'desktop' ),
+ 'margin-left' => astra_responsive_spacing( $margin, 'left', 'desktop' ),
+ 'margin-right' => astra_responsive_spacing( $margin, 'right', 'desktop' ),
+ ),
+ );
+
+ // Execute all cases in customizer preview.
+ $is_customizer = false;
+ if ( is_customize_preview() ) {
+ $is_customizer = true;
+ }
+ switch ( $style ) {
+ case 'minimal': // phpcs:ignore PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
+ $css_output_minimal = array(
+ $selector . ' .ast-button-wrap .ast-mobile-menu-trigger-minimal' => array(
+ // Color & Border.
+ 'color' => esc_attr( $icon_color ),
+ 'border' => 'none',
+ 'background' => 'transparent',
+ ),
+ );
+ $dynamic_css .= astra_parse_css( $css_output_minimal );
+ if ( false === $is_customizer ) {
+ break;
+ }
+
+ case 'fill': // phpcs:ignore PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
+ $css_output_fill = array(
+ $selector . ' .ast-button-wrap .ast-mobile-menu-trigger-fill' => array(
+ // Color & Border.
+ 'color' => esc_attr( $icon_color ),
+ 'border' => 'none',
+ 'background' => esc_attr( $trigger_bg ),
+ 'border-radius' => astra_get_css_value( $trigger_border_radius, 'px' ),
+ ),
+ );
+ $dynamic_css .= astra_parse_css( $css_output_fill );
+ if ( false === $is_customizer ) {
+ break;
+ }
+
+ case 'outline': // phpcs:ignore PSR2.ControlStructures.SwitchDeclaration.TerminatingComment
+ $css_output_outline = array(
+ $selector . ' .ast-button-wrap .ast-mobile-menu-trigger-outline' => array(
+ 'background' => 'transparent',
+ 'color' => esc_attr( $icon_color ),
+ 'border-top-width' => astra_get_css_value( $trigger_border_width_top, 'px' ),
+ 'border-bottom-width' => astra_get_css_value( $trigger_border_width_bottom, 'px' ),
+ 'border-right-width' => astra_get_css_value( $trigger_border_width_right, 'px' ),
+ 'border-left-width' => astra_get_css_value( $trigger_border_width_left, 'px' ),
+ 'border-style' => 'solid',
+ 'border-color' => $trigger_border_color,
+ 'border-radius' => astra_get_css_value( $trigger_border_radius, 'px' ),
+ ),
+ );
+ $dynamic_css .= astra_parse_css( $css_output_outline );
+ if ( false === $is_customizer ) {
+ break;
+ }
+
+ default:
+ $dynamic_css .= '';
+ break;
+
+ }
+
+ // Tablet CSS.
+ $css_output_tablet = array(
+
+ $margin_selector => array(
+ // Margin CSS.
+ 'margin-top' => astra_responsive_spacing( $margin, 'top', 'tablet' ),
+ 'margin-bottom' => astra_responsive_spacing( $margin, 'bottom', 'tablet' ),
+ 'margin-left' => astra_responsive_spacing( $margin, 'left', 'tablet' ),
+ 'margin-right' => astra_responsive_spacing( $margin, 'right', 'tablet' ),
+ ),
+ );
+
+ // Mobile CSS.
+ $css_output_mobile = array(
+
+ $margin_selector => array(
+ // Margin CSS.
+ 'margin-top' => astra_responsive_spacing( $margin, 'top', 'mobile' ),
+ 'margin-bottom' => astra_responsive_spacing( $margin, 'bottom', 'mobile' ),
+ 'margin-left' => astra_responsive_spacing( $margin, 'left', 'mobile' ),
+ 'margin-right' => astra_responsive_spacing( $margin, 'right', 'mobile' ),
+ ),
+ );
+
+ /* Parse CSS from array() */
+ $css_output = astra_parse_css( $css_output );
+ $css_output .= astra_parse_css( $css_output_tablet, '', astra_get_tablet_breakpoint() );
+ $css_output .= astra_parse_css( $css_output_mobile, '', astra_get_mobile_breakpoint() );
+
+
+ $dynamic_css .= $css_output;
+
+ return $dynamic_css;
+}