feat: consolidate test structure and enhance header visibility across themes
This commit is contained in:
51
scripts/contrast_check.py
Normal file
51
scripts/contrast_check.py
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Calculate the exact contrast ratio for the new white header text."""
|
||||
|
||||
|
||||
def calculate_contrast_ratio():
|
||||
"""Calculate contrast ratio between dark background and white text."""
|
||||
|
||||
def get_luminance(color_str):
|
||||
"""Calculate relative luminance of a color."""
|
||||
if not color_str or not color_str.startswith("#"):
|
||||
return 0.5
|
||||
try:
|
||||
rgb = tuple(int(color_str[i : i + 2], 16) for i in (1, 3, 5))
|
||||
# Calculate relative luminance using sRGB formula
|
||||
return (0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]) / 255
|
||||
except (ValueError, IndexError):
|
||||
return 0.5
|
||||
|
||||
# Our new header colors
|
||||
header_bg = "#1e1e1e" # Very dark gray
|
||||
header_fg = "#ffffff" # Pure white
|
||||
|
||||
bg_lum = get_luminance(header_bg)
|
||||
fg_lum = get_luminance(header_fg)
|
||||
|
||||
# Calculate proper contrast ratio
|
||||
lighter = max(bg_lum, fg_lum)
|
||||
darker = min(bg_lum, fg_lum)
|
||||
contrast_ratio = (lighter + 0.05) / (darker + 0.05)
|
||||
|
||||
print("=== HEADER CONTRAST ANALYSIS ===")
|
||||
print(f"Background: {header_bg} (luminance: {bg_lum:.3f})")
|
||||
print(f"Foreground: {header_fg} (luminance: {fg_lum:.3f})")
|
||||
print(f"Contrast ratio: {contrast_ratio:.2f}:1")
|
||||
print()
|
||||
|
||||
# WCAG AA guidelines
|
||||
if contrast_ratio >= 7.0:
|
||||
print("✅ EXCELLENT contrast (WCAG AAA compliant)")
|
||||
elif contrast_ratio >= 4.5:
|
||||
print("✅ GOOD contrast (WCAG AA compliant)")
|
||||
elif contrast_ratio >= 3.0:
|
||||
print("⚠️ FAIR contrast (minimum acceptable)")
|
||||
else:
|
||||
print("❌ POOR contrast")
|
||||
|
||||
return contrast_ratio
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
calculate_contrast_ratio()
|
||||
Reference in New Issue
Block a user