refactor: replace hardcoded hex colors with theme tokens, move data/ to root
- Add --color-green-mid token (#4a7a55) to @theme for dimmer stat values
- Replace all text-[#hex]/bg-[#hex] arbitrary values with named tokens:
text-green, text-green-light, text-green-sec, text-green-muted,
text-green-dark, text-green-mid, text-text, bg-card, bg-bg, border-border
- Replace rgba(34,197,94,X) inline styles with bg-green/X opacity modifiers
- Convert single-prop style={{ borderColor/background }} to className
- Fix SVG stroke="#dff5e8" → stroke="currentColor"
- Use CSS variables in globals.css base styles (background-color, color)
- Move app/data/wikipedia/ → data/ (project root, not inside Next.js app dir)
- Update Dockerfile, seed.ts, scrape-wikipedia.ts paths accordingly
- Remove unused app/data/world_cup.csv
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"groups": [
|
||||
{
|
||||
"name": "Group 1",
|
||||
"teams": [
|
||||
"France",
|
||||
"Mexico",
|
||||
"Argentina",
|
||||
"Chile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group 2",
|
||||
"teams": [
|
||||
"Yugoslavia",
|
||||
"Brazil",
|
||||
"Bolivia"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group 3",
|
||||
"teams": [
|
||||
"Romania",
|
||||
"Peru",
|
||||
"Uruguay"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Group 4",
|
||||
"teams": [
|
||||
"United States",
|
||||
"Belgium",
|
||||
"Paraguay"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,605 @@
|
||||
{
|
||||
"matches": [
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 1",
|
||||
"date": "1930-07-13",
|
||||
"time": "15:00",
|
||||
"team1": "France",
|
||||
"team2": "Mexico",
|
||||
"score": {
|
||||
"ft": [
|
||||
4,
|
||||
1
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "L. Laurent",
|
||||
"minute": 19
|
||||
},
|
||||
{
|
||||
"name": "Langiller",
|
||||
"minute": 40
|
||||
},
|
||||
{
|
||||
"name": "Maschinot",
|
||||
"minute": 43
|
||||
},
|
||||
{
|
||||
"name": "Maschinot",
|
||||
"minute": 87
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Carreño",
|
||||
"minute": 70
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Pocitos, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 1",
|
||||
"date": "1930-07-15",
|
||||
"time": "16:00",
|
||||
"team1": "Argentina",
|
||||
"team2": "France",
|
||||
"score": {
|
||||
"ft": [
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Monti",
|
||||
"minute": 81
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Parque Central, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 1",
|
||||
"date": "1930-07-16",
|
||||
"time": "14:45",
|
||||
"team1": "Chile",
|
||||
"team2": "Mexico",
|
||||
"score": {
|
||||
"ft": [
|
||||
3,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Vidal",
|
||||
"minute": 3
|
||||
},
|
||||
{
|
||||
"name": "Vidal",
|
||||
"minute": 65
|
||||
},
|
||||
{
|
||||
"name": "M. Rosas",
|
||||
"minute": 52,
|
||||
"owngoal": true
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Parque Central, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 1",
|
||||
"date": "1930-07-19",
|
||||
"time": "12:50",
|
||||
"team1": "Chile",
|
||||
"team2": "France",
|
||||
"score": {
|
||||
"ft": [
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Subiabre",
|
||||
"minute": 67
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 1",
|
||||
"date": "1930-07-19",
|
||||
"time": "15:00",
|
||||
"team1": "Argentina",
|
||||
"team2": "Mexico",
|
||||
"score": {
|
||||
"ft": [
|
||||
6,
|
||||
3
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 8
|
||||
},
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 17
|
||||
},
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 80
|
||||
},
|
||||
{
|
||||
"name": "Zumelzú",
|
||||
"minute": 12
|
||||
},
|
||||
{
|
||||
"name": "Zumelzú",
|
||||
"minute": 55
|
||||
},
|
||||
{
|
||||
"name": "Varallo",
|
||||
"minute": 53
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "M. Rosas",
|
||||
"minute": 42,
|
||||
"penalty": true
|
||||
},
|
||||
{
|
||||
"name": "M. Rosas",
|
||||
"minute": 65
|
||||
},
|
||||
{
|
||||
"name": "Gayón",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 1",
|
||||
"date": "1930-07-22",
|
||||
"time": "14:45",
|
||||
"team1": "Argentina",
|
||||
"team2": "Chile",
|
||||
"score": {
|
||||
"ft": [
|
||||
3,
|
||||
1
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 12
|
||||
},
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 13
|
||||
},
|
||||
{
|
||||
"name": "M. Evaristo",
|
||||
"minute": 51
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Subiabre",
|
||||
"minute": 15
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 2",
|
||||
"date": "1930-07-14",
|
||||
"time": "12:45",
|
||||
"team1": "Yugoslavia",
|
||||
"team2": "Brazil",
|
||||
"score": {
|
||||
"ft": [
|
||||
2,
|
||||
1
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Tirnanić",
|
||||
"minute": 21
|
||||
},
|
||||
{
|
||||
"name": "Bek",
|
||||
"minute": 30
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Preguinho",
|
||||
"minute": 62
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Parque Central, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 2",
|
||||
"date": "1930-07-17",
|
||||
"time": "12:45",
|
||||
"team1": "Yugoslavia",
|
||||
"team2": "Bolivia",
|
||||
"score": {
|
||||
"ft": [
|
||||
4,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Bek",
|
||||
"minute": 60
|
||||
},
|
||||
{
|
||||
"name": "Bek",
|
||||
"minute": 67
|
||||
},
|
||||
{
|
||||
"name": "Marjanović",
|
||||
"minute": 65
|
||||
},
|
||||
{
|
||||
"name": "Vujadinović",
|
||||
"minute": 85
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Parque Central, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 2",
|
||||
"date": "1930-07-20",
|
||||
"time": "13:00",
|
||||
"team1": "Brazil",
|
||||
"team2": "Bolivia",
|
||||
"score": {
|
||||
"ft": [
|
||||
4,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Moderato",
|
||||
"minute": 37
|
||||
},
|
||||
{
|
||||
"name": "Moderato",
|
||||
"minute": 73
|
||||
},
|
||||
{
|
||||
"name": "Preguinho",
|
||||
"minute": 57
|
||||
},
|
||||
{
|
||||
"name": "Preguinho",
|
||||
"minute": 83
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 3",
|
||||
"date": "1930-07-14",
|
||||
"time": "14:50",
|
||||
"team1": "Romania",
|
||||
"team2": "Peru",
|
||||
"score": {
|
||||
"ft": [
|
||||
3,
|
||||
1
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Deșu",
|
||||
"minute": 1
|
||||
},
|
||||
{
|
||||
"name": "Stanciu",
|
||||
"minute": 79
|
||||
},
|
||||
{
|
||||
"name": "Kovács",
|
||||
"minute": 89
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "De Souza",
|
||||
"minute": 75
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Pocitos, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 3",
|
||||
"date": "1930-07-18",
|
||||
"time": "14:30",
|
||||
"team1": "Uruguay",
|
||||
"team2": "Peru",
|
||||
"score": {
|
||||
"ft": [
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Castro",
|
||||
"minute": 65
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 3",
|
||||
"date": "1930-07-21",
|
||||
"time": "14:50",
|
||||
"team1": "Uruguay",
|
||||
"team2": "Romania",
|
||||
"score": {
|
||||
"ft": [
|
||||
4,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Dorado",
|
||||
"minute": 7
|
||||
},
|
||||
{
|
||||
"name": "Scarone",
|
||||
"minute": 26
|
||||
},
|
||||
{
|
||||
"name": "Anselmo",
|
||||
"minute": 31
|
||||
},
|
||||
{
|
||||
"name": "Cea",
|
||||
"minute": 35
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 4",
|
||||
"date": "1930-07-13",
|
||||
"time": "15:00",
|
||||
"team1": "United States",
|
||||
"team2": "Belgium",
|
||||
"score": {
|
||||
"ft": [
|
||||
3,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "McGhee",
|
||||
"minute": 23
|
||||
},
|
||||
{
|
||||
"name": "Florie",
|
||||
"minute": 45
|
||||
},
|
||||
{
|
||||
"name": "Patenaude",
|
||||
"minute": 69
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Parque Central, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 4",
|
||||
"date": "1930-07-17",
|
||||
"time": "14:45",
|
||||
"team1": "United States",
|
||||
"team2": "Paraguay",
|
||||
"score": {
|
||||
"ft": [
|
||||
3,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Patenaude",
|
||||
"minute": 10
|
||||
},
|
||||
{
|
||||
"name": "Patenaude",
|
||||
"minute": 15
|
||||
},
|
||||
{
|
||||
"name": "Patenaude",
|
||||
"minute": 50
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Parque Central, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Group stage",
|
||||
"group": "Group 4",
|
||||
"date": "1930-07-20",
|
||||
"time": "15:00",
|
||||
"team1": "Paraguay",
|
||||
"team2": "Belgium",
|
||||
"score": {
|
||||
"ft": [
|
||||
1,
|
||||
0
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Vargas Peña",
|
||||
"minute": 40
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Semi-finals",
|
||||
"date": "1930-07-26",
|
||||
"time": "14:45",
|
||||
"team1": "Argentina",
|
||||
"team2": "United States",
|
||||
"score": {
|
||||
"ft": [
|
||||
6,
|
||||
1
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Monti",
|
||||
"minute": 20
|
||||
},
|
||||
{
|
||||
"name": "Scopelli",
|
||||
"minute": 56
|
||||
},
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 69
|
||||
},
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 87
|
||||
},
|
||||
{
|
||||
"name": "Peucelle",
|
||||
"minute": 80
|
||||
},
|
||||
{
|
||||
"name": "Peucelle",
|
||||
"minute": 85
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Brown",
|
||||
"minute": 89
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Semi-finals",
|
||||
"date": "1930-07-27",
|
||||
"time": "14:45",
|
||||
"team1": "Uruguay",
|
||||
"team2": "Yugoslavia",
|
||||
"score": {
|
||||
"ft": [
|
||||
6,
|
||||
1
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Cea",
|
||||
"minute": 18
|
||||
},
|
||||
{
|
||||
"name": "Cea",
|
||||
"minute": 67
|
||||
},
|
||||
{
|
||||
"name": "Cea",
|
||||
"minute": 72
|
||||
},
|
||||
{
|
||||
"name": "Anselmo",
|
||||
"minute": 20
|
||||
},
|
||||
{
|
||||
"name": "Anselmo",
|
||||
"minute": 31
|
||||
},
|
||||
{
|
||||
"name": "Iriarte",
|
||||
"minute": 61
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Vujadinović",
|
||||
"minute": 4
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
},
|
||||
{
|
||||
"round": "Final",
|
||||
"date": "1930-07-30",
|
||||
"time": "12:45",
|
||||
"team1": "Uruguay",
|
||||
"team2": "Argentina",
|
||||
"score": {
|
||||
"ft": [
|
||||
4,
|
||||
2
|
||||
]
|
||||
},
|
||||
"goals1": [
|
||||
{
|
||||
"name": "Dorado",
|
||||
"minute": 12
|
||||
},
|
||||
{
|
||||
"name": "Cea",
|
||||
"minute": 57
|
||||
},
|
||||
{
|
||||
"name": "Iriarte",
|
||||
"minute": 68
|
||||
},
|
||||
{
|
||||
"name": "Castro",
|
||||
"minute": 89
|
||||
}
|
||||
],
|
||||
"goals2": [
|
||||
{
|
||||
"name": "Peucelle",
|
||||
"minute": 20
|
||||
},
|
||||
{
|
||||
"name": "Stábile",
|
||||
"minute": 37
|
||||
}
|
||||
],
|
||||
"ground": "Estadio Centenario, Montevideo"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"host": "Uruguay",
|
||||
"teams_count": 13,
|
||||
"winner": "Uruguay",
|
||||
"runner_up": "Argentina",
|
||||
"third_place": "United States",
|
||||
"fourth_place": "Yugoslavia"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"stadiums": [
|
||||
{
|
||||
"name": "Estadio Pocitos",
|
||||
"city": "Montevideo"
|
||||
},
|
||||
{
|
||||
"name": "Estadio Parque Central",
|
||||
"city": "Montevideo"
|
||||
},
|
||||
{
|
||||
"name": "Estadio Centenario",
|
||||
"city": "Montevideo"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user