<?php // Custom Colors: Seedlet function seedlet_define_color_annotations( $colors ) { // Background Color // --global--color-background add_color_rule( 'bg', $colors['background'], array( // This placeholder is needed to make the color annotations work array( '.global--color-background', 'background-color' ), ), __( 'Background Color', 'seedlet' ) ); // Foreground Color // --global--color-foreground add_color_rule( 'txt', $colors['foreground'], array( // This placeholder is needed to make the color annotations work array( '.global--color-foreground', 'color' ), ), __( 'Foreground Color', 'seedlet' ) ); // Primary Color // --global--color-primary add_color_rule( 'link', $colors['primary'], array( // This placeholder is needed to make the color annotations work array( '.global--color-primary', 'color' ), ), __( 'Primary Color', 'seedlet' ) ); // Secondary Color // --global--color-secondary add_color_rule( 'fg1', $colors['secondary'], array( // Text-color array( '.global--color-secondary', 'color' ), ), __( 'Secondary Color', 'seedlet' ) ); // Tertiary Color // --global--color-tertiary add_color_rule( 'fg2', $colors['tertiary'], array( // Text-color array( '.global--color-tertiary', 'color' ), ), __( 'Tertiary Color', 'seedlet' ) ); } // These functions are borrowed from the colorline lib if ( ! function_exists( 'hex_to_rgb' ) ) { function hex_to_rgb( $hex ) { return sscanf( $hex, '%02X%02X%02X' ); } } // RGB values: 0-255 // LUM values: 0-1 if ( ! function_exists( 'rgb_to_lum' ) ) { function rgb_to_lum( $rgb ) { list( $r, $g, $b ) = $rgb; return sqrt( 0.241 * $r * $r + 0.691 * $g * $g + 0.068 * $b * $b ) / 255; } } // RGB values: 0-255, 0-255, 0-255 // HSV values: 0-360, 0-100, 0-100, 0-100 if ( ! function_exists( 'rgb_to_hsvl' ) ) { function rgb_to_hsvl( $rgb ) { $l = rgb_to_lum( $rgb ); list( $r, $g, $b ) = $rgb; $r = $r / 255; $g = $g / 255; $b = $b / 255; $max_rgb = max( $r, $g, $b ); $min_rgb = min( $r, $g, $b ); $chroma = $max_rgb - $min_rgb; $v = 100 * $max_rgb; if ( $chroma > 0 ) { $s = 100 * ( $chroma / $max_rgb ); if ( $r === $min_rgb ) { $h = 3 - ( ( $g - $b ) / $chroma ); } elseif ( $b === $min_rgb ) { $h = 1 - ( ( $r - $g ) / $chroma ); } else { // $g === $min_rgb $h = 5 - ( ( $b - $r ) / $chroma ); } $h = 60 * $h; return array( $h, $s, $v, $l ); } else { return array( 0, 0, $v, $l ); } } } if ( ! function_exists( 'change_color_luminescence' ) ) { function change_color_luminescence( $hex, $amount ) { $hex_without_hash = substr( $hex, 1, strlen( $hex ) ); $rgb = hex_to_rgb( $hex_without_hash ); $hsvl = rgb_to_hsvl( $rgb ); return 'hsl( ' . $hsvl[0] . ',' . $hsvl[1] . '%,' . ( $hsvl[2] + $amount ) . '%)'; } } /** * Custom CSS. * The plugin takes the body of this function and applies it in a style tag in the document head. */ function seedlet_custom_colors_extra_css() { $colors_array = get_theme_mod( 'colors_manager' ); $background = $colors_array['colors']['bg']; $foreground = $colors_array['colors']['txt']; $primary = $colors_array['colors']['link']; $secondary = $colors_array['colors']['fg1']; $tertiary = $colors_array['colors']['fg2']; $foreground_low_contrast = change_color_luminescence( $foreground, 10 ); $foreground_high_contrast = change_color_luminescence( $foreground, -10 ); $primary_hover = change_color_luminescence( $primary, 10 ); $secondary_hover = change_color_luminescence( $secondary, 10 ); ?> :root, #editor .editor-styles-wrapper { --global--color-background: <?php echo $background; ?>; --global--color-foreground: <?php echo $foreground; ?>; --global--color-foreground-low-contrast: <?php echo $foreground_low_contrast; ?>; --global--color-foreground-high-contrast: <?php echo $foreground_high_contrast; ?>; --global--color-primary: <?php echo $primary; ?>; --global--color-primary-hover: <?php echo $primary_hover; ?>; --global--color-secondary: <?php echo $secondary; ?>; --global--color-secondary-hover: <?php echo $secondary_hover; ?>; --global--color-tertiary: <?php echo $tertiary; ?>; } <?php } add_theme_support( 'custom_colors_extra_css', 'seedlet_custom_colors_extra_css' ); /** * Featured Varia/Seedlet Palettes */ // Light add_color_palette( array( '#FFFFFF', '#1D1E1E', '#C8133E', '#4E2F4B', '#F9F9F9', ), /* translators: This is the name for a color scheme */ 'Light' ); // Medium add_color_palette( array( '#EEF4F7', '#242527', '#35845D', '#233252', '#F9F9F9', ), /* translators: This is the name for a color scheme */ 'Medium' ); // Dark add_color_palette( array( '#1F2527', '#FFFFFF', '#9FD3E8', '#FBE6AA', '#364043', ), /* translators: This is the name for a color scheme */ 'Dark' );