Files
kimai/assets/js/widgets/KimaiColor.js

39 lines
1.0 KiB
JavaScript

/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/*!
* [KIMAI] KimaiColor: handle colors
*/
export default class KimaiColor {
/**
* @param {string} hexcolor
* @return {string}
*/
static calculateContrastColor(hexcolor)
{
if (hexcolor.slice(0, 1) === '#') {
hexcolor = hexcolor.slice(1);
}
if (hexcolor.length === 3) {
hexcolor = hexcolor.split('').map(function (hex) { return hex + hex; }).join('');
}
const r = parseInt(hexcolor.substring(0,2),16);
const g = parseInt(hexcolor.substring(2,4),16);
const b = parseInt(hexcolor.substring(4,6),16);
// https://gomakethings.com/dynamically-changing-the-text-color-based-on-background-color-contrast-with-vanilla-js/
const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
return (yiq >= 128) ? '#000000' : '#ffffff';
}
}