25 lines
682 B
JavaScript
25 lines
682 B
JavaScript
// Fonction pour déterminer si une couleur est claire ou sombre
|
|
export function isColorLight(color) {
|
|
// Si pas de couleur, considérer comme claire
|
|
if (!color) return true;
|
|
|
|
// Convertir hex en RGB
|
|
let hex = color.replace("#", "");
|
|
if (hex.length === 3) {
|
|
hex = hex
|
|
.split("")
|
|
.map((char) => char + char)
|
|
.join("");
|
|
}
|
|
|
|
const r = parseInt(hex.substr(0, 2), 16);
|
|
const g = parseInt(hex.substr(2, 2), 16);
|
|
const b = parseInt(hex.substr(4, 2), 16);
|
|
|
|
// Calculer la luminance relative (formule standard)
|
|
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;
|
|
|
|
// Si luminance > 0.5, la couleur est claire
|
|
return luminance > 0.5;
|
|
}
|