MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 298: | Строка 298: | ||
} | } | ||
var r, g, b; | var r, g, b, rgbValues; | ||
// | // Проверка, является ли цвет форматом rgb или rgba | ||
if (color.indexOf(' | if (color.indexOf('rgb') === 0) { | ||
rgbValues = color.match(/\d+/g); | |||
// Если удалось разобрать цвет | |||
if (rgbValues && rgbValues.length >= 3) { | if (rgbValues && rgbValues.length >= 3) { | ||
r = parseInt(rgbValues[0], 10); | r = parseInt(rgbValues[0], 10); | ||
g = parseInt(rgbValues[1], 10); | g = parseInt(rgbValues[1], 10); | ||
b = parseInt(rgbValues[2], 10); | b = parseInt(rgbValues[2], 10); | ||
var brightness = getBrightness(r, g, b); | |||
var darkThreshold = 90; | |||
var brightnessFactor = brightness < darkThreshold ? factor + 0.04 : factor; | |||
r = Math.min(255, Math.floor(r * brightnessFactor)); | |||
g = Math.min(255, Math.floor(g * brightnessFactor)); | |||
b = Math.min(255, Math.floor(b * brightnessFactor)); | |||
return 'rgb(' + r + ', ' + g + ', ' + b + ')'; | |||
} | |||
} | |||
return color; // Возвращаем оригинальный цвет, если он не поддерживается или не удалось разобрать | |||
} | } | ||