Twenty Twenty: Import the latest changes from GitHub
For a full list of changes since [49216], see https://github.com/WordPress/twentytwentyone/compare/dfe141276ca4b856bbcd748f9da108ddad026c4c...trunk/.
Props poena, melchoyce, luminuu, aristath, jffng, ryelle, kishanjasani, rolfsiebers, sresok, desrosj.
See #51526.
Built from https://develop.svn.wordpress.org/trunk@49247
git-svn-id: http://core.svn.wordpress.org/trunk@49009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-10-20 14:26:06 -04:00
|
|
|
/**
|
|
|
|
* Get luminance from a HEX color.
|
|
|
|
*
|
|
|
|
* @param {string} hex - The hex color.
|
|
|
|
*
|
|
|
|
* @return {number} - Returns the luminance, number between 0 and 255.
|
|
|
|
*/
|
2020-11-12 13:48:08 -05:00
|
|
|
function twentytwentyoneGetHexLum( hex ) { // jshint ignore:line
|
Twenty Twenty: Import the latest changes from GitHub
For a full list of changes since [49216], see https://github.com/WordPress/twentytwentyone/compare/dfe141276ca4b856bbcd748f9da108ddad026c4c...trunk/.
Props poena, melchoyce, luminuu, aristath, jffng, ryelle, kishanjasani, rolfsiebers, sresok, desrosj.
See #51526.
Built from https://develop.svn.wordpress.org/trunk@49247
git-svn-id: http://core.svn.wordpress.org/trunk@49009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-10-20 14:26:06 -04:00
|
|
|
var rgb = twentytwentyoneGetRgbFromHex( hex );
|
|
|
|
return Math.round( ( 0.2126 * rgb.r ) + ( 0.7152 * rgb.g ) + ( 0.0722 * rgb.b ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get RGB from HEX.
|
|
|
|
*
|
|
|
|
* @param {string} hex - The hex color.
|
|
|
|
*
|
|
|
|
* @return {Object} - Returns an object {r, g, b}
|
|
|
|
*/
|
|
|
|
function twentytwentyoneGetRgbFromHex( hex ) {
|
|
|
|
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
|
|
|
|
result;
|
|
|
|
|
|
|
|
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF").
|
|
|
|
hex = hex.replace( shorthandRegex, function( m, r, g, b ) {
|
|
|
|
return r.toString() + r.toString() + g.toString() + g.toString() + b.toString() + b.toString();
|
|
|
|
} );
|
|
|
|
|
|
|
|
result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec( hex );
|
|
|
|
return result ? {
|
|
|
|
r: parseInt( result[1], 16 ),
|
|
|
|
g: parseInt( result[2], 16 ),
|
|
|
|
b: parseInt( result[3], 16 )
|
|
|
|
} : null;
|
|
|
|
}
|