diff --git a/frontend/app/pages/index.vue b/frontend/app/pages/index.vue
index 6d7cec6..5b065bd 100644
--- a/frontend/app/pages/index.vue
+++ b/frontend/app/pages/index.vue
@@ -59,6 +59,66 @@ onMounted(async () => {
+
+
+ {{ t('pages.stats_heading') }}
+
+
+
+
+
+
+
+
50K+
+
{{ t('pages.stat_lines_of_code') }}
+
+
+
+
+
+
+
+
12+
+
{{ t('pages.stat_projects') }}
+
+
+
+
+
+
+
+
∞
+
{{ t('pages.stat_coffee') }}
+
+
+
+
+
+
+
+
28
+
{{ t('pages.stat_board_games') }}
+
+
+
+
+
+
+
+
8+
+
{{ t('pages.stat_years_programming') }}
+
+
+
+
+
+
+
+
150+
+
{{ t('pages.stat_deployments') }}
+
+
+
@@ -153,6 +213,74 @@ onMounted(async () => {
box-shadow: 2px -2px 0px 0px rgba(0, 0, 0, 0.3);
}
+.stats-section {
+ margin-top: 32px;
+}
+
+.stats-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 10px;
+}
+
+.stat-card {
+ position: relative;
+ background: var(--color-background-fore);
+ border: 1px solid var(--color-border-color);
+ box-shadow: 3px -3px 0px 0px var(--color-container-shadow);
+ padding: 14px 10px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ gap: 6px;
+}
+
+.stat-card-corner {
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ border-color: #cfcfcf;
+
+ &.tl { top: -1px; left: -1px; border-top: 2px solid; border-left: 2px solid; }
+ &.tr { top: -1px; right: -1px; border-top: 2px solid; border-right: 2px solid; }
+ &.bl { bottom: -1px; left: -1px; border-bottom: 2px solid; border-left: 2px solid; }
+ &.br { bottom: -1px; right: -1px; border-bottom: 2px solid; border-right: 2px solid; }
+}
+
+.stat-pixel-art {
+ width: 40px;
+ height: 40px;
+ margin-bottom: 4px;
+ fill: var(--color-link);
+ filter: drop-shadow(0 0 6px var(--color-link));
+ image-rendering: pixelated;
+}
+
+.stat-number {
+ font-family: 'Hurmit', monospace;
+ font-size: 1.8rem;
+ color: var(--color-link);
+ text-shadow: 0 0 8px var(--color-link), 0 0 4px var(--color-link);
+ font-weight: bold;
+ letter-spacing: 2px;
+}
+
+.stat-label {
+ font-family: 'Hurmit', monospace;
+ color: var(--color-text);
+ font-size: 0.7rem;
+ line-height: 1.35;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+@media (max-width: 900px) {
+ .stats-grid {
+ grid-template-columns: repeat(2, 1fr);
+ }
+}
+
@media (max-width: 640px) {
.section-title {
font-size: 1.1rem;
@@ -169,5 +297,23 @@ onMounted(async () => {
.project-description {
font-size: 0.82rem;
}
+
+ .stats-grid {
+ grid-template-columns: repeat(2, 1fr);
+ gap: 8px;
+ }
+
+ .stat-card {
+ padding: 10px 6px;
+ }
+
+ .stat-number {
+ font-size: 1.4rem;
+ }
+
+ .stat-pixel-art {
+ width: 32px;
+ height: 32px;
+ }
}
\ No newline at end of file
diff --git a/frontend/i18n/locales/ca.json b/frontend/i18n/locales/ca.json
index 383e24b..912c9d9 100644
--- a/frontend/i18n/locales/ca.json
+++ b/frontend/i18n/locales/ca.json
@@ -28,7 +28,14 @@
}
},
"pages": {
- "projects_heading": "Projectes"
+ "projects_heading": "Projectes",
+ "stats_heading": "Estad\u00edstiques i Info",
+ "stat_lines_of_code": "L\u00ednies de Codi Escrites",
+ "stat_projects": "Projectes Completats",
+ "stat_coffee": "Tasses de Caf\u00e8 Consumides",
+ "stat_board_games": "Jocs de Taula Propis",
+ "stat_years_programming": "Anys Programant",
+ "stat_deployments": "Desplegaments a Producci\u00f3"
},
"prefooter": "Aquesta pàgina web ha sigut construida per un humà.",
"footer": "(C) 2026 Aran Roig. Tots els drets no sé que."
diff --git a/frontend/i18n/locales/en.json b/frontend/i18n/locales/en.json
index 5af7e59..04f4fba 100644
--- a/frontend/i18n/locales/en.json
+++ b/frontend/i18n/locales/en.json
@@ -29,7 +29,14 @@
},
"pages": {
"root": "",
- "projects_heading": "Projects"
+ "projects_heading": "Projects",
+ "stats_heading": "Stats & Info",
+ "stat_lines_of_code": "Lines of Code Written",
+ "stat_projects": "Projects Completed",
+ "stat_coffee": "Cups of Coffee Consumed",
+ "stat_board_games": "Board Games Owned",
+ "stat_years_programming": "Years Programming",
+ "stat_deployments": "Deployments to Production"
},
"prefooter": "This webpage has been made by a human.",
"footer": "(C) 2026 Aran Roig. All rights whatever."
diff --git a/frontend/i18n/locales/es.json b/frontend/i18n/locales/es.json
index 286ff84..401ffaf 100644
--- a/frontend/i18n/locales/es.json
+++ b/frontend/i18n/locales/es.json
@@ -28,7 +28,14 @@
}
},
"pages": {
- "projects_heading": "Proyectos"
+ "projects_heading": "Proyectos",
+ "stats_heading": "Estad\u00edsticas e Info",
+ "stat_lines_of_code": "L\u00edneas de C\u00f3digo Escritas",
+ "stat_projects": "Proyectos Completados",
+ "stat_coffee": "Tazas de Caf\u00e9 Consumidas",
+ "stat_board_games": "Juegos de Mesa Propios",
+ "stat_years_programming": "A\u00f1os Programando",
+ "stat_deployments": "Desplegues a Producci\u00f3n"
},
"prefooter": "Esta página web ha sido construida por un humano.",
"footer": "(C) 2026 Aran Roig. Todos los derechos no se que."