Aprende a dominar el diseño de layouts con CSS y Tailwind desde cero, usando las utilidades de Flexbox para centrar, alinear y distribuir elementos sin complicaciones. Con clases como flex, justify-center, items-center, flex-col y gap-4, podrás construir layouts complejos con facilidad y evitar desajustes comunes.
¿Cómo activar y centrar un contenedor flexible en Tailwind CSS?
Activar Flexbox en un contenedor es tan simple como usar flex. Esto convierte al elemento en contenedor flexible y a sus hijos en elementos flexibles. Con justify-center y items-center centras el contenido en ambos ejes. h-screen hace que el contenedor ocupe toda la altura de la pantalla, lo que permite que el centrado sea visible.
flex activa Flexbox en el contenedor.
justify-center centra horizontalmente.
items-center centra verticalmente.
h-screen ocupa toda la altura de la ventana.
Escala de tamaños en múltiplos de cuatro: w-32 y h-32 usan la métrica base de Tailwind.
bg-gray-100 ayuda a visualizar el contenedor.
Ejemplo base con tres elementos visibles y tamaños fijos:
Claves prácticas: w-32 y h-32 asignan width/height según la escala de Tailwind; el color de fondo facilita reconocer el área de trabajo. Este es el típico centrado de un div dentro del lienzo visible.
¿Cómo cambiar dirección, alineación y espaciado con Flexbox?
La dirección de los hijos en Flexbox la controlas con flex-col (columna) o flex-row (fila). La alineación vertical u horizontal se ajusta con items-* y justify-*. Además, gap-4 agrega un espaciado uniforme entre elementos.
flex-col organiza en columna; también puedes usar flex-row según necesites.
items-center, items-start, items-baseline, items-stretch cambian la alineación en el eje cruzado.
gap-4 añade 1 rem entre elementos; gap-2 equivale a 0.5 rem.
La escala estándar: 1 rem = 16 píxeles.
Ejemplo en columna con espaciado y centrado de items:
Consejo de productividad: el Playground de Tailwind permite ver el efecto de cada clase y muestra la propiedad de CSS asociada, por ejemplo: align-items: baseline, align-items: stretch. La visualización puede variar según la resolución, pero ayuda a elegir la opción adecuada sin salir del entorno.
¿Cómo distribuir espacio y combinar contenedores y elementos flexibles?
La distribución del espacio con justify-* permite separar elementos de forma predecible. Combinar contenedores flex y elementos flexibles dentro facilita layouts escalables, anidados y responsivos.
¿Cómo separar elementos con justify-between?
justify-between reparte el espacio sobrante entre los elementos, enviando el primero al inicio y el último al final. items-center alinea verticalmente y px-4 agrega padding horizontal.
El contenedor principal activa Flexbox con flex y define su altura con h-32.
Los dos primeros hijos con flex-1 se ajustan en proporciones iguales.
El tercero con flex-none preserva su tamaño fijo.
Esta combinación permite layouts donde algunos bloques crecen y otros se mantienen estáticos.
Productividad al codificar:
Un plugin para el editor de código sugiere clases disponibles y acelera el trabajo.
En el Playground ves cambios inmediatos; si trabajas en local, aplica la clase y recarga o alterna la ventana del navegador para confirmar el efecto.
¿Te animas a practicar? construye un layout con flex, inspírate en un sitio que te guste y compártelo en comentarios: puede ser un screenshot o el mismo código.
En el minuto 13:40 de la clase el profesor indica que el tercer elemento mantiene el ancho fijo debido a que se asignó el valor none a la clase flex y especifica que este valor es h-32, pero en realidad el h-32 corresponde a la altura de 128px que se asignó al flex container.
El verdadero ancho de este elemento está condicionado por su contenido que en este caso corresponde al texto “Elemento 3” y no está asociado a una herencia del valor h-32 como insiste el profesor en su explicación.
Esto sucede porque cuando se aplica la clase flex de Tailwind a un flex-item, es como si se estuviera empleando la propiedad flex de flexbox en CSS tradicional, pero asignándole unos valores específicos a cada una de las 3 subpropiedades que la conforman, dado que Tailwind no ofrece un control específico sobre cada subpropiedad (flex-grow, flex-shrink y flex-basis) al mismo nivel que CSS tradicional.
El uso de la clase flex-none de Tailwind equivale a escribir la propiedad flex: 0, 0, auto, en donde el primer cero indica que el tamaño del flex item al que le está siendo aplicada nunca crecerá, mientras que el segundo cero indica que el tamaño tampoco se reducirá y la palabra auto indica que su tamaño está condicionado por su contenido.
La información sobre el funcionamiento de la propiedad flex de flexbox, la encontré en el siguiente vídeo, que les puede resultar útil:
Venía a comentar casi lo mismo, pero tú ampliaste la explicación aún más. Gracias por compartirlo, es bueno que haya gente qué se da cuenta de los errores! :)
Una de las cosas que estoy amando totalmente en este curso, es la explicación de cómo funciona cada clase, y el apoyo en la documentación. Esto me servirá muchísimo para ponerlo en práctica muy pronto, gracias profe Oscar 😃
Hola comunidad, aca ddejo mi codigo mi humilde copia de chatGPT.