Kontras luminansi relatif
Hitung kontras luminansi relatif dua warna RGB tiga kanal delapan bit.
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)Proyek
Uji hitam-putih, warna sama dan argumen terbalik, serta tolak kanal bukan bilangan bulat atau di luar rentang tanpa menyebut rasio sebagai penilaian aksesibilitas lengkap.
Tinjau sebelum menerapkan
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
Model
Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.
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)Hubungkan perhitungan warna dengan antarmuka yang digambarkannya
LumaGauge adalah perangkat lunak pemrograman AI Windows untuk meninjau perubahan antarmuka yang bergantung pada perhitungan warna. Buka proyek dan jelaskan elemen, latar belakang, serta keadaan yang perlu diselidiki. Asisten yang terhubung dapat membantu memeriksa kode terkait dan membahas perubahan, sementara Anda tetap menjadikan antarmuka hasil render dan masukan sebenarnya sebagai pusat tugas.
Contoh luminance.py menyarankan permintaan terfokus tentang perhitungan kontras. Tanyakan asal nilai warnanya dan apakah sesuai dengan warna yang akhirnya ditampilkan. Aplikasi dapat mengubah nilai itu sebelum perenderan, sehingga fungsi pembantu saja tidak dapat menjawab persoalan visual. Gunakan contoh sebagai konteks proyek, lalu telusuri hasil hingga komponen yang menggunakannya dan perilaku yang dipengaruhinya.
Model AI tanpa batasan dapat dipilih melalui endpoint kompatibel OpenAI atau Anthropic yang didukung dan menawarkannya. Layanan yang dikonfigurasi menyediakan kemampuan model, dukungan alat, dan pembatasan yang berlaku. Setelah meninjau perubahan usulan, jalankan pemeriksaan numerik dan periksa keadaan layar terkait. Perhitungkan warna latar depan dan belakang akhir, bukan hanya mengandalkan token desain. Alur kerja ini membantu membedakan cacat perhitungan dari masukan yang salah atau masalah penyajian yang membutuhkan perbaikan berbeda.
Meninjau perilaku perangkat lunak terkait warna
Apakah rasio dari fungsi pembantu menyertifikasi antarmuka?
Tidak. Nilai itu menggambarkan warna yang diberikan menurut asumsi perhitungan. Tinjau keadaan hasil render sebenarnya dan kriteria yang berlaku untuk elemen tersebut. Satu hasil numerik tidak membuktikan aksesibilitas di seluruh layar atau aplikasi.
Bagaimana jika opasitas CSS mengubah warna yang terlihat?
Telusuri warna latar depan dan belakang efektif sebelum menganggap token sumber sebagai masukan akhir. Periksa elemen hasil render dan lapisan yang terlibat. Tanyakan apakah perhitungan menerima warna yang dilihat pengguna, bukan nilai desain pada tahap sebelumnya.
Masukan apa yang berguna untuk menguji perhitungan?
Gunakan pasangan acuan yang diketahui, warna identik, dan nilai pada batas kanal yang diterima. Sertakan wadah data dan nilai kanal yang tidak valid untuk memeriksa penolakan. Bandingkan hasil dengan nilai harapan independen, bukan sekadar mencatat keluaran fungsi baru.
Haruskah saya menyesuaikan fungsi pembantu atau palet tema?
Pertama identifikasi apakah ketidaksesuaian berasal dari rumus, masukannya, atau desain visual yang dimaksud. Masing-masing mengarah ke perubahan berbeda. Tinjau komponen terkait jika nilai palet bersama berubah, karena hubungan kontrasnya juga dapat berubah.
LumaGauge · Diperbarui 2026-10-25