diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-07 13:06:14 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-07 13:06:14 +0100 |
| commit | 7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 (patch) | |
| tree | f7453d7dd5cbaaab246e23810b02d3edf1e451be /srcs/wordpress/wp-content/themes/twentytwenty/assets/js/customize-controls.js | |
| parent | c59bdcf77c50cbe89b4a93782cdd6d9e7532080e (diff) | |
| download | ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.gz ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.bz2 ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.zip | |
Added wordpress
Diffstat (limited to 'srcs/wordpress/wp-content/themes/twentytwenty/assets/js/customize-controls.js')
| -rw-r--r-- | srcs/wordpress/wp-content/themes/twentytwenty/assets/js/customize-controls.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/srcs/wordpress/wp-content/themes/twentytwenty/assets/js/customize-controls.js b/srcs/wordpress/wp-content/themes/twentytwenty/assets/js/customize-controls.js new file mode 100644 index 0000000..f3d94a4 --- /dev/null +++ b/srcs/wordpress/wp-content/themes/twentytwenty/assets/js/customize-controls.js @@ -0,0 +1,90 @@ +/* global twentyTwentyBgColors, twentyTwentyColor, jQuery, wp, _ */ +/** + * Customizer enhancements for a better user experience. + * + * Contains extra logic for our Customizer controls & settings. + * + * @since 1.0.0 + */ + +( function() { + // Wait until the customizer has finished loading. + wp.customize.bind( 'ready', function() { + // Add a listener for accent-color changes. + wp.customize( 'accent_hue', function( value ) { + value.bind( function( to ) { + // Update the value for our accessible colors for all areas. + Object.keys( twentyTwentyBgColors ).forEach( function( context ) { + var backgroundColorValue; + if ( twentyTwentyBgColors[ context ].color ) { + backgroundColorValue = twentyTwentyBgColors[ context ].color; + } else { + backgroundColorValue = wp.customize( twentyTwentyBgColors[ context ].setting ).get(); + } + twentyTwentySetAccessibleColorsValue( context, backgroundColorValue, to ); + } ); + } ); + } ); + + // Add a listener for background-color changes. + Object.keys( twentyTwentyBgColors ).forEach( function( context ) { + wp.customize( twentyTwentyBgColors[ context ].setting, function( value ) { + value.bind( function( to ) { + // Update the value for our accessible colors for this area. + twentyTwentySetAccessibleColorsValue( context, to, wp.customize( 'accent_hue' ).get(), to ); + } ); + } ); + } ); + } ); + + /** + * Updates the value of the "accent_accessible_colors" setting. + * + * @since 1.0.0 + * + * @param {string} context The area for which we want to get colors. Can be for example "content", "header" etc. + * @param {string} backgroundColor The background color (HEX value). + * @param {number} accentHue Numeric representation of the selected hue (0 - 359). + * + * @return {void} + */ + function twentyTwentySetAccessibleColorsValue( context, backgroundColor, accentHue ) { + var value, colors; + + // Get the current value for our accessible colors, and make sure it's an object. + value = wp.customize( 'accent_accessible_colors' ).get(); + value = ( _.isObject( value ) && ! _.isArray( value ) ) ? value : {}; + + // Get accessible colors for the defined background-color and hue. + colors = twentyTwentyColor( backgroundColor, accentHue ); + + // Sanity check. + if ( colors.getAccentColor() && 'function' === typeof colors.getAccentColor().toCSS ) { + // Update the value for this context. + value[ context ] = { + text: colors.getTextColor(), + accent: colors.getAccentColor().toCSS(), + background: backgroundColor + }; + + // Get borders color. + value[ context ].borders = colors.bgColorObj + .clone() + .getReadableContrastingColor( colors.bgColorObj, 1.36 ) + .toCSS(); + + // Get secondary color. + value[ context ].secondary = colors.bgColorObj + .clone() + .getReadableContrastingColor( colors.bgColorObj ) + .s( colors.bgColorObj.s() / 2 ) + .toCSS(); + } + + // Change the value. + wp.customize( 'accent_accessible_colors' ).set( value ); + + // Small hack to save the option. + wp.customize( 'accent_accessible_colors' )._dirty = true; + } +}( jQuery ) ); |
