It looks like nothing was found at this location. Maybe try one of the links below or a search?
** * Filter CSS variables right before printing the CSS. * * @since 1.8.8 * * @param array $vars CSS variables. * @param int $form_id Form ID. Optional. Default is empty string. */ return (array) apply_filters( 'wpforms_frontend_css_vars_pre_print_filter', $vars, $form_id ); } /** * Generate CSS code from given vars data. * * @since 1.8.1 * * @param array $vars Variables data. * @param string|int $form_id Form ID. Optional. Default is empty string. */ private function get_vars_css( $vars, $form_id = '' ): string { $vars = $this->get_pre_print_vars( (array) $vars, $form_id ); $result = ''; foreach ( $vars as $name => $value ) { if ( $value === '0' ) { $value = '0px'; } $result .= "--wpforms-{$name}: {$value};\n"; if ( in_array( $name, self::SPARE_VARS, true ) ) { $result .= "--wpforms-{$name}-spare: {$value};\n"; } } return $result; } /** * Get customized CSS vars. * * @since 1.8.3 * * @param array $attr Attributes passed by integration. * * @return array */ public function get_customized_css_vars( $attr ): array { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded $root_css_vars = $this->get_vars( ':root' ); $css_vars = []; foreach ( $attr as $key => $value ) { $var_name = strtolower( preg_replace( '/[A-Z]/', '-$0', $key ) ); // Skip attribute that is not the CSS var or has the default value. if ( empty( $root_css_vars[ $var_name ] ) || $root_css_vars[ $var_name ] === $value ) { continue; } $css_vars[ $var_name ] = $value; } // Reset border size in case of border style is `none`. if ( isset( $css_vars['field-border-style'] ) && $css_vars['field-border-style'] === 'none' ) { $css_vars['field-border-size'] = '0px'; } if ( isset( $css_vars['button-border-style'] ) && $css_vars['button-border-style'] === 'none' ) { $css_vars['button-border-size'] = '0px'; } // Set the button alternative background color and use border color for accent in case of transparent color. $button_bg_color = $css_vars['button-background-color'] ?? $root_css_vars['button-background-color']; if ( $this->is_transparent_color( $button_bg_color ) ) { $css_vars['button-background-color-alt'] = $button_bg_color; $border_color = $css_vars['button-border-color'] ?? $root_css_vars['button-border-color']; $css_vars['button-background-color'] = $this->is_transparent_color( $border_color ) ? $root_css_vars['button-background-color'] : $border_color; $button_bg_color = $css_vars['button-background-color']; } $button_bg_color = strtolower( $button_bg_color ); // Set the button alternative text color in case if the background and text color are identical. $button_text_color = strtolower( $css_vars['button-text-color'] ?? $root_css_vars['button-text-color'] ); if ( $button_bg_color === $button_text_color || $this->is_transparent_color( $button_text_color ) ) { $css_vars['button-text-color-alt'] = $this->get_contrast_color( $button_bg_color ); } $size_css_vars = $this->get_size_css_vars( $attr ); return array_merge( $css_vars, $size_css_vars ); } /** * Checks if the provided color has transparency. * * @since 1.8.8 * * @param string $color The color to check. * * @return bool */ private function is_transparent_color( $color ): bool { $rgba = $this->get_color_as_rgb_array( $color ); $opacity_threshold = 0.33; $opacity = $rgba[3] ?? 1; return $opacity < $opacity_threshold; } /** * Get contrast color relative to given color. * * @since 1.8.8 * * @param string|array $color The color. * * @return string */ private function get_contrast_color( $color ): string { $rgba = is_array( $color ) ? $color : $this->get_color_as_rgb_array( $color ); $avg = (int) ( ( ( array_sum( $rgba ) ) / 3 ) * ( $rgba[3] ?? 1 ) ); return $avg < 128 ? '#ffffff' : '#000000'; } /** * Get size CSS vars. * * @since 1.8.3 * @since 1.8.8 Removed $css_vars argument. * * @param array $attr Attributes passed by integration. * * @return array */ private function get_size_css_vars( array $attr ): array { $size_items = [ 'field', 'label', 'button', 'container-shadow' ]; $size_css_vars = []; foreach ( $size_items as $item ) { $item_attr = preg_replace_callback( '/-(\w)/', static function ( $matches ) { return strtoupper( $matches[1] ); }, $item ); $item_attr .= 'Size'; $item_key = $item . '-size'; $item_constant = 'self::' . str_replace( '-', '_', strtoupper( $item ) ) . '_SIZE'; if ( empty( $attr[ $item_attr ] ) ) { continue; } $size_css_vars[] = $this->get_complex_vars( $item_key, constant( $item_constant )[ $attr[ $item_attr ] ] ); } return empty( $size_css_vars ) ? [] : array_merge( ...$size_css_vars ); } /** * Get color as an array of RGB(A) values. * * @since 1.8.8 * * @param string $color Color. * * @return array|bool Color as an array of RGBA values. False on error. */ private function get_color_as_rgb_array( $color ) { // Remove # from the beginning of the string and remove whitespaces. $color = preg_replace( '/^#/', '', strtolower( trim( $color ) ) ); $color = str_replace( ' ', '', $color ); if ( $color === 'transparent' ) { $color = 'rgba(0,0,0,0)'; } $rgba = $color; $rgb_array = []; // Check if color is in HEX(A) format. $is_hex = preg_match( '/[0-9a-f]{6,8}$/', $rgba ); if ( $is_hex ) { // Search and split HEX(A) color into an array of couples of chars. preg_match_all( '/\w\w/', $rgba, $rgb_array ); $rgb_array = array_map( static function ( $value ) { return hexdec( '0x' . $value ); }, $rgb_array[0] ?? [] ); $rgb_array[3] = ( $rgb_array[3] ?? 255 ) / 255; } else { $rgba = preg_replace( '/[^\d,.]/', '', $rgba ); $rgb_array = explode( ',', $rgba ); } return $rgb_array; } }
It looks like nothing was found at this location. Maybe try one of the links below or a search?