En esta clase, continuamos desarrollando el modal del buscador, enfocándonos en la sección de selección de fechas.
El modal consta de las siguientes secciones principales:
Para gestionar su visibilidad, utilizamos un estado que permite mostrar u ocultar el modal al hacer clic en el botón de búsqueda.
header
.absolute top-0 left-0 w-full h-full bg-white
→ Define la posición y el tamaño del modal.flex flex-col
→ Organiza la cabecera, el contenido y el pie del modal.justify-between
→ Asegura que las secciones se distribuyan correctamente.La cabecera incluye opciones para alternar entre "Alojamientos" y "Experiencias". Implementamos esto con una variable de estado y aplicamos estilos según la opción seleccionada:
font-bold
y un subrayado.text-gray-400
).En el cuerpo del modal organizamos los campos:
Cada uno de estos elementos se estructurará utilizando flex
, gap
, padding
y border
para una apariencia más alineada con el diseño de Airbnb.
La sección de selección de destino cuenta con una tarjeta que agrupa:
Se aplica una tarjeta con los siguientes estilos:
bg-white rounded-xl shadow-md
para darle un aspecto limpio y elevado.px-6 py-4
para un espaciado adecuado.flex flex-col gap-4
para distribuir los elementos de forma ordenada.Los destinos aparecen en una fila desplazable horizontalmente, con cada destino dentro de un botón que incluye una imagen y el nombre del destino.
La sección de selección de fechas incluye tres pestañas:
grid grid-cols-3
para que cada opción tenga el mismo ancho.text-center font-semibold
para mejorar la legibilidad.border border-gray-300 rounded-full
para dar la apariencia de botones.Cada pestaña alterna su contenido dinámicamente, mostrando las opciones de calendario correspondientes.
grid grid-cols-7
para simular un calendario.bg-gray-200 rounded-lg
.border border-gray-400 rounded-lg px-4 py-2
.text-gray-600
para mantener la coherencia con el diseño.La parte inferior contiene dos botones:
Estos botones se estilizan con:
border rounded-full
para mantener bordes suaves.px-6 py-3
para un tamaño cómodo.shadow-md
para resaltar su apariencia.