El diseño masonry en CSS se ha convertido en una tendencia clave para crear interfaces modernas y visualmente atractivas, especialmente en sitios que presentan tarjetas de contenido, como portafolios, galerías de imágenes o publicaciones estilo Pinterest. Hasta hace poco, lograr este efecto requería JavaScript o soluciones con Flexbox o Multi-column, que traían consigo limitaciones importantes. Hoy, gracias a los avances en CSS Grid Level 3, es posible crear un layout tipo masonry de forma nativa y eficiente.
¿Qué es un diseño masonry?
El diseño tipo «masonry» organiza los elementos de una página como si fueran ladrillos colocados en una pared: las tarjetas se distribuyen en columnas, pero no siguen un orden de filas estrictas. En lugar de dejar espacios vacíos, los elementos se ajustan verticalmente para ocupar cualquier hueco disponible.

Ventajas del masonry layout en diseño web
- Mejora el aprovechamiento del espacio vertical.
- Crea una estética moderna y fluida.
- Aumenta el engagement visual del usuario.
- No requiere JavaScript con CSS Grid nativo.
CSS Grid y la llegada del soporte nativo para masonry
Con la propuesta de CSS Grid Layout Level 3, se introduce la posibilidad de aplicar un valor masonry
directamente en la definición de las filas o columnas de una grid. Esto permite lograr el efecto de masonry sin scripts externos ni hacks.
Ejemplo de código CSS nativo con masonry:
.container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: masonry;
gap: 16px;
}
.item {
background: #f2f2f2;
padding: 20px;
border-radius: 8px;
}
Importante: Esta funcionalidad estaba disponible inicialmente en Firefox Nightly mediante la activación de la bandera layout.css.grid-template-masonry-value.enabled
en about:config
. Asegúrate de revisar la compatibilidad actual en MDN Web Docs.
Guía paso a paso para implementar un layout masonry con CSS
Ahora que conoces los conceptos básicos de masonry, te voy a enseñar como implementar un layout masonry con CSS desde cero. De este modo, podrás construir tus layouts con este diseño de forma rápida y sencilla en tan solo 5 pasos:
Paso 1: Crea el HTML base
<div class="container">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2 con más contenido</div>
<div class="item">Elemento 3</div>
<div class="item">Elemento 4 con aún más contenido</div>
<!-- Añade más elementos según necesites -->
</div>
Paso 2: Aplica estilos con CSS Grid y masonry
.container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
grid-template-rows: masonry;
gap: 16px;
padding: 16px;
}
.item {
background-color: #ffffff;
border: 1px solid #ddd;
padding: 16px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
Paso 3: Prueba en Firefox Nightly o navegador compatible
Esta característica aún no está disponible en todos los navegadores. En Firefox, habilita el soporte experimental accediendo a about:config
y activando:
layout.css.grid-template-masonry-value.enabled = true
Paso 4: Ajusta y adapta
Puedes cambiar el número de columnas o el tamaño mínimo de las tarjetas con minmax()
, o usar media queries
para adaptar el layout a distintos tamaños de pantalla.
Paso 5: Añade contenido real y prueba la experiencia
Rellena los .item
con contenido real (textos, imágenes, botones) para ver cómo se comportan con distintas alturas. Evalúa también la accesibilidad y el orden lógico del contenido en el DOM.
Comparativa entre métodos para lograr masonry layout
Método | Requiere JS | Orden DOM intacto | Soporte actual | Facilidad de implementación |
---|---|---|---|---|
CSS Grid Masonry | No | Sí | Limitado (Firefox Nightly) | Alta si es compatible |
Masonry.js | Sí | Sí | Alto | Media (requiere instalación) |
CSS Multi-column | No | No | Alto | Alta |
Flexbox manual | No | No | Alto | Baja (requiere mucho ajuste) |
Alternativas y polyfills para navegadores sin soporte
Mientras el soporte nativo se extiende a más navegadores, puedes optar por:
- JavaScript plugins como Masonry.js.
- CSS Multi-column, aunque tiene problemas con el orden de lectura.
- Flexbox con «column wrap» personalizado (requiere reordenamiento manual).
Buenas prácticas al usar layouts masonry
- Usa tarjetas de contenido consistentes en ancho.
- Asegura una jerarquía visual clara para evitar desorden.
- Combina con animaciones suaves para carga progresiva.
- Verifica la accesibilidad y el orden semántico del DOM.
Ejemplos donde puedes usar masonry CSS
El layout tipo masonry es muy versátil y puede aplicarse en distintos tipos de proyectos web, como por ejemplo:
- Galerías de imágenes responsive: Ideal para mostrar fotos de diferentes alturas sin espacios vacíos.
- Secciones de testimonios de clientes: Donde cada tarjeta tiene distinto número de líneas.
- Blogs visuales o magazines: Para mostrar entradas con distintos tamaños de contenido o imágenes destacadas.
- Listados de productos con distinta descripción o imagen: Muy usado en e-commerce.
- Dashboards de datos: Con tarjetas informativas que se adaptan según la cantidad de información.
- Muros sociales (social walls): Para presentar publicaciones de redes sociales de forma dinámica.
Este enfoque no solo mejora la apariencia, sino que también optimiza el uso del espacio, especialmente en dispositivos móviles.
El futuro del diseño masonry con CSS
El soporte nativo de layouts tipo masonry en CSS Grid marca un hito en la evolución del diseño web. Nos permite construir interfaces visuales potentes sin depender de JavaScript, mejorando el rendimiento y simplificando el mantenimiento del código. A medida que los navegadores incorporen esta funcionalidad, se espera que su uso se generalice.
¡Aprende a dominar CSS Grid y otras técnicas avanzadas de diseño web!
Si quieres llevar tu conocimiento al siguiente nivel y convertirte en un desarrollador frontend, te invitamos a explorar el Web Full Stack Bootcamp. Con este bootcamp aprenderás desde los fundamentos del desarrollo web hasta las herramientas más demandadas y potentes para crear páginas web o aplicaciones web escalables, visuales e impactantes. Todo ello, a través de una metodología eminentemente práctica y siempre en compañía de profesores que trabajan en las principales empresas del sector IT.