Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » RuBoard — Внешний вид / Дополнительный функционал

Модерирует : batva, DimoN

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
if (contrastRatio < THRESHOLD) {
    const [r, g, b] = foregroundColor;
    let hsl = rgbToHsl(r, g, b);
    const adjustmentFactor = Math.max(0, (THRESHOLD - contrastRatio) / THRESHOLD);
 
    // Резко снижаем насыщенность при низком контрасте
    hsl[1] = Math.max(0, hsl[1] - DESATURATE * adjustmentFactor);
 
    // Примерно так:
    if (contrastRatio < 0.7 * THRESHOLD) {
        // Если контраст критически низкий — увеличиваем яркость до максимума
        hsl[2] = Math.min(95, 95); // или даже 100%
    } else if (contrastRatio < THRESHOLD) {
        // Если просто ниже порога — немного осветляем
        hsl[2] = Math.min(100, hsl[2] + LIGHTEN * adjustmentFactor);
    }
 
    // Опционально: установить минимальную яркость
    hsl[2] = Math.max(hsl[2], 40); // Не меньше 40% яркости
 
    el.style.color = `hsl(${hsl[0]}, ${hsl[1]}%, ${hsl[2]}%)`;
    el.dataset.colorAdjusted = "true";
}

Всего записей: 6956 | Зарегистр. 11-02-2020 | Отправлено: 18:56 10-06-2025 | Исправлено: greeple, 19:00 10-06-2025
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Ru.Board » Общие вопросы по Ru.Board » RuBoard — Внешний вид / Дополнительный функционал


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru