Generador CSS Grid — Builder Visual con Salida Tailwind y CSS
Construye cualquier layout CSS Grid visualmente — ajusta columnas, filas, gap y spans de los ítems y mira cómo el grid se actualiza en tiempo real. Este generador css grid exporta tu layout como CSS puro y clases Tailwind a la vez, algo que ningún otro grid generator ofrece. Empieza desde un preset (Holy Grail, Dashboard, Card Grid) o desde cero.
Además de lo básico, tienes un editor visual de grid-template-areas para layouts con nombre, breakpoints responsivos con media queries mobile-first y un laboratorio interactivo de auto-fill vs auto-fit — la parte más confusa de CSS Grid, por fin explicada en la práctica.
Cómo Usar el Generador CSS Grid
De un grid en blanco a código listo para producción en menos de un minuto:
- Elige un preset o define los tracks — haz clic en Holy Grail, Dashboard, Card Grid, Magazine, Mosaic, App Shell o 12-Column, o arrastra los sliders de Columnas y Filas. El canvas interactivo se actualiza al instante.
- Ajusta los ítems — en modo Spans, haz clic en cualquier ítem del canvas y modifica su col-span, row-span y posición inicial. En modo Áreas Nombradas, escribe nombres (header, sidebar, main) directamente en la matriz del editor y el layout se reorganiza en vivo.
- Refina los tracks — escribe tamaños personalizados como
200px 1fr minmax(150px, 1fr)para mezclar columnas fijas y flexibles; el canvas y el código reflejan cada cambio. - Copia el código — alterna entre las pestañas Tailwind, CSS, HTML y Responsivo y pulsa Copiar (o presiona Shift+Enter). La pestaña Responsivo genera media queries mobile-first automáticamente.
Ejemplos del Generador CSS Grid
Algunas configuraciones reales y el código exacto que produce el generador:
Ejemplo — grilla de cards de 3 columnas:
Config: 3 columnas, 2 filas, gap 16px
CSS: display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
Tailwind: grid grid-cols-3 grid-rows-2 gap-4
Ejemplo — layout Holy Grail (áreas nombradas):
Config: columnas 200px 1fr 200px, áreas "header header header" / "sidebar main aside" / "footer footer footer"
CSS: grid-template-areas: "header header header" "sidebar main aside" "footer footer footer";
.header { grid-area: header; } …
Ejemplo — ítem que ocupa 2 columnas:
Config: ítem 1 con col-span 2
CSS: .item-1 { grid-column: span 2; }
Tailwind: <div class="col-span-2">1</div>
Ejemplo — tracks personalizados con minmax (caso especial):
Config: grid-template-columns: 200px 1fr minmax(150px, 1fr)
Tailwind: grid-cols-[200px_1fr_minmax(150px,1fr)] ← valor arbitrario, generado automáticamente
Ejemplo — celda vacía en áreas nombradas (caso especial):
Config: deja una celda en blanco en el editor de áreas
Salida: grid-template-areas: "header header" ". main" ← el punto es una celda vacía válida
CSS Grid — Qué Es y Por Qué Importa
CSS Grid Layout es un sistema de layout bidimensional que controla columnas y filas simultáneamente. A diferencia de Flexbox, que es unidimensional (una fila O una columna), Grid posiciona ítems en ambos ejes a la vez — ideal para layouts de página, dashboards, grillas de cards y cualquier UI donde los elementos deben alinearse horizontal y verticalmente.
La unidad fr es el superpoder de Grid: representa una fracción del espacio restante después de colocar los tracks fijos. grid-template-columns: 200px 1fr 1fr en un contenedor de 800px produce una sidebar de 200px y dos columnas de 300px — sin cálculos de porcentajes. Combinada con minmax() y repeat(auto-fill, …), permite grids totalmente responsivos sin escribir una sola media query.
Casos de Uso Comunes
- Layouts de página (Holy Grail): header, footer y tres columnas en el medio en seis líneas de CSS — un layout que antes requería hacks con float. El preset Holy Grail lo genera al instante.
- Dashboards: sidebar fija más un área de contenido flexible con zonas de stats y widgets. Las áreas nombradas mantienen el CSS legible a medida que el dashboard crece.
- Galerías de productos/cards:
repeat(auto-fill, minmax(250px, 1fr))crea una galería que pasa de 4 columnas a 1 según se encoge el viewport — cero breakpoints. - Proyectos Tailwind: la pestaña Tailwind genera
grid-cols-*,col-span-*y valores arbitrarios comogrid-cols-[200px_1fr], listos para pegar en componentes React, Vue o Svelte. - Layouts editoriales/revista: combina un hero de ancho completo con columnas asimétricas usando el preset Magazine y ajusta los spans por bloque.
Errores Comunes con CSS Grid
- Usar auto-fit cuando querías auto-fill: con pocos ítems,
auto-fitlos estira por toda la fila — una sola card puede ocupar todo el contenedor. Usa el laboratorio bajo el canvas para comparar antes de decidir. - Áreas nombradas no rectangulares:
grid-template-areasexige que cada área forme un rectángulo. Un área en forma de "L" invalida silenciosamente todo el template y el navegador recurre al posicionamiento automático. - Confundir fr con %:
1fres una fracción del espacio sobrante, mientras33%es del contenedor total — los porcentajes combinados congapcausan overflow;frdescuenta los gaps automáticamente. - Spans mayores que el número de tracks: un ítem con
col-span-4en un grid de 3 columnas fuerza una cuarta columna implícita. El generador limita los spans al número de columnas en el preview para hacerlo visible.
Preguntas Frecuentes
¿Cuál es la diferencia entre auto-fill y auto-fit en CSS Grid?
Ambos crean tantos tracks como quepan en el contenedor con repeat(). La diferencia aparece cuando los ítems no llenan la fila: auto-fill mantiene los tracks vacíos, conservando tamaños consistentes, mientras auto-fit colapsa los tracks vacíos y los ítems existentes se estiran para llenar el espacio. Usa auto-fit en galerías que siempre deben ocupar todo el ancho; usa auto-fill cuando la consistencia de tamaños importa más.
¿Qué es la unidad fr en CSS Grid?
La unidad fr (fracción) representa una fracción del espacio disponible después de colocar los tracks de tamaño fijo. Por ejemplo, grid-template-columns: 200px 1fr 1fr en un contenedor de 800px da 200px, 300px y 300px. A diferencia de los porcentajes, fr opera sobre el espacio restante y descuenta los gaps, siendo más confiable al mezclar tracks fijos y flexibles.
¿Cómo hago un grid responsivo sin media queries?
Usa grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)). Esto crea tantas columnas de mínimo 250px como quepan en el contenedor y ajusta la cantidad automáticamente cuando cambia el viewport — 4 columnas en desktop, 2 en tablet, 1 en móvil, sin ninguna media query. El laboratorio auto-fill vs auto-fit de este generador te permite probar el patrón en vivo.
¿Cómo funciona grid-template-areas?
Define el layout como un mapa visual de texto: cada string entre comillas es una fila, cada palabra es un área nombrada y el punto (.) marca una celda vacía. Los elementos se asignan con grid-area: nombre. La restricción es que toda área debe ser rectangular — repite el nombre en celdas vecinas para que un área ocupe varias columnas o filas. El modo Áreas Nombradas de este generador construye el template mientras escribes los nombres en las celdas.
¿Puedo exportar el grid como clases Tailwind?
Sí — la pestaña Tailwind convierte tu configuración en clases utilitarias en tiempo real: grid-cols-3, gap-4, col-span-2, etc. Los tracks personalizados se convierten en valores arbitrarios como grid-cols-[200px_1fr_200px], y las áreas nombradas usan la sintaxis de propiedad arbitraria de Tailwind ([grid-area:header]) — incluso los layouts complejos funcionan sin tocar tu config de Tailwind.
Recursos
- MDN — CSS Grid Layout — La referencia definitiva de todas las propiedades de Grid, con ejemplos interactivos.
- CSS-Tricks — A Complete Guide to CSS Grid — La cheatsheet visual más popular de las propiedades de contenedor e ítem.
- W3C — CSS Grid Layout Module Level 2 — La especificación oficial, incluido subgrid.