Espaciado y tamaños con Tailwind
Hay detalles en la vida que son fundamentales para que podamos realizar determinadas actividades a lo largo de ella. Tener una idea del espacio para aparcar un coche sin chocar con el de al lado, saber cuánto tiempo se tarda en llegar de casa al trabajo sin que sea tarde, calcular cuánto dinero aún se puede gastar para llegar a final del mes...
Todo ello es tan natural que se diluye en nuestro día a día, aunque tiene su debida importancia. En el mundo de la programación no podría ser diferente: necesitamos tener ciertas nociones muy bien fijadas en la mente para que se vuelvan tan naturales como realizar cualquiera de estas actividades mencionadas.
En el artículo de hoy aprenderemos a utilizar las clases de Tailwind para trabajar con conceptos muy presentes y normales en el día a día de quienes diseñan con CSS: tamaños y espaciado.
¿Qué es Tailwind CSS?
Tailwind es un framework creado con el objetivo de optimizar el uso de CSS. En lugar de que el estilo se realice a través de clases creadas manualmente por el programador (donde sus atributos se definen en un archivo importado con una extensión .css), este marco proporciona un conjunto de clases diseñadas en el modelo CSS atómico, donde cada clase tiene una única función, como por ejemplo, aplicar el color rojo al fondo de un elemento o poner su texto en cursiva. Todo este conjunto de clases puede hallarse en la documentación de Tailwind CSS e, incluso si ninguno de ellos satisface tus necesidades, ¡también puedes crear uno nuevo que sí lo haga!
Centrado en el desarrollo móvil, todo el proceso de diseño se acelera y optimiza con Tailwind CSS que, además de ser intuitivo, tiene documentación fácil de aprender y rápida de buscar: simplemente ingresa el nombre del atributo (como como object-fit, margin o display) que proporciona el nombre de la clase que satisface la demanda y cómo utilizarla.
Consejos para utilizar Tailwind CSS
Hay varias formas de instalar Tailwind CSS en su proyecto, según la tecnología que esté utilizando. En la documentación de este framework existe una guía práctica para cada escenario donde se puede utilizar. ¡Simplemente sigue el paso a paso específico que se adapte a tu situación y sé feliz!
Por lo tanto, no se sorprenda si el nombre de la propiedad de clase en un elemento es className en lugar de class: ambos tienen el mismo objetivo, pero en React, por convención, se usa el primero. Dicho esto, ¿seguimos adelante?
Creando un proyecto en la práctica
Ha llegado el momento de desarrollar una aplicación donde podamos trabajar con espacios y tamaños usando Tailwind CSS. Ve el siguiente código:
En el ejemplo de la Figura 2, creamos un contenedor principal que tiene la clase flex. Esta clase hará que la característica de cada contenedor interno cambie de block para inline, para que queden organizados uno al lado del otro, en lugar de uno debajo del otro. Además, cada contenedor interno tiene, además de un valor en su interior, clases que cambian los colores del background para rojo, verde, amarillo y azul (bg-red-600, bg-green-600, bg-yellow-500 e bg-blue-500, respectivamente).
Si ejecutas este código, verás que no hay mucho que mostrar aparte de números envueltos en pequeños bloques de colores. Todo esto está a punto de cambiar en un momento, si estás dispuesto a quedarte con nosotros en este viaje.
Espaciado en Tailwind CSS
Cuando hablamos de espaciado en el estilo CSS, nos referimos a atributos que son capaces de “alejar” elementos entre sí o distanciar los límites de los elementos en relación a tu contenido. Dividimos este concepto en dos atributos principales: Padding y Margin.
Padding
Este atributo se encarga de definir un espaciado interno para un elemento, de manera que sea posible darle más espacio en su interior, generando una especie de borde invisible. En Tailwind existen una serie de clases que realizan esta función, todas ellas comenzando con la letra “p”, seguida de la especificación deseada para el espaciado. Intentemos usar la clase p-10 en todos los contenedores internos de nuestro proyecto y notemos la sorprendente diferencia que tendremos a continuación:
¿Notaste la diferencia? En este caso, aplicamos un espaciado uniforme a las cuatro direcciones del contenedor, pero podemos aplicar tamaños específicos a cada dirección:
- pl-10 - crea un espacio interno solo para el lado izquierdo del contenedor (padding-left);
- pr-10 - define un espacio interno solo para el lado derecho del contenedor (padding-right);
- pt-10 - produce un espacio interno para la parte superior (o superior) del contenedor (padding-top);
- pb-10 - aplica espacio interno al fondo del contenedor (padding-bottom);
- px-10 - crea un espacio interno solo para el eje horizontal del contenedor (padding-left e padding-right);
- py-10 - establece un espacio interno solo para el eje vertical del contenedor (padding-top e padding-bottom).
Margin
El atributo Margin do Tailwind sigue la misma lógica de las líneas de clases responsables por el padding, solo para espaciado externo. Insertemos la clase m-5 en nuestros contenedores internos y veamos el resultado que se obtendrá:
Ahora, para todas las direcciones, hay una especie de borde exterior que aleja los elementos entre sí. De la forma en que lo hicimos, se creó un espacio externo uniforme para todas las direcciones del elemento, pero al igual que el padding, también tenemos muchos conjuntos de clases personalizados para el margin:
- ml-5 - crea un espacio exterior solo para el lado izquierdo del contenedor (margin-left);
- mr-5 - define un espacio exterior sólo para el lado derecho del contenedor (margin-right);
- mt-5 - produce un espacio exterior para la parte superior (o superior) del contenedor (margin-top);
- mb-5 - aplica un espacio exterior al fondo del contenedor (margin-bottom);
- mx-5 - crea un espacio exterior sólo para el eje horizontal del contenedor (padding-left e margin-right);
- my-5 - establece un espacio exterior sólo para el eje vertical del contenedor (padding-bottom e margin-bottom).
Tamaños en Tailwind CSS
Mientras que los espaciados Padding y Margin define algo así como "bordes invisibles" para el elemento, los tamaños definen qué tan grandes pueden ser los elementos y cuánto de la pantalla pueden ocupar, en términos de ancho (width) e altura (height).
Width y Height
Mientras el atributo width define el ancho de un elemento, con el atributo height podemos definir la altura del mismo, transmitiendo especificaciones precisas que agregarán elegancia a la aplicación con la combinación de los dos. Tailwind nos proporciona categorías de clases para manipularlas, siendo las principales:
- Números - En la documentación de Tailwind CSS es posible encontrar varias clases con numerales que definen un tamaño fijo para un elemento (por ejemplo, w-10 o h-10 definen un ancho o alto de 40 px, respectivamente);
- Fracciones - Pensando en la recursividad, es posible definir qué porcentaje de espacio puede tener un elemento, tanto para alto como para ancho (por ejemplo, w-1/2 y h-1/2 definir que un elemento tendrá un ancho y alto igual a la mitad del tamaño disponible);
- Screen y Full - Las clases w-screen y h-screen definen que el ancho y alto del contenedor serán el 100% del alto del viewport (es decir, 100% de la pantalla disponible para visualización), mientras que las clases w-full y h-full definen que el ancho y alto del contenedor serán el 100 % del tamaño disponible.
Consideraciones finales
Como ves, Tailwind CSS nos hace la vida mucho más fácil, proporcionándonos varias herramientas para que podamos trabajar con todos los atributos que tiene CSS con la menor complejidad posible, sin diferencia de espacios y tamaños.
Quiero saber qué te pareció este artículo y cuánto te ayudó. Si deseas realizar alguna consulta o simplemente quieres intercambiar alguna idea sobre éstos y otros temas de otra manera, puedes contactarme a mi correo electrónico bruno.cabral.silva2018@gmail.com o en LinkedIn.
¡Hasta luego!
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.