1
/* global colorScheme, Color */
3
* Add a listener to the Color Scheme control to update other color controls to new values/defaults.
4
* Also trigger an update of the Color Scheme CSS when a color is changed.
8
var cssTemplate = wp.template( 'twentysixteen-color-scheme' ),
11
'page_background_color',
14
'secondary_text_color'
18
'page_background_color',
21
'secondary_text_color'
24
api.controlConstructor.select = api.Control.extend( {
26
if ( 'color_scheme' === this.id ) {
27
this.setting.bind( 'change', function( value ) {
28
var colors = colorScheme[value].colors;
30
// Update Background Color.
31
var color = colors[0];
32
api( 'background_color' ).set( color );
33
api.control( 'background_color' ).container.find( '.color-picker-hex' )
34
.data( 'data-default-color', color )
35
.wpColorPicker( 'defaultColor', color );
37
// Update Page Background Color.
39
api( 'page_background_color' ).set( color );
40
api.control( 'page_background_color' ).container.find( '.color-picker-hex' )
41
.data( 'data-default-color', color )
42
.wpColorPicker( 'defaultColor', color );
46
api( 'link_color' ).set( color );
47
api.control( 'link_color' ).container.find( '.color-picker-hex' )
48
.data( 'data-default-color', color )
49
.wpColorPicker( 'defaultColor', color );
51
// Update Main Text Color.
53
api( 'main_text_color' ).set( color );
54
api.control( 'main_text_color' ).container.find( '.color-picker-hex' )
55
.data( 'data-default-color', color )
56
.wpColorPicker( 'defaultColor', color );
58
// Update Secondary Text Color.
60
api( 'secondary_text_color' ).set( color );
61
api.control( 'secondary_text_color' ).container.find( '.color-picker-hex' )
62
.data( 'data-default-color', color )
63
.wpColorPicker( 'defaultColor', color );
69
// Generate the CSS for the current Color Scheme.
70
function updateCSS() {
71
var scheme = api( 'color_scheme' )(),
73
colors = _.object( colorSchemeKeys, colorScheme[ scheme ].colors );
75
// Merge in color scheme overrides.
76
_.each( colorSettings, function( setting ) {
77
colors[ setting ] = api( setting )();
80
// Add additional color.
82
colors.border_color = Color( colors.main_text_color ).toCSS( 'rgba', 0.2 );
85
css = cssTemplate( colors );
87
api.previewer.send( 'update-color-scheme-css', css );
90
// Update the CSS whenever a color setting is changed.
91
_.each( colorSettings, function( setting ) {
92
api( setting, function( setting ) {
93
setting.bind( updateCSS );