Rendimiento de Animaciones Retro (Scorch v4.1)

Asegura animaciones mecánicas a 60 FPS aceleradas por hardware sin provocar avisos de animaciones no compuestas en Lighthouse ni repintados costosos del árbol de renderizado.

1. Animaciones Aceleradas por GPU

Propiedades recomendadas:

  • transform (translate, scale): compositing directo en GPU.
  • opacity: sin recálculo de geometría de layout.

Propiedades prohibidas en animaciones continuas:

  • width, height, top, left, margin, padding: disparan layout y recalculo de estilos en el hilo principal.

Ejemplo de interacción mecánica Scorch:

/* Transición física de pulsación mecánica */
.btn-mechanical {
  transition: transform 75ms cubic-bezier(0.23, 1, 0.32, 1);
}
.btn-mechanical:hover {
  transform: translate(2px, -2px);
}
.btn-mechanical:active {
  transform: translate(-4px, 4px);
}

2. Parpadeo de Texto por Pasos (step-end)

Para recrear el parpadeo de texto de las máquinas recreativas arcade de los años 80 sin interpolación suave ni borrosidad:

@keyframes pixel-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}
 
.animate-pixel-blink {
  animation: pixel-blink 0.5s step-end infinite;
}

3. Aislamiento de Capas para Canvas y SVGs

Los componentes interactivos pesados (como ArcadeGame.astro o gráficos vectoriales complejos) deben contenerse en capas aisladas:

.retro-canvas-layer {
  contain: layout paint;
  will-change: transform;
}