Official logos, brand color palettes, and WCAG 2.1 accessibility reports for 17 professional and amateur hockey leagues worldwide.
leagues/
├── <Country>/
│ └── <League>/
│ ├── logo.* # Official logo (SVG or PNG, highest available resolution)
│ ├── colors.json # Brand colors — primary, secondary, accent + accessible text colors for light & dark mode
│ └── accessibility_report.json # WCAG 2.1 contrast audit for all color pair combos
├── accessibility_audit.txt # Full audit report across all leagues
├── accessibility_audit.py # Script used to generate the audit
└── add_text_colors.py # Script used to compute and write text colors
| League | Full Name | Country/Region | Logo Format |
|---|---|---|---|
| NHL | National Hockey League | Canada & USA | SVG |
| AHL | American Hockey League | Canada & USA | PNG |
| CHL | Canadian Hockey League | Canada | PNG |
| OHL | Ontario Hockey League | Canada | PNG |
| WHL | Western Hockey League | Canada | PNG |
| QMJHL | Quebec Maritimes Junior Hockey League | Canada | PNG |
| ECHL | East Coast Hockey League | USA | SVG |
| NCAA | National Collegiate Athletic Association | USA | SVG |
| SHL | Swedish Hockey League | Sweden | SVG |
| DEL | Deutsche Eishockey Liga (PENNY DEL) | Germany | SVG |
| KHL | Kontinental Hockey League | Russia / Belarus / China / Kazakhstan | PNG |
| LIIGA | Liiga | Finland | PNG |
| NL | National League | Switzerland | PNG |
| SL | Swiss League | Switzerland | PNG |
| Alps HL | Alps Hockey League | Austria / Italy / Slovenia | PNG |
| Czech Extraliga | Extraliga ledního hokeje | Czech Republic | PNG |
| EIHL | Elite Ice Hockey League | United Kingdom | SVG |
Each colors.json follows this structure:
{
"league": "NHL",
"light": {
"primary": "#041E42",
"secondary": "#C8102E",
"accent": "#00A9E0",
"text": {
"on_background": { "color": "#000000", "contrast_ratio": 21.0 },
"on_primary": { "color": "#FFFFFF", "contrast_ratio": 16.54 },
"on_secondary": { "color": "#FFFFFF", "contrast_ratio": 5.88 },
"on_accent": { "color": "#000000", "contrast_ratio": 7.75 }
}
},
"dark": {
"primary": "#00A9E0",
"secondary": "#C8102E",
"accent": "#FFFFFF",
"text": {
"on_background": { "color": "#FFFFFF", "contrast_ratio": 18.92 },
"on_primary": { "color": "#000000", "contrast_ratio": 7.75 },
"on_secondary": { "color": "#FFFFFF", "contrast_ratio": 5.88 },
"on_accent": { "color": "#000000", "contrast_ratio": 21.0 }
}
},
"source": "nhl.com CSS custom properties"
}Each text block provides the highest-contrast readable text color (#FFFFFF or #000000) for every surface — chosen by WCAG 2.1 contrast ratio comparison against the surface color. The contrast_ratio is included for auditability. Dark mode background baseline is #0D1117.
Colors are sourced from official websites, CSS custom properties, and brand guidelines where available.
Each league folder includes an accessibility_report.json with WCAG 2.1 contrast ratios for every color pair combination in both light and dark mode.
| Level | Normal Text | Large Text | UI Components |
|---|---|---|---|
| AA | ≥ 4.5:1 | ≥ 3.0:1 | ≥ 3.0:1 |
| AAA | ≥ 7.0:1 | ≥ 4.5:1 | — |
| League | Light Mode | Dark Mode | Overall | Verdict |
|---|---|---|---|---|
| OHL | 86% | 43% | 64% | Needs Work |
| WHL | 76% | 52% | 64% | Needs Work |
| QMJHL | 76% | 52% | 64% | Needs Work |
| NCAA | 76% | 52% | 64% | Needs Work |
| LIIGA | 57% | 71% | 64% | Needs Work |
| AlpsHL | 76% | 52% | 64% | Needs Work |
| CHL | 57% | 62% | 60% | Needs Work |
| KHL | 67% | 52% | 60% | Needs Work |
| SL | 57% | 62% | 60% | Needs Work |
| AHL | 48% | 62% | 55% | Needs Work |
| SHL | 57% | 43% | 50% | Needs Work |
| DEL | 48% | 52% | 50% | Needs Work |
| NHL | 43% | 52% | 48% | Poor |
| NL | 43% | 52% | 48% | Poor |
| ECHL | 38% | 43% | 40% | Poor |
| Czech Extraliga | 38% | 43% | 40% | Poor |
| EIHL | 38% | 43% | 40% | Poor |
Scores reflect the % of color-pair checks (foreground/background combos) that pass at least AA level across normal text, large text, and UI component criteria.
To regenerate the audit:
python3 accessibility_audit.py