¿Cómo utilizar Flexbox y Grid en Tailwind para un proyecto de maquetación?
Entender cómo aplicar correctamente Flexbox y Grid en Tailwind es esencial para lograr un diseño web responsivo y eficiente. En esta guía, veremos cómo identificar los elementos y estructuras que usaremos en nuestro proyecto, tomando como ejemplo un archivo de Figma. El principal objetivo es decidir entre Flexbox y Grid e identificar de manera clara la dirección de nuestros elementos.
¿Qué es lo primero que debemos definir en nuestro proyecto?
La elección inicial pasa por definir nuestra paleta de colores. Contamos con cinco colores principales, y aunque aún no personalizaremos esta paleta dentro de nuestro archivo de configuración, es clave tener claro estos tonos desde el principio. La correcta identificación y aplicación de los colores ayudará a cohesionar el diseño visual del proyecto.
¿Cómo identificar el uso y dirección de Flexbox?
En nuestro proyecto, usaremos Flexbox para establecer una disposición eficiente de los elementos:
Flex direction row:
En ciertas secciones del proyecto, los elementos están dispuestos en una fila uno tras otro, lo cual muestra un flex-direction: row. Este tipo de disposición es idóneo para elementos que necesitan una alineación horizontal con espaciado, como botones o íconos en barras de navegación.
.elemento{display: flex;flex-direction: row;gap:1rem;/* Espaciado entre elementos */}
Flex direction column:
En otras áreas, los elementos estarán apilados, indicando un flex-direction: column. Usado para listas, formularios, o cualquier elemento que necesite una alineación vertical, asegurando fluidez y consistencia en la lectura del contenido.
.elemento{display: flex;flex-direction: column;}
¿Cómo variará el diseño en diferentes dispositivos?
La adaptabilidad es clave, por lo que también trabajamos con un diseño alternativo para desktop. Para ello, veremos que las cartas, por ejemplo, pueden cambiar de un flex-direction: row a flex-direction: column según el dispositivo.
¿De qué manera usamos un contenedor principal?
Crear un contenedor principal nos ayuda a estructurar el layout:
El contenedor inicial se comporta como una columna. Adentro, encontramos varios divs. Cada uno se comporta de una manera específica, alternando entre filas y columnas según el contexto. Por ejemplo, un contenedor exterior gris oscuro podría definir inicialmente un row, mientras que los elementos internos podrían alternar a column asegurando que el diseño cumpla las necesidades visuales requeridas.
¿Cuál es tu elección final de estructura para tu proyecto?
Al final del análisis, decidir entre Flexbox o Grid es crucial. Flexbox se presta para un layout que prioriza una relación directa de filas y columnas con flexibilidad de alineación, mientras Grid puede ofrecer una solución más robusta para estructuras complejas. Al practicar y evaluar los beneficios de ambos, podrás optimizarlos según las demandas de cada proyecto.
La dedicación a aprender y experimentar con Tailwind CSS ofrece un abanico de posibilidades para crear diseños ricos en estética y funcionalidad. No olvides revisar el documento en la sección de recursos para practicar más tarde y a seguir explorando los plugins que podremos integrar en Tailwind CSS en las siguientes clases. ¡Te vemos allí!
La forma de trabajar de la profesora usando Figma para tener una idea de como irán colocados los elementos me parece una de las formas más eficientes de hacerlo. Se use Figma o no lo importante es tener claro como vamos a construir nuestro layout para evitar problemas luego y tener que re-estructurar todo el código por una mala implementación inicial.
Si pero la seccion de Trending, debe ir en display: grid. Cuando son tipo masonry o grillas es mejor que los layouts de fuera o genericos, sean con grid y los internos o contenido sean con flexbox:
Yo en lo personal manejaría un contenedor principal con flex-col; dentro habrían 2 div y el contenido dentro del segundo div lo manejaría con grid de esa forma puedo manipular muy fácil esa organización de los 3 elementos con tamaños diferentes.
O tambien toda esa seccion la podes fracionar con grid
Estaria faltando la clase de grid, la profesora dice al pincipio "Ahora que ya conoces flexbox y grid" y solo vimos flexbox
En lo personal, a mi me gusta trabajar con flexbox, pero en este caso lo haría con grid
De forma general, se utilizará Flexbox en este proyecto.
Paleta de colores:
#8FA206
#61EAC9
#FFFFFF
#000000
#CC2D4A
Con un div padre y 4 divs hijos y utilizando GRID, mi solución es la siguiente:
Posterior en la terminal se coloca el comando npm run dev
Chicos corrijamen si me equivoco. Pero conforme a lo que explica la profesora. Creo que se equivoca al decir que este seccion su flex-direction: row.
Creeria yo que es flex direction: col .Pues por defecto flex tiene el defauld de row. Poniendo las cajas una debajo de otra. Cuando queremos que se encuentren aldo invertivos el flex directo a colum.
Solo es una observacion. Pero esta genial el curso y la profesora.
Me parece que si se me fue por ahí la palabra, pero muchas gracias por la observación!
Les comparto el canal de Tailwind, por si quieren complementar el curso.
Esta muy creativa la forma de hacer el Trending Stays así con flexbox, pero creo que con grid saldría mas rápido, fácil y sin tanto div y así quedaría mas limpio el código
Pequeño aporte:
Yo uso papel y lápices de colores para ir identificando la estructura, pero cambiaré a Figma jaja, excelente clase
Considero que es mejor pensar como si los elementos fueran una grilla
Naranja contenedor
Rojo los elementos
figma es nuestra guia me parece muy bien que en esta clase se vea un poco de figma ya que gracias a esto a la hora de tocar codigo estaremos haciendo las cosas de una forma fluida y no estaremos perdidos.
Muy útiles en la planificación de proyectos, ya en mi lista de cursos pendientes ✅
Buenas tardes, tengo una duda, ¿Alguno sabe como podria realizar un cambio de imagenes automatico? Como cuando las imagenes se mueven solas y abajo aparece unos puntos que muestran la cantidad de imagenes y puedes verlas en cualquier momento, pero si la dejas continuan cambiando automaticamente.
Gracias!!
Hola Andrés, Te refieres a un carrousell?
