jaime-gaming.github.io

Visión general

Qué es jaime-gaming.com, qué incluye y cómo convive con la documentación en el mismo sitio.

Última revisión 5 min de lectura Editar esta página en GitHub

jaime-gaming.com es el sitio personal de Jaime Gaming, publicado con Cloudflare Pages. La documentación que estás leyendo es una sección suya, en /docs/: comparte dominio, repositorio, despliegue, cabecera y pie, y hereda su estética —paleta, tipografías, animaciones y estructura de componentes—.

Qué incluye

  • Diseño oscuro adaptable a móvil, con perfil en directo, tarjetas visuales y animaciones; respeta la preferencia de movimiento reducido.
  • Interfaz en español e inglés.
  • Lista de repositorios públicos de la cuenta jaime-gaming, incluidos los forks. No se muestran repositorios de organizaciones. Los datos se actualizan cada diez minutos.
  • Página de detalle por repositorio, con enlaces al proyecto y lectura de su README cuando está disponible.
  • Calendario de contribuciones diario, navegable con teclado y seleccionable con toque.
  • Estado y actividad de Discord mediante Lanyard.
  • Blog generado desde Markdown. El build también elimina las páginas de posts que ya no tienen fuente.

Estructura

content/                    # Fuentes editables
  home.fragment.html        # Secciones de inicio
  projects.fragment.html    # Listado de proyectos
  contact.fragment.html     # Contacto compartido entre inicio y /contact/
  404.fragment.html         # Página de error y detalle de proyectos
  blog/*.md                 # Posts en Markdown
scripts/
  layout.mjs                # Plantilla HTML compartida
  build.mjs                 # Genera páginas estáticas y limpia posts obsoletos
assets/css/style.css        # Estilos
assets/js/i18n.js           # Textos ES/EN
assets/js/main.js           # Sincronización, calendario y presencia
index.html, projects/, blog/, contact/   # Páginas generadas; no editar a mano

La regla importante: content/ y scripts/ se editan; el resto se genera. Las páginas index.html, projects/, blog/ y contact/ se sobrescriben en cada build.

La paleta que hereda esta documentación

Todo el sistema de diseño vive en assets/css/style.css, en las variables de :root:

:root {
  color-scheme: dark;
  --bg: #0d100d;
  --surface: #151915;
  --surface-raised: #1d231c;
  --text: #edf0e8;
  --text-dim: #adb5a7;
  --text-faint: #8b9584;
  --accent: #c8eb85;
  --border: #30382c;
  --font: "DM Sans", system-ui, sans-serif;
  --font-display: "Space Grotesk", var(--font);
  --font-mono: "IBM Plex Mono", monospace;
  --maxw: 1040px;
  --nav-height: 72px;
}

Las tres tipografías tienen un papel fijo:

Tipografía Para qué
Space Grotesk Titulares y cifras destacadas (--font-display)
DM Sans Cuerpo de texto (--font)
IBM Plex Mono Microetiquetas, código y datos (--font-mono)

El sistema de movimiento

Todas las animaciones están dentro de @media (prefers-reduced-motion: no-preference) y hay un bloque reduce que las desactiva todas:

@media (prefers-reduced-motion: no-preference) {
  a, button { transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
  .reveal.in-view { animation: reveal-in 400ms ease both; }
  .hero__typed::after { animation: caret 1s steps(2, start) infinite; }
  @keyframes reveal-in { from { transform: translateY(6px); } to { transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

El revelado por scroll lo hace un IntersectionObserver con umbral 0.08, que añade .in-view una sola vez y deja de observar el elemento.

Cómo se relaciona con esta documentación

La documentación ya no es un sitio aparte. Vive en el mismo repositorio, se genera en el mismo build y se publica bajo el mismo dominio; lo que conserva es su generador propio, porque una guía necesita sidebar, índice lateral y buscador que una portada no tiene.

Aspecto Web principal Esta documentación
Propósito Portfolio y presencia Documentación técnica
Contenido Fragmentos HTML + posts Markdown por proyecto e idioma
Datos En vivo desde la API de GitHub y Lanyard Estático, escrito a mano
Layout Secciones apiladas a 1040 px Tres columnas: sidebar, contenido, TOC
Paleta y animaciones Las define Las hereda idénticas
i18n data-i18n + #pageTranslations El mismo mecanismo
Publicación Raíz del dominio, jaime-gaming.com Subcarpeta /docs/ del mismo despliegue

El conmutador de idioma funciona igual en las dos zonas: la preferencia se guarda en la misma clave lang de localStorage, así que el idioma elegido en la portada se mantiene al entrar en /docs/ y al revés.

Licencia

El código del sitio se publica bajo licencia ISC, declarada en su package.json. El repositorio no incluye un fichero LICENSE propio: los únicos textos de licencia que trae son los de las librerías de terceros que se agrupan en assets/vendor/ (Marked, DOMPurify, Lucide y Simple Icons), y esas conservan las suyas.

Seguir leyendo en el repositorio

Esta guía resume y ordena. Esto es lo que hay en el repositorio, con sus tamaños reales, por si quieres ir a la fuente.

Documento Tamaño Qué es
assets/js/main.js 69 KB La lógica de la portada: tarjetas, calendario de contribuciones, revelado al hacer scroll y el enrutado
assets/data/github.json 54 KB La instantánea commiteada de los repositorios
assets/data/contributions.json 53 KB La instantánea commiteada del calendario de contribuciones
tests/site.test.mjs 37 KB Las 29 pruebas del sitio (26 declaradas, dos de ellas parametrizadas en bucle)
assets/js/i18n.js 30 KB El conmutador ES ↔ EN y las traducciones
assets/css/style.css 28 KB La hoja de la que está clonada la estética de esta documentación
index.html 24 KB La portada
README.md 12 KB La presentación y las decisiones del generador
content/home.fragment.html 12 KB El fragmento de portada que el build inyecta
scripts/build.mjs 10 KB El generador estático
scripts/layout.mjs 7 KB La plantilla común
content/blog/lanzamiento-wave.md 6 KB La entrada del blog sobre Wave
lanzamiento-wave.en.md 5 KB La misma entrada en inglés
404.html 6 KB El respaldo del enrutado por cliente: sirve las páginas por repositorio
tests/preview.test.mjs 2 KB Las pruebas del servidor de previsualización
package.json 700 B Los tres scripts, incluido sync:contributions

Nota

Las dos instantáneas de assets/data/ están commiteadas a propósito: la portada se renderiza con lo que hay en el repositorio y no depende de que GitHub responda en ese momento. npm run sync:contributions las refresca.

Recorrido de la guía

Documentación escrita a mano para este sitio, basada en el README y los docs del repositorio.