TGViewer
Логово верстальщика Логово верстальщика @webdevlair · 7.91K subscribers
Post #3692 1.16K
👩‍💻 Расчёт идеального контрастного цвета для фона

Реализуйте функцию getContrastColor(hex), которая принимает цвет в HEX-формате (например, "#ffffff") и возвращает либо "black", либо "white" — в зависимости от того, какой цвет текста будет лучше читаться на этом фоне.

Используйте формулу относительной яркости по стандарту WCAG для определения контраста. Это важно для создания доступных UI, кнопок, блоков с текстом и цветовых тем.

Решение задачи🔽

function getContrastColor(hex) {
const r = parseInt(hex.substr(1, 2), 16);
const g = parseInt(hex.substr(3, 2), 16);
const b = parseInt(hex.substr(5, 2), 16);

// Вычисление яркости по формуле WCAG
const brightness = (r * 299 + g * 587 + b * 114) / 1000;

return brightness > 128 ? "black" : "white";
}

// Примеры:
console.log(getContrastColor("#ffffff")); // "black"
console.log(getContrastColor("#000000")); // "white"
console.log(getContrastColor("#3498db")); // "white"
  • 👍 5
More from @webdevlair
  1. Oct 10, 2026Ухожу из ВЕБА в GameDEV. Сделал игру с ИИ на UE5 за 72 ЧАСА. Ну да, очередной «я всё броси…
  2. Oct 9, 2026Post #4686
  3. Oct 9, 2026Реальный факап с Opus Значит, запустил чел Opus с выключенными запросами разрешений. Ожида…
  4. Oct 9, 2026Post #4684
  5. Oct 8, 2026Stack Overflow протрезвел и рассказал, как мы все утонули в ИИ Опросили больше 30 тысяч че…
  6. Oct 8, 2026OpenAI выкатила на GitHub 722 математические статьи — и написали их всё те же модели, толь…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →