A comprehensive MagicMirror² module that displays football league standings from multiple competitions including the FIFA 2026 World Cup , UEFA Champions League (UCL), UEFA Europa League (UEL), UEFA Europa Conference League (ECL), English Premier League (EPL), German Bundesliga,French La Ligue , Italian Serie A , Spanish Primera División, Portuguese Liga, SPFL (Scottish Professional Football League) and Scottish Championship (SPFLC) as well as most other European and World wide leagues, with data sourced from the official website of the BBC Sport with robust fallback data and detailed error handling.
- Author: gitgitaway
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
UEFA Display & Data Quality Enhancements:
- ✅ Equal-height split view - Results and Future Fixtures sections now display exactly 4 fixtures each without scrolling
- ✅ Fixed partial team names - "Newcastle" → "Newcastle United", "Atletico" → "Atletico Madrid", "Leverkusen" → "Bayer Leverkusen"
- ✅ Enhanced corruption detection - Properly identifies and repairs fixtures like "Dortmund vs Borussia Dortmund"
- ✅ Improved team name matching - Less aggressive normalization preserves team identity while detecting duplicates
- 🎨 Optimized fixture display - Reduced header/row padding to maximize visible content
See CHANGELOG.md for complete details.
- Multi-League Support: Track SPFL, EPL, Bundesliga, La Liga, and 20+ other national leagues.
- Tournament Modes: Dedicated views for UEFA Champions League and FIFA World Cup 2026.
- Intelligent Logo Mapping: Automatic team crest resolution for over 1,700 teams.
- Performance Optimized: Server-side processing, intelligent caching, and smooth CSS transitions.
- Accessible Design: Full ARIA support and responsive typography.
- Stale Data Protection: Automatic warning indicators if live data cannot be fetched.
- Auto-Cycling: Automatically rotate between different leagues or tournament groups.
- MagicMirror²: v2.1.0 or newer (tested on 2.32.0)
- Node.js: v14+ (tested on v22.14.0)
- Network access: HTTPS egress to
www.bbc.co.uk - Runtime NPM dependencies: None (uses Node core modules and MagicMirror core only)
- Optional Dev Tools (for local lint/format only; not required to run):
eslint^8prettier^2
- Navigate to your MagicMirror's modules folder:
cd ~/MagicMirror/modules/- Clone this repository:
git clone https://github.com/gitgitaway/MMM-MyTeams-LeagueTable.gitTo use this module, add it to the modules array in the ~/MagicMirror/config/config.js file:
{
module: "MMM-MyTeams-LeagueTable",
position: "top_right",
config: {
selectedLeagues: ["SCOTLAND_PREMIERSHIP"]
}
},{
module: "MMM-MyTeams-LeagueTable",
position: "top_right",
header: "Football Standings",
config: {
updateInterval: 30 * 60 * 1000,
selectedLeagues: ["SCOTLAND_PREMIERSHIP", "ENGLAND_PREMIER_LEAGUE", "UEFA_CHAMPIONS_LEAGUE", "WORLD_CUP_2026"],
autoCycle: true,
cycleInterval: 20000,
highlightTeams: ["Celtic", "Liverpool", "Scotland"],
maxTeams: 12,
showTeamLogos: true,
showForm: true,
formMaxGames: 6,
colored: true,
showLeagueButtons: true,
autoFocusRelevantSubTab: true,
maxTableHeight: 600
}
},See - Configuration User Guide: for further detailed configuration options.
| Option | Default | Description |
|---|---|---|
updateInterval |
1800000 (30m) |
How often to refresh data (in milliseconds). |
selectedLeagues |
["SCOTLAND_PREMIERSHIP"] |
Array of league codes to display. |
highlightTeams |
["Celtic", "Hearts"] |
Array of team names to visually emphasize. |
maxTeams |
36 |
Maximum number of teams to show (0 for all). |
scrollable |
true |
Enable vertical scrolling if max height exceeded. |
maxTableHeight |
460 |
Height in px before scrolling kicks in. |
| Option | Default | Description |
|---|---|---|
showTeamLogos |
true |
Show/hide team crests. |
showPosition |
true |
Show/hide league rank. |
showPlayedGames |
true |
Show games played column. |
showWon / showDrawn / showLost |
true |
Toggle W/D/L columns. |
showGoalsFor / showGoalsAgainst |
true |
Toggle GF/GA columns. |
showGoalDifference |
true |
Show GD column. |
showPoints |
true |
Show points column. |
showForm |
true |
Show recent match results (W/D/L). |
formMaxGames |
6 |
Number of recent games to show in form column. |
colored |
true |
Color-code rows (Promotion/UEFA/Relegation zones). |
showLeagueButtons |
true |
Show/hide the interactive tabs in the header. |
| Option | Default | Description |
|---|---|---|
autoCycle |
false |
If true, automatically rotate through selected leagues. |
cycleInterval |
15000 (15s) |
Time to display each league during auto-cycling. |
autoCycleWcSubtabs |
true |
Allow auto-cycling of World Cup sub-tabs (groups/knockouts). |
wcSubtabCycleInterval |
15000 |
Time to display each WC sub-tab. |
| Option | Default | Description |
|---|---|---|
showWC2026 |
false |
Show World Cup 2026 in league switcher. |
showUEFAleagues |
false |
Show UEFA leagues in league switcher. |
onlyShowWorldCup2026 |
false |
Force module into dedicated World Cup mode. |
autoFocusRelevantSubTab |
true |
Automatically focus on live or upcoming matches. |
showWC2026Groups |
["A"..."L"] |
Array of groups to display. |
showWC2026Knockouts |
["Rd32"..."Final"] |
Knockout rounds to show. |
showUEFAnockouts |
["Playoff"..."Final"] |
UEFA knockout stages to show. |
Use these codes in your selectedLeagues array:
- UK:
SCOTLAND_PREMIERSHIP,SCOTLAND_CHAMPIONSHIP,ENGLAND_PREMIER_LEAGUE - Major Europe:
GERMANY_BUNDESLIGA,SPAIN_LA_LIGA,ITALY_SERIE_A,FRANCE_LIGUE1,NETHERLANDS_EREDIVISIE - Other Europe:
PORTUGAL_PRIMEIRA_LIGA,BELGIUM_PRO_LEAGUE,TURKEY_SUPER_LIG,GREECE_SUPER_LEAGUE,AUSTRIA_BUNDESLIGA,CZECH_LIGA,DENMARK_SUPERLIGAEN,NORWAY_ELITESERIEN,SWEDEN_ALLSVENSKAN,SWITZERLAND_SUPER_LEAGUE,UKRAINE_PREMIER_LEAGUE,ROMANIA_LIGA_I,CROATIA_HNL,SERBIA_SUPER_LIGA,HUNGARY_NBI,POLAND_EKSTRAKLASA - International/UEFA:
UEFA_CHAMPIONS_LEAGUE,UEFA_EUROPA_LEAGUE,UEFA_EUROPA_CONFERENCE_LEAGUE,WORLD_CUP_2026
- How This Module Works: Architectural overview.
- Configuration User Guide: Detailed configuration options.
- Advanced Customization: CSS variables and manual logo mapping.
- Troubleshooting: Common issues and solutions.
- Translation Guide: Language support and localization.
- Accessibility Features: Screen reader and visual aid details.
- World Cup 2026 Guide: Tournament specific details.
- European Leagues Config: Details on European league setup.
- BBC League Pages: Reference list of supported league pages.
- Cache Quickstart: Guide to the module's caching system.
- Mock Data Guide: How to use mock data for testing.
- Shared Request Manager: Technical details of the data fetching system.
- Code of Conduct: Contributor guidelines.
- Changelog: History of changes and versions.
- Final Review: Final implementation review.
- License: MIT License details.
Thanks to the MagicMirror community for inspiration and guidance! Thanks to the BBC for providing free access to their sports pages.
MIT






