9 Commits
Author SHA1 Message Date
itziarZG a2eff3e8e8 perf(carbon): remove dead Material Symbols @font-face + subset Space Grotesk and Instrument Serif to used characters only 2026-07-28 21:59:10 +02:00
itziarZG 7dfe54318e chore(merge): integrate main perf optimizations into develop
Resolves merge conflicts when bringing origin/main into develop:
- css/styles.css: keep built/minified Tailwind output, append develop's
  layout-stability CSS (scrollbar-gutter + body.modal-open)
- js/main.js: keep main's aria-hidden + aria-selected a11y hardening, restore
  develop's tabsContainer.scrollIntoView and body.modal-open modal pattern
  (with preventScroll + getScrollbarWidth fallback for non-gutter browsers)
- index*.html / huella.html: take main's meta+analytics+defer heavy work as
  base, restore develop's inline SVG icons (replaces Material Symbols spans)
  and add favicon link
- privacidad*.html: take main's rewritten multi-language versions, add favicon
- keep develop's tab DOM fixes (each tab-pane shows its own content;
  Trabajo Anterior details nested inside tab-proyectos)
- keep develop's deletion of fonts/material-symbols-outlined.woff2
2026-07-28 19:56:31 +02:00
itziarZG 5c3f7a7aa2 fix(lab): repair tab DOM structure, restore missing content, stop page jumps
- Fix malformed class attribute on tab buttons container (was breaking
  pb-4 mb-8 dark:border-slate-800 classes; tab buttons sat glued to
  content with no spacing)
- Move 'Trabajo Anterior' details back inside #tab-proyectos where it
  belongs (had been orphaned into #tab-contents after earlier balance
  fixes, causing it to render on every tab)
- Close tab-proyectos correctly so Proyectos and Notes panes show their
  own content instead of inheriting display:none from Infraestructura
- initTabs() now scrolls smoothly to the tab buttons container on switch
  to prevent the 'jump' caused by varying content height
2026-07-28 19:32:28 +02:00
itziarZG 29d215495d perf(carbon): replace Material Symbols with inline SVGs and self-host WebP images
- Remove fonts/material-symbols-outlined.woff2 (4MB external font eliminated)
- Inline 38 Material Symbols as SVG paths (extracted to icon-paths.json)
- Convert 5 Google-hosted images to self-hosted WebP
- Add favicon.svg (adaptive auto_awesome icon, light + dark)
- Add scrollbar-gutter: stable + body.modal-open to prevent modal jumps
- Clean up preload links to fonts no longer used

Net reduction: ~3.9MB external dependencies, zero CLS on icon swap
2026-07-28 19:32:15 +02:00
itziarZG 3c2545d898 perf: reduce TBT by removing blur and font preload
- Drop Instrument Serif italic preload (Lighthouse flags ~700 ms savings)
- Remove backdrop-filter from .glass; use solid translucent background
  to avoid repaints triggered when hero image loads
- Add defer to main.js
2026-07-26 21:51:43 +02:00
itziarZG e4cac196df perf: optimize LCP, TBT and font payload
- Convert hero background to <img> with width/height/fetchpriority=high
  so Lighthouse detects it as the LCP element
- Defer Umami analytics via requestIdleCallback to reduce TBT
- Drop non-critical font preloads (Material Symbols, Space Grotesk 400);
  keep only Instrument Serif italic which is visible above the fold
- Remove unused font weights (300/500/600) from Space Grotesk
2026-07-26 21:46:49 +02:00
itziarZG e287861dd7 perf: replace Tailwind CDN with minified CSS build
- Add package.json, tailwind.config.js and css/source.css with @tailwind directives
- Generate css/styles.css (24 KB) via Tailwind CLI v3.4
- Remove cdn.tailwindcss.com and inline tailwind.config from all HTML pages
- Add preload of css/styles.css
- Add cross-language hreflang alternates in HTML and sitemap.xml
2026-07-26 21:30:21 +02:00
itziarZG 3b6352bdca feat: improve SEO and accessibility 2026-07-26 21:04:53 +02:00
itziarZG 88b7742291 feat: refresh portfolio, add analytics and privacy policy
- Update project cards with honest statuses: Navidrome and n8n+Ollama
  moved to 'On the roadmap', Open Source marked 'Not started',
  Visualización Datos Baleares marked 'Migration pending (on Vercel)'.
- Remove past-dated Notes post (2 de Junio, 2026 / Próximamente) with
  never-written content.
- Add Cases Tancades as 5th project: open housing diagnostic for
  Balears crossing INE, Airbnb and Govern Balear HUT registries.
- Add self-hosted Umami analytics tracker to all 4 pages with
  data-domains='www.itziarzameza.dev' to exclude localhost/file://
  visits from analytics.
- Add RGPD-compliant privacy policy in ES/CA/EN
  (privacidad.html, privacidad-ca.html, privacidad-en.html) covering
  controller, data collected, purpose, legal basis, retention,
  user rights, and explicit no-cookies statement.
- Link to privacy policy from footer of all 4 pages.
2026-07-21 19:41:07 +02:00