/** * Add color scheme targets for Beaver Builder elements. * * @filter rock_colors * @since 1.0.0 * * @param array $colors * * @return array */ function rock_bb_colors($colors) { $bb_colors = array('primary_text_color' => array('css' => array('.fl-callout-text, .fl-rich-text' => array('color' => '%1$s'))), 'button_color' => array('css' => array('a.fl-button, a.fl-button:visited, .content-area .fl-builder-content a.fl-button, .content-area .fl-builder-content a.fl-button:visited' => array('background-color' => '%1$s', 'border-color' => '%1$s')), 'rgba_css' => array('a.fl-button:hover, a.fl-button:active, a.fl-button:focus, a.fl-button:visited:hover, a.fl-button:visited:active, a.fl-button:visited:focus, .content-area .fl-builder-content a.fl-button:hover, .content-area .fl-builder-content a.fl-button:active, .content-area .fl-builder-content a.fl-button:focus, .content-area .fl-builder-content a.fl-button:visited:hover, .content-area .fl-builder-content a.fl-button:visited:active, .content-area .fl-builder-content a.fl-button:visited:focus' => array('background-color' => 'rgba(%1$s, 0.8)', 'border-color' => 'rgba(%1$s, 0.8)'))), 'button_text_color' => array('css' => array('a.fl-button a.fl-button:hover, a.fl-button:active, a.fl-button:focus, a.fl-button:visited, a.fl-button:visited:hover, a.fl-button:visited:active, a.fl-button:visited:focus, .content-area .fl-builder-content a.fl-button, .content-area .fl-builder-content a.fl-button *, .content-area .fl-builder-content a.fl-button:visited, .content-area .fl-builder-content a.fl-button:visited *' => array('color' => '%1$s')))); return rock_array_replace_recursive($colors, $bb_colors); }
/** * Add color scheme targets for WooCommerce elements. * * @filter rock_colors * @since 1.0.0 * * @param array $colors * * @return array */ function rock_wc_colors($colors) { $wc_colors = array('button_color' => array('css' => array('.woocommerce button.button.alt, .woocommerce a.button, .woocommerce a.button.alt, .woocommerce #respond input#submit, .woocommerce .product span.onsale' => array('background-color' => '%1$s', 'border-color' => '%1$s')), 'rgba_css' => array('.woocommerce button.button.alt:hover, .woocommerce button.button.alt:active, .woocommerce button.button.alt:focus, .woocommerce a.button:hover, .woocommerce a.button:active, .woocommerce a.button:focus, .woocommerce a.button.alt:hover, .woocommerce a.button.alt:active, .woocommerce a.button.alt:focus, .woocommerce #respond input#submit:hover' => array('background-color' => 'rgba(%1$s, 0.8)', 'border-color' => 'rgba(%1$s, 0.8)'))), 'button_text_color' => array('css' => array('.woocommerce button.button.alt, .woocommerce button.button.alt:hover, .woocommerce a.button, .woocommerce a.button:visited, .woocommerce a.button:hover, .woocommerce a.button:visited:hover, .woocommerce a.button.alt, .woocommerce a.button.alt:visited, .woocommerce a.button.alt:hover, .woocommerce a.button.alt:visited:hover, .woocommerce #respond input#submit, .woocommerce #respond input#submit:hover, .woocommerce .product span.onsale' => array('color' => '%1$s')))); return rock_array_replace_recursive($colors, $wc_colors); }
/** * Class constructor. */ public function __construct() { /** * Filter the registered color settings. * * @since 1.0.0 * * @var array */ $this->colors = (array) apply_filters('rock_colors', array('header_textcolor' => array('label' => esc_html__('Site Title Text', 'rock'), 'default' => '#ffffff', 'section' => 'colors-header', 'active_callback' => 'display_header_text', 'css' => array('.site-title a, .site-title a:visited' => array('color' => '%1$s')), 'rgba_css' => array('.site-title a:hover, .site-title a:visited:hover' => array('color' => 'rgba(%1$s, 0.8)'))), 'tagline_text_color' => array('label' => esc_html__('Tagline Text', 'rock'), 'default' => '#ffffff', 'section' => 'colors-header', 'active_callback' => 'display_header_text', 'css' => array('.site-description' => array('color' => '%1$s'))), 'hero_text_color' => array('label' => esc_html__('Hero Text', 'rock'), 'default' => '#ffffff', 'section' => 'colors-header', 'priority' => 20, 'css' => array('.hero, .hero .widget h1, .hero .widget h2, .hero .widget h3, .hero .widget h4, .hero .widget h5, .hero .widget h6, .hero .widget p, .hero .widget blockquote, .hero .widget cite, .hero .widget table, .hero .widget ul, .hero .widget ol, .hero .widget li, .hero .widget dd, .hero .widget dt, .hero .widget address, .hero .widget code, .hero .widget pre, .hero .widget .widget-title, .hero .page-header h1' => array('color' => '%1$s'))), 'menu_text_color' => array('label' => esc_html__('Text', 'rock'), 'default' => '#ffffff', 'section' => 'colors-menu', 'css' => array('.main-navigation ul li a, .main-navigation ul li a:visited, .main-navigation ul li a:hover, .main-navigation ul li a:visited:hover' => array('color' => '%1$s'), '.main-navigation .sub-menu .menu-item-has-children > a::after' => array('border-right-color' => '%1$s', 'border-left-color' => '%1$s'), '.menu-toggle div' => array('background-color' => '%1$s')), 'rgba_css' => array('.main-navigation ul li a:hover' => array('color' => 'rgba(%1$s, 0.8)'))), 'heading_text_color' => array('label' => esc_html__('Heading Text', 'rock'), 'description' => esc_html__('Post titles, widget titles, form labels, table headers and buttons.', 'rock'), 'default' => '#353535', 'section' => 'colors-content', 'css' => array('h1, h2, h3, h4, h5, h6, label, legend, table th, dl dt, .entry-title, .entry-title a, .entry-title a:visited, .widget-title' => array('color' => '%1$s')), 'rgba_css' => array('.entry-title a:hover, .entry-title a:visited:hover, .entry-title a:focus, .entry-title a:visited:focus, .entry-title a:active, .entry-title a:visited:active' => array('color' => 'rgba(%1$s, 0.8)'))), 'primary_text_color' => array('label' => esc_html__('Primary Text', 'rock'), 'description' => esc_html__('Paragraphs, lists, menu links, quotes and tables.', 'rock'), 'default' => '#252525', 'section' => 'colors-content', 'css' => array('body, input, select, textarea, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="number"]:focus, input[type="tel"]:focus, input[type="range"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="color"]:focus, textarea:focus' => array('color' => '%1$s')), 'rgba_css' => array('hr' => array('background-color' => 'rgba(%1$s, 0.1)', 'border-color' => 'rgba(%1$s, 0.1)'), 'input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], input[type="range"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="color"], textarea' => array('color' => 'rgba(%1$s, 0.5)', 'border-color' => 'rgba(%1$s, 0.1)'), 'select, fieldset, blockquote, pre, code, abbr, acronym, .hentry table th, .hentry table td' => array('border-color' => 'rgba(%1$s, 0.1)'), '.hentry table tr:hover td' => array('background-color' => 'rgba(%1$s, 0.05)'))), 'secondary_text_color' => array('label' => esc_html__('Secondary Text', 'rock'), 'description' => esc_html__('Post bylines, comment counts, post footers and quote footers.', 'rock'), 'default' => '#686868', 'section' => 'colors-content', 'css' => array('blockquote, .entry-meta, .entry-footer, .comment-meta .says, .logged-in-as' => array('color' => '%1$s'))), 'footer_widget_heading_text_color' => array('label' => esc_html__('Widget Heading Text', 'rock'), 'default' => '#353535', 'section' => 'colors-footer', 'active_callback' => 'rock_has_active_footer_sidebars', 'css' => array('.site-footer .widget-title, .site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6' => array('color' => '%1$s'))), 'footer_widget_text_color' => array('label' => esc_html__('Widget Text', 'rock'), 'default' => '#252525', 'section' => 'colors-footer', 'active_callback' => 'rock_has_active_footer_sidebars', 'css' => array('.site-footer .widget' => array('color' => '%1$s'))), 'footer_menu_text_color' => array('label' => esc_html__('Menu Text', 'rock'), 'default' => '#686868', 'section' => 'colors-footer', 'priority' => 20, 'active_callback' => 'rock_has_footer_menu', 'css' => array('.footer-menu ul li a, .footer-menu ul li a:visited' => array('color' => '%1$s'), '.site-info-wrapper .social-menu a' => array('background-color' => '%1$s')), 'rgba_css' => array('.footer-menu ul li a:hover, .footer-menu ul li a:visited:hover' => array('color' => 'rgba(%1$s, 0.8)'))), 'footer_text_color' => array('label' => esc_html__('Copyright Text', 'rock'), 'default' => '#686868', 'section' => 'colors-footer', 'priority' => 30, 'css' => array('.site-info-wrapper .site-info-text' => array('color' => '%1$s'))), 'link_color' => array('label' => esc_html__('Link Text', 'rock'), 'default' => '#ff6663', 'section' => 'colors-content', 'css' => array('a, a:visited, .entry-title a:hover, .entry-title a:visited:hover .cat-links a, .tags-links a, .post-edit-link, .comments-link a, .edit-link a, .entry-footer a' => array('color' => '%1$s'), '.social-menu a:hover' => array('background-color' => '%1$s')), 'rgba_css' => array('a:hover, a:visited:hover, a:focus, a:visited:focus, a:active, a:visited:active' => array('color' => 'rgba(%1$s, 0.8)'), '.comment-list li.bypostauthor' => array('border-color' => 'rgba(%1$s, 0.2)'))), 'button_color' => array('label' => esc_html__('Background', 'rock'), 'default' => '#ff6663', 'section' => 'colors-buttons', 'css' => array('button, a.button, a.button:visited, input[type="button"], input[type="reset"], input[type="submit"], .site-info-wrapper .social-menu a:hover' => array('background-color' => '%1$s', 'border-color' => '%1$s')), 'rgba_css' => array('button:hover, button:active, button:focus, a.button:hover, a.button:active, a.button:focus, a.button:visited:hover, a.button:visited:active, a.button:visited:focus, input[type="button"]:hover, input[type="button"]:active, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:active, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:active, input[type="submit"]:focus' => array('background-color' => 'rgba(%1$s, 0.8)', 'border-color' => 'rgba(%1$s, 0.8)'))), 'button_text_color' => array('label' => esc_html__('Text', 'rock'), 'default' => '#ffffff', 'section' => 'colors-buttons', 'css' => array('button, button:hover, button:active, button:focus, a.button, a.button:hover, a.button:active, a.button:focus, a.button:visited, a.button:visited:hover, a.button:visited:active, a.button:visited:focus, input[type="button"], input[type="button"]:hover, input[type="button"]:active, input[type="button"]:focus, input[type="reset"], input[type="reset"]:hover, input[type="reset"]:active, input[type="reset"]:focus, input[type="submit"], input[type="submit"]:hover, input[type="submit"]:active, input[type="submit"]:focus' => array('color' => '%1$s'))), 'background_color' => array('label' => esc_html__('Page Background', 'rock'), 'default' => '#f5f5f5', 'section' => 'colors-content', 'css' => array('body' => array('background-color' => '%1$s'))), 'content_background_color' => array('label' => esc_html__('Content Background', 'rock'), 'default' => '#ffffff', 'section' => 'colors-content', 'css' => array('.hentry, .widget, #page > .page-title-container' => array('background-color' => '%1$s'))), 'hero_background_color' => array('label' => esc_html__('Hero Background', 'rock'), 'default' => '#0b3954', 'section' => 'colors-header', 'priority' => 20, 'css' => array(rock_get_hero_image_selector() => array('background-color' => '%1$s')), 'rgba_css' => array(rock_get_hero_image_selector() => array('-webkit-box-shadow' => 'inset 0 0 0 9999em', '-moz-box-shadow' => 'inset 0 0 0 9999em', 'box-shadow' => 'inset 0 0 0 9999em', 'color' => sprintf('rgba(%%1$s, %s)', $this->get_color_overlay_transparency_value())))), 'menu_background_color' => array('label' => esc_html__('Background', 'rock'), 'default' => '#0b3954', 'section' => 'colors-menu', 'css' => array('.main-navigation-container, .main-navigation.open, .main-navigation ul ul, .main-navigation .sub-menu' => array('background-color' => '%1$s'))), 'footer_widget_background_color' => array('label' => esc_html__('Widgets Background', 'rock'), 'default' => '#0b3954', 'section' => 'colors-footer', 'active_callback' => 'rock_has_active_footer_sidebars', 'css' => array('.site-footer' => array('background-color' => '%1$s'))), 'footer_widget_content_background_color' => array('label' => esc_html__('Widget Content Background', 'rock'), 'default' => '#ffffff', 'section' => 'colors-footer', 'active_callback' => 'rock_has_active_footer_sidebars', 'css' => array('.site-footer .widget' => array('background-color' => '%1$s'))), 'footer_background_color' => array('label' => esc_html__('Footer Background', 'rock'), 'default' => '#f5f5f5', 'section' => 'colors-footer', 'priority' => 30, 'css' => array('.site-info-wrapper' => array('background-color' => '%1$s'), '.site-info-wrapper .social-menu a, .site-info-wrapper .social-menu a:visited, .site-info-wrapper .social-menu a:hover, .site-info-wrapper .social-menu a:visited:hover' => array('color' => '%1$s'))))); if (!$this->colors) { return; } /** * Custom color scheme stub. * * The `_custom` color scheme key is used only when the user * diverges from a predefined scheme. This stub is required * and not filterable. * * @since 1.0.0 * * @var array */ $custom_scheme = array('_custom' => array('label' => sprintf('- %s -', esc_html__('Custom', 'rock')))); /** * Default color scheme. * * The `default` color scheme is required and not filterable. * If you want to customize values in this scheme, do so via * a `rock_colors` filter in your Child Theme. * * @since 1.0.0 * * @var array */ $default_scheme = array('default' => array('label' => esc_html__('Default', 'rock'), 'colors' => array_combine(array_keys($this->colors), wp_list_pluck($this->colors, 'default')))); $color_schemes = array('blush' => array('label' => esc_html_x('Blush', 'color scheme name', 'rock'), 'base' => '#cc494f'), 'bronze' => array('label' => esc_html_x('Bronze', 'color scheme name', 'rock'), 'base' => '#b1a18b'), 'canary' => array('label' => esc_html_x('Canary', 'color scheme name', 'rock'), 'base' => '#e9c46a'), 'cool' => array('label' => esc_html_x('Cool', 'color scheme name', 'rock'), 'base' => '#78c3fb'), 'dark' => array('label' => esc_html_x('Dark', 'color scheme name', 'rock'), 'base' => '#222222'), 'iguana' => array('label' => esc_html_x('Iguana', 'color scheme name', 'rock'), 'base' => '#62bf7c'), 'muted' => array('label' => esc_html_x('Muted', 'color scheme name', 'rock'), 'base' => '#3e4c75'), 'plum' => array('label' => esc_html_x('Plum', 'color scheme name', 'rock'), 'base' => '#5d5179'), 'rose' => array('label' => esc_html_x('Rose', 'color scheme name', 'rock'), 'base' => '#f49390'), 'tangerine' => array('label' => esc_html_x('Tangerine', 'color scheme name', 'rock'), 'base' => '#fc9e4f'), 'turquoise' => array('label' => esc_html_x('Turquoise', 'color scheme name', 'rock'), 'base' => '#48e5c2')); /** * Use default colors as starting point for every scheme. */ foreach ($color_schemes as &$args) { $args['colors'] = $default_scheme['default']['colors']; } if (!is_child_theme()) { $overrides = array('blush' => array('colors' => array('link_color' => $color_schemes['blush']['base'], 'button_color' => $color_schemes['blush']['base'], 'hero_background_color' => $color_schemes['blush']['base'], 'menu_background_color' => $color_schemes['blush']['base'], 'footer_widget_background_color' => $color_schemes['blush']['base'])), 'bronze' => array('colors' => array('link_color' => $color_schemes['bronze']['base'], 'button_color' => $color_schemes['bronze']['base'], 'hero_background_color' => $color_schemes['bronze']['base'], 'menu_background_color' => $color_schemes['bronze']['base'], 'footer_widget_background_color' => $color_schemes['bronze']['base'])), 'canary' => array('colors' => array('link_color' => $color_schemes['canary']['base'], 'button_color' => $color_schemes['canary']['base'], 'hero_background_color' => $color_schemes['canary']['base'], 'menu_background_color' => $color_schemes['canary']['base'], 'footer_widget_background_color' => $color_schemes['canary']['base'])), 'cool' => array('colors' => array('link_color' => $color_schemes['cool']['base'], 'button_color' => $color_schemes['cool']['base'], 'hero_background_color' => $color_schemes['cool']['base'], 'menu_background_color' => $color_schemes['cool']['base'], 'footer_widget_background_color' => $color_schemes['cool']['base'])), 'dark' => array('colors' => array('tagline_text_color' => '#999999', 'heading_text_color' => '#ffffff', 'primary_text_color' => '#e5e5e5', 'secondary_text_color' => '#c1c1c1', 'footer_widget_heading_text_color' => '#ffffff', 'footer_widget_text_color' => '#ffffff', 'background_color' => '#222222', 'content_background_color' => '#333333', 'hero_background_color' => '#282828', 'menu_background_color' => '#333333', 'footer_widget_content_background_color' => '#333333', 'footer_widget_background_color' => '#282828', 'footer_background_color' => '#222222')), 'iguana' => array('colors' => array('link_color' => $color_schemes['iguana']['base'], 'button_color' => $color_schemes['iguana']['base'], 'hero_background_color' => $color_schemes['iguana']['base'], 'menu_background_color' => $color_schemes['iguana']['base'], 'footer_widget_background_color' => $color_schemes['iguana']['base'])), 'muted' => array('colors' => array('heading_text_color' => '#4f5875', 'primary_text_color' => '#4f5875', 'secondary_text_color' => '#888c99', 'footer_widget_heading_text_color' => '#4f5875', 'footer_widget_text_color' => '#4f5875', 'footer_menu_text_color' => $color_schemes['muted']['base'], 'footer_text_color' => '#4f5875', 'link_color' => $color_schemes['muted']['base'], 'button_color' => $color_schemes['muted']['base'], 'background_color' => '#d5d6e0', 'hero_background_color' => '#5a6175', 'menu_background_color' => '#5a6175', 'footer_widget_background_color' => '#5a6175', 'footer_background_color' => '#d5d6e0')), 'plum' => array('colors' => array('link_color' => $color_schemes['plum']['base'], 'button_color' => $color_schemes['plum']['base'], 'hero_background_color' => $color_schemes['plum']['base'], 'menu_background_color' => $color_schemes['plum']['base'], 'footer_widget_background_color' => $color_schemes['plum']['base'])), 'rose' => array('colors' => array('link_color' => $color_schemes['rose']['base'], 'button_color' => $color_schemes['rose']['base'], 'hero_background_color' => $color_schemes['rose']['base'], 'menu_background_color' => $color_schemes['rose']['base'], 'footer_widget_background_color' => $color_schemes['rose']['base'])), 'tangerine' => array('colors' => array('link_color' => $color_schemes['tangerine']['base'], 'button_color' => $color_schemes['tangerine']['base'], 'hero_background_color' => $color_schemes['tangerine']['base'], 'menu_background_color' => $color_schemes['tangerine']['base'], 'footer_widget_background_color' => $color_schemes['tangerine']['base'])), 'turquoise' => array('colors' => array('link_color' => $color_schemes['turquoise']['base'], 'button_color' => $color_schemes['turquoise']['base'], 'hero_background_color' => $color_schemes['turquoise']['base'], 'menu_background_color' => $color_schemes['turquoise']['base'], 'footer_widget_background_color' => $color_schemes['turquoise']['base']))); $color_schemes = rock_array_replace_recursive($color_schemes, $overrides); } /** * Filter the available color schemes. * * @since 1.0.0 * * @var array */ $color_schemes = (array) apply_filters('rock_color_schemes', $color_schemes); // Remove any invalid color schemes $color_schemes = array_filter($color_schemes, array($this, 'is_valid_color_scheme_array')); ksort($color_schemes); $this->color_schemes = $custom_scheme + $default_scheme + $color_schemes; add_action('customize_register', array($this, 'colors')); add_action('customize_register', array($this, 'color_scheme')); add_action('customize_register', array($this, 'color_overlay_transparency')); add_action('customize_controls_enqueue_scripts', array($this, 'colors_control_js')); add_action('customize_controls_print_footer_scripts', array($this, 'colors_preview_css')); add_action('wp_enqueue_scripts', array($this, 'enqueue_colors_inline_css'), 11); add_action('after_setup_theme', array($this, 'header')); add_action('after_setup_theme', array($this, 'background')); }