Контраст відносної яскравості
Обчисліть контраст відносної яскравості двох кольорів RGB із трьома восьмибітними каналами.
def contrast_ratio(left, right):
def luminance(rgb):
if type(rgb) not in (list, tuple) or len(rgb) != 3:
raise ValueError("rgb.container")
rgb = tuple(rgb)
if len(rgb) != 3 or any(type(c) is not int or not 0 <= c <= 255 for c in rgb):
raise ValueError("rgb.channel")
channels = [c / 255 for c in rgb]
linear = [c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055)**2.4
for c in channels]
return sum(c * w for c, w in zip(linear, (0.2126, 0.7152, 0.0722)))
a, b = sorted((luminance(left), luminance(right)))
return (b + 0.05) / (a + 0.05)Проєкт
Перевірте чорний і білий, однакові кольори й перестановку аргументів, відхиляючи нецілі канали та вихід за межі без твердження про повну оцінку доступності.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
def contrast_ratio(left, right):
def luminance(rgb):
if type(rgb) not in (list, tuple) or len(rgb) != 3:
raise ValueError("rgb.container")
rgb = tuple(rgb)
if len(rgb) != 3 or any(type(c) is not int or not 0 <= c <= 255 for c in rgb):
raise ValueError("rgb.channel")
channels = [c / 255 for c in rgb]
linear = [c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055)**2.4
for c in channels]
return sum(c * w for c, w in zip(linear, (0.2126, 0.7152, 0.0722)))
a, b = sorted((luminance(left), luminance(right)))
return (b + 0.05) / (a + 0.05)Пов’яжіть обчислення кольору з інтерфейсом, який воно описує
LumaGauge — програма для кодування з ШІ у Windows для перевірки змін інтерфейсу, залежних від обчислень кольору. Відкрийте проєкт і опишіть елемент, тло та стан, які слід дослідити. Підключений помічник може допомогти перевірити код і обговорити правку, а ви зберігаєте відображений інтерфейс та його фактичні дані в центрі завдання.
Приклад luminance.py підказує цільовий запит щодо розрахунку контрасту. Запитайте про походження значень кольорів і відповідність кольорам, які зрештою відображаються. Застосунок може перетворювати значення перед відображенням, тому самої допоміжної функції недостатньо для вирішення візуального питання. Використайте приклад як контекст проєкту, потім простежте результат до компонента, який його використовує, і поведінки, на яку він впливає.
Модель ШІ без обмежень можна обрати через підтримувану кінцеву точку, сумісну з OpenAI, або Anthropic, яка її пропонує. Налаштований сервіс надає можливості моделі, підтримку інструментів і всі обмеження. Після перевірки запропонованої зміни запустіть числові перевірки й дослідіть відповідні стани екрана. Урахуйте остаточні передній план і тло, не покладаючись лише на дизайн-токени. Цей процес допомагає відрізнити дефект обчислення від неправильних даних або проблеми представлення, що потребує іншого виправлення.
Перевірка поведінки програми, пов’язаної з кольорами
Чи сертифікує інтерфейс коефіцієнт із допоміжної функції?
Ні. Значення описує надані кольори за припущеннями обчислення. Перевірте фактично відображений стан і критерії для елемента. Одне числове значення не встановлює доступності всього екрана чи застосунку.
Що робити, якщо прозорість CSS змінює видимий колір?
Простежте фактичні передній план і тло, перш ніж вважати вихідні токени остаточними даними. Перевірте відображений елемент і всі задіяні шари. З’ясуйте, чи обчислення отримує кольори, які бачить користувач, а не попереднє дизайн-значення.
Які дані корисні для перевірки обчислення?
Використайте відомі еталонні пари, однакові кольори й значення на допустимих межах каналів. Додайте неправильні контейнери та значення каналів для перевірки відхилення. Порівнюйте з незалежним очікуваним значенням, а не просто записуйте результат нової функції.
Чи змінювати допоміжну функцію, чи палітру теми?
Спочатку визначте, чи невідповідність походить від формули, її даних або задуманого дизайну. Кожне джерело потребує іншої зміни. Перевірте сусідні компоненти, якщо змінюється спільне значення палітри, бо їхній контраст теж може змінитися.
LumaGauge · Оновлено 2026-10-25