123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- <?php declare( strict_types = 1 ); ?>
- <?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'
- );
|