Buscador de viajes
Destino, fechas y huéspedes en una barra redondeada; la sección que tocas se levanta como una píldora.
Ajustes
Código
import { useState } from "react";
import { motion } from "framer-motion";
import { CalendarDays, MapPin, Search, Users } from "lucide-react";
const spring = { type: "spring" as const, stiffness: 300, damping: 30 };
const items = [
{ Icon: MapPin, label: "Dónde", hint: "Buscar destinos" },
{ Icon: CalendarDays, label: "Fechas", hint: "Añadir fechas" },
{ Icon: Users, label: "Huéspedes", hint: "Añadir huéspedes" },
] as const;
interface TravelSearchProps {
color?: string;
onSearch?: () => void;
}
export default function TravelSearch({ color = "#0071e3", onSearch }: TravelSearchProps) {
const [active, setActive] = useState(0);
return (
<motion.div
layout
transition={spring}
className="flex w-full max-w-[440px] flex-wrap items-center rounded-[28px] bg-white p-1.5 text-[#1d1d1f] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)] dark:bg-[#1c1c1e] dark:text-[#f5f5f7]"
>
{items.map(({ Icon, label, hint }, i) => (
<motion.button
layout
key={label}
type="button"
aria-pressed={active === i}
onClick={() => setActive(i)}
className={`flex min-w-28 flex-1 items-center gap-2 rounded-full px-4 py-3 text-left ${
active === i
? "bg-[#f5f5f7] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)] dark:bg-black"
: ""
}`}
>
<Icon className="h-4 w-4" />
<span>
<b className="block text-xs font-medium">{label}</b>
<small className="block text-[11px] text-[#86868b]">{hint}</small>
</span>
</motion.button>
))}
<button
type="button"
aria-label="Buscar"
onClick={onSearch}
className="grid h-11 w-11 place-items-center rounded-full text-white"
style={{ backgroundColor: color }}
>
<Search className="h-4 w-4" />
</button>
</motion.div>
);
}
Prompt para IA
Pégalo en ChatGPT, Claude o Cursor y adaptará el bloque a tu proyecto con estos ajustes, aunque no uses React.
Más en Inputs
Dónde usarlo
Es el buscador que todo el mundo conoce de las webs de reservas: destino, fechas y número de huéspedes en fila, y un botón redondo para buscar. Encaja en una web de apartamentos turísticos, una pequeña cadena hotelera, un camping o una agencia de excursiones. Si montas una web de reservas, este buscador de viajes te ahorra maquetarlo desde cero.
Los campos son de muestra, así que conecta cada uno a tu propio calendario o selector de personas. Pon el botón de buscar en el color de tu marca. En pantallas estrechas las secciones bajan de línea, compruébalo con tus textos reales.