Componente galería: grid adaptable, ratio y estados

Construye una galería moderna con CSS Grid, recortes consistentes y microinteracciones accesibles.

Una buena galería necesita consistencia de recorte, separación y respuesta a distintos anchos.

Grid con <code>repeat(auto-fit, minmax())</code> resuelve gran parte del layout sin media queries complejas.

Con <code>object-fit</code> y <code>aspect-ratio</code> mantienes miniaturas limpias aunque las imágenes originales sean distintas.

En proyectos más editoriales o inmersivos también puede interesarte llenar un lienzo completo con un número exacto de celdas: ahí CSS sigue mandando en el recorte y el ritmo visual, aunque un pequeño apoyo de JavaScript calcule el reparto final.

  • Galería flexible que se adapta sola.
  • Usa un grid con mínimo por tarjeta para que el navegador calcule cuántas columnas caben.
  • Mantén un gap estable y evita anchuras fijas por tarjeta.
  • Mismo bloque visual para orígenes de imagen distintos.
  • <code>aspect-ratio</code> define el marco y <code>object-fit: cover</code> recorta sin deformar.

Base de layout

Galería flexible que se adapta sola.

Usa un grid con mínimo por tarjeta para que el navegador calcule cuántas columnas caben.

Mantén un gap estable y evita anchuras fijas por tarjeta.

Consistencia visual de miniaturas

Mismo bloque visual para orígenes de imagen distintos.

<code>aspect-ratio</code> define el marco y <code>object-fit: cover</code> recorta sin deformar.

Puedes añadir overlay en hover para mostrar título/acción sin cargar JS extra.

Galerías que llenan el lienzo completo

Cuando el objetivo no es solo listar imágenes, sino construir una superficie visual continua.

Hay galerías que funcionan casi como fondo o escaparate: importa tanto el número de celdas como el ritmo del mosaico. En esos casos, `Grid` define la estructura y `background-size`, `background-position` o `aspect-ratio` mantienen la lectura visual.

Si necesitas encajar exactamente un conjunto cerrado de imágenes en toda la ventana, un cálculo ligero puede decidir columnas y filas mientras CSS sigue resolviendo recorte, gap, overlays y estados hover.

  • Usa `aspect-ratio` si todas las celdas deben conservar proporción fija.
  • Usa `background-image` y `background-size: cover` cuando priorizas relleno uniforme sobre ratio original.
  • Mantén el gap pequeño y consistente para que la retícula se lea como un sistema, no como tarjetas sueltas.
CSS
74

Componente galería: grid adaptable, ratio y estados

Construye una galería moderna con CSS Grid, recortes consistentes y microinteracciones accesibles.

Código del tema: display: grid; gap: 1rem;

📘 Teoría

Base de layout

Galería flexible que se adapta sola.

1

Usa un grid con mínimo por tarjeta para que el navegador calcule cuántas columnas caben.

2

Mantén un gap estable y evita anchuras fijas por tarjeta.

Grid de galería
.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
}

Consistencia visual de miniaturas

Mismo bloque visual para orígenes de imagen distintos.

1

aspect-ratio define el marco y object-fit: cover recorta sin deformar.

2

Puedes añadir overlay en hover para mostrar título/acción sin cargar JS extra.

Thumb estable
.thumb {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 12px;
}
.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

Galerías que llenan el lienzo completo

Cuando el objetivo no es solo listar imágenes, sino construir una superficie visual continua.

Hay galerías que funcionan casi como fondo o escaparate: importa tanto el número de celdas como el ritmo del mosaico. En esos casos, `Grid` define la estructura y `background-size`, `background-position` o `aspect-ratio` mantienen la lectura visual.

Si necesitas encajar exactamente un conjunto cerrado de imágenes en toda la ventana, un cálculo ligero puede decidir columnas y filas mientras CSS sigue resolviendo recorte, gap, overlays y estados hover.

  • Usa `aspect-ratio` si todas las celdas deben conservar proporción fija.
  • Usa `background-image` y `background-size: cover` cuando priorizas relleno uniforme sobre ratio original.
  • Mantén el gap pequeño y consistente para que la retícula se lea como un sistema, no como tarjetas sueltas.

🧪 Aprende probando

Ejemplo Demo: galería responsive Grid auto-fit con hover suave.
Ejemplo Demo interactiva: galería de celdas cuadradas con relleno exacto Explora un mosaico que calcula el reparto de columnas y filas para ocupar todo el lienzo manteniendo celdas cuadradas y overlays limpios.
Ejemplo Demo interactiva: mosaico de fondo con imágenes no cuadradas Observa cómo una galería puede usar `background-image` para cubrir el espacio completo sin deformar el ritmo general del grid.
Ejemplo Demo interactiva: retícula cerrada de 60 miniaturas Compara una galería de número fijo donde el grid busca el mejor reparto posible de columnas y filas sin perder celdas cuadradas ni ritmo visual.

🏁 Retos

Reto Reto: mejorar miniaturas Aplica aspect-ratio 1/1 y object-fit cover a las imágenes.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre CSS.

Test de CSS
CodePen: UI cards con hover y layout
Abrir en CodePen

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .