Вы можете определить введенный цвет как светлый или темный на основе его яркости.
Здесь вы можете найти формулу , на которую она рассчитана.
Итак, вы можете, например, определить функцию isLight
следующим образом
function isLight(color) {
// Converting hex color to rgb
const [red, green, blue] = hexToRgb(color);
// Determine luminance
const luminance = (0.299 * red + 0.587 * green + 0.114 * blue)/255;
// Returning true if color is light
return luminance > 0.5;
}
// function for converting hex colors to rgb array format
function hexToRgb(hex) {
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? [
parseInt(result[1], 16),
parseInt(result[2], 16),
parseInt(result[3], 16)
] : null;
}
Используя эту функцию, вы можете определить, является ли пользовательский цвет светлым или темным, и, таким образом, установить соответствующий фон