fix(sovereignty): replace Google CDN modal images with self-hosted WebPs + update Tailwind compromise section

This commit is contained in:
2026-07-28 21:43:05 +02:00
parent e9600953c0
commit 94728a7d76
4 changed files with 12 additions and 12 deletions
+6 -6
View File
@@ -221,17 +221,17 @@
</p>
<div class="space-y-6">
<!-- Compromiso 1: Tailwind CSS por CDN -->
<div class="p-6 bg-white/20 dark:bg-white/5 border border-white/10 rounded-2xl">
<!-- Compromiso 1: Tailwind CSS compilado en lugar de CDN -->
<div class="p-6 bg-emerald-500/10 border border-emerald-500/20 rounded-2xl">
<h3 class="font-bold text-lg dark:text-white mb-2 flex items-center gap-2">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" fill="currentColor" class="icon text-amber-500" aria-hidden="true"><path d="M40 120 480 880 920 120ZM178 200H782L480 720ZM480.0 240.0Q497 240 508.5 251.5Q520 263 520.0 280.0Q520 297 508.5 308.5Q497 320 480.0 320.0Q463 320 451.5 308.5Q440 297 440.0 280.0Q440 263 451.5 251.5Q463 240 480.0 240.0ZM440 360H520V560H440ZM480 460Z"/></svg>
Tailwind CSS mediante CDN de desarrollo
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" fill="currentColor" class="icon text-emerald-500" aria-hidden="true"><path d="M344 60 268 188 124 220 138 368 40 480 138 592 124 740 268 772 344 900 480 842 616 900 692 772 836 740 822 592 920 480 822 368 836 220 692 188 616 60 480 118ZM378 162 480 206 584 162 640 258 750 284 740 396 814 480 740 566 750 678 640 702 582 798 480 754 376 798 320 702 210 678 220 566 146 480 220 396 210 282 320 258ZM480 480ZM438 338 664 564 608 622 438 452 352 536 296 480Z"/></svg>
Tailwind CSS compilado (Build Step Asumido)
</h3>
<p class="text-sm text-slate-600 dark:text-slate-400 leading-relaxed mb-3">
<strong>El problema:</strong> El script de Tailwind en línea pesa en torno a los 100 KB transferidos y compila las clases en el navegador del usuario en tiempo real. Compilar y empaquetar CSS en producción reduciría este peso a unos 10-15 KB.
<strong>La optimización:</strong> Migramos de Tailwind CDN (~100 KB que compilaba las clases en el navegador del usuario en cada visita) a un build con Tailwind CLI. El CSS final minificado (`css/styles.css`) pesa en torno a 24 KB e incluye solo las clases realmente utilizadas.
</p>
<p class="text-sm text-slate-700 dark:text-slate-300 leading-relaxed">
<strong>El compromiso:</strong> Elegimos mantener este sitio sin pasos de construcción (no-build setup) para garantizar que cualquiera pueda descargar el código, hacer doble clic en <code>index.html</code> y ver el sitio funcionando al instante sin instalar dependencias de Node.js. Esto prolonga la vida útil del código (impide la obsolescencia de dependencias de build) a cambio de un ligero impacto de descarga.
<strong>El compromiso:</strong> Asumimos un paso de construcción (`npm run build`) y un commit que contiene tanto el CSS compilado como el legible (`css/source.css`) para que el sitio funcione directamente sin Node.js instalado. Esto sacrifica un poco de la pureza "cero build" a cambio de ahorrar ~76 KB en cada primera visita y eliminar la compilación JIT en el navegador.
</p>
</div>
+2 -2
View File
@@ -1159,7 +1159,7 @@
</div>
<img
src="https://lh3.googleusercontent.com/aida-public/AB6AXuA8RWItHd5HSWHY1TZGhviEiYL0nH49aw4shoKawpqU6-sXM8PS5yl17suDdKzrYINIOcJ6UMBjTl-c66Ul8JUBHK9PNN0cXxr_1selPrAOi0plM8CipkLw1D-0QUKa05GZg7AzHFCCYWLdicp0_M6TMYPWiEu7cdxASk_G9GTfhUXkNQKjFA0qrxqtqdDAzG-gpLV-XOs7L3hELHIUam_iE_0w4i5DNlONlsACvbS5kTTDB7FOFb7SAMKe0VH_9c5J3F0eQyyjokw"
src="images/ai-pipeline.webp"
alt="AI Knowledge Pipeline"
loading="lazy"
decoding="async"
@@ -1273,7 +1273,7 @@
</div>
<img
src="https://lh3.googleusercontent.com/aida-public/AB6AXuDfqsuP4x2xr1tNEyjnxJ4D517oj2e5uvU9_41GuMiygljVgzuSLFs-teeZfNDCD7jP8ShaU_Vgc_L0qzjAtd5I-8-oVtoxi8ih81LLt3l5IM6-RvPCVAuoIx9jK7q9SvAcvet8d5Fg9YQCndNdiKbWHXgyEkD9ARj0x7EAdyzsGThzWbcVHof2YHZjw3aXpVV7sq0YrQqsQ07WON23OSALCIHo6W80FBSEUydUs6yvDyEoT-XJlLHO_xKX4xS8J4x38c1nhEDIuiw"
src="images/chefgpt.webp"
alt="ChefGPT"
loading="lazy"
decoding="async"
+2 -2
View File
@@ -1131,7 +1131,7 @@
</div>
<img
src="https://lh3.googleusercontent.com/aida-public/AB6AXuA8RWItHd5HSWHY1TZGhviEiYL0nH49aw4shoKawpqU6-sXM8PS5yl17suDdKzrYINIOcJ6UMBjTl-c66Ul8JUBHK9PNN0cXxr_1selPrAOi0plM8CipkLw1D-0QUKa05GZg7AzHFCCYWLdicp0_M6TMYPWiEu7cdxASk_G9GTfhUXkNQKjFA0qrxqtqdDAzG-gpLV-XOs7L3hELHIUam_iE_0w4i5DNlONlsACvbS5kTTDB7FOFb7SAMKe0VH_9c5J3F0eQyyjokw"
src="images/ai-pipeline.webp"
alt="AI Knowledge Pipeline"
loading="lazy"
decoding="async"
@@ -1244,7 +1244,7 @@
</div>
<img
src="https://lh3.googleusercontent.com/aida-public/AB6AXuDfqsuP4x2xr1tNEyjnxJ4D517oj2e5uvU9_41GuMiygljVgzuSLFs-teeZfNDCD7jP8ShaU_Vgc_L0qzjAtd5I-8-oVtoxi8ih81LLt3l5IM6-RvPCVAuoIx9jK7q9SvAcvet8d5Fg9YQCndNdiKbWHXgyEkD9ARj0x7EAdyzsGThzWbcVHof2YHZjw3aXpVV7sq0YrQqsQ07WON23OSALCIHo6W80FBSEUydUs6yvDyEoT-XJlLHO_xKX4xS8J4x38c1nhEDIuiw"
src="images/chefgpt.webp"
alt="ChefGPT"
loading="lazy"
decoding="async"
+2 -2
View File
@@ -1129,7 +1129,7 @@
</div>
<img
src="https://lh3.googleusercontent.com/aida-public/AB6AXuA8RWItHd5HSWHY1TZGhviEiYL0nH49aw4shoKawpqU6-sXM8PS5yl17suDdKzrYINIOcJ6UMBjTl-c66Ul8JUBHK9PNN0cXxr_1selPrAOi0plM8CipkLw1D-0QUKa05GZg7AzHFCCYWLdicp0_M6TMYPWiEu7cdxASk_G9GTfhUXkNQKjFA0qrxqtqdDAzG-gpLV-XOs7L3hELHIUam_iE_0w4i5DNlONlsACvbS5kTTDB7FOFb7SAMKe0VH_9c5J3F0eQyyjokw"
src="images/ai-pipeline.webp"
alt="AI Knowledge Pipeline"
loading="lazy"
decoding="async"
@@ -1243,7 +1243,7 @@
</div>
<img
src="https://lh3.googleusercontent.com/aida-public/AB6AXuDfqsuP4x2xr1tNEyjnxJ4D517oj2e5uvU9_41GuMiygljVgzuSLFs-teeZfNDCD7jP8ShaU_Vgc_L0qzjAtd5I-8-oVtoxi8ih81LLt3l5IM6-RvPCVAuoIx9jK7q9SvAcvet8d5Fg9YQCndNdiKbWHXgyEkD9ARj0x7EAdyzsGThzWbcVHof2YHZjw3aXpVV7sq0YrQqsQ07WON23OSALCIHo6W80FBSEUydUs6yvDyEoT-XJlLHO_xKX4xS8J4x38c1nhEDIuiw"
src="images/chefgpt.webp"
alt="ChefGPT"
loading="lazy"
decoding="async"