React + MotionNavegación

Barra de pestañas inferior

Una barra inferior esmerilada donde el icono activo sube un poco, toma tu color y lleva un punto debajo.

Ajustes

Código

import { useState } from "react";
import { motion } from "framer-motion";
import { Heart, Home, Search, User } from "lucide-react";

const spring = { type: "spring" as const, stiffness: 300, damping: 30 };

const ITEMS = [
  { icon: Home, label: "Inicio" },
  { icon: Search, label: "Buscar" },
  { icon: Heart, label: "Favoritos" },
  { icon: User, label: "Perfil" },
];

interface TabBarProps {
  color?: string;
}

export default function TabBar({ color = "#0071e3" }: TabBarProps) {
  const [active, setActive] = useState(0);

  return (
    <div className="flex rounded-[24px] bg-white/70 dark:bg-black/70 p-2 text-[#1d1d1f] dark:text-[#f5f5f7] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)] backdrop-blur-[20px]">
      {ITEMS.map(({ icon: Icon, label }, i) => (
        <button
          key={label}
          type="button"
          aria-pressed={active === i}
          onClick={() => setActive(i)}
          className="relative flex w-16 flex-col items-center gap-1 py-1 text-[10px]"
        >
          <motion.span
            animate={{ y: active === i ? -3 : 0, scale: active === i ? 1.12 : 1 }}
            transition={spring}
          >
            <Icon className="h-5 w-5" style={{ color: active === i ? color : undefined }} />
          </motion.span>
          {label}
          {active === i && (
            <motion.i
              layoutId="tab-dot"
              className="absolute -bottom-0.5 h-1 w-1 rounded-full"
              style={{ backgroundColor: color }}
            />
          )}
        </button>
      ))}
    </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 Navegación

Dónde usarlo

Casi todas las apps del móvil se navegan con una barra de pestañas inferior, porque el pulgar llega fácil abajo. Funciona en una web app que quiera sentirse nativa: una app de entrenamiento, un recetario, el área de socios de un gimnasio o un diario local. Inicio, Buscar, Favoritos y Perfil cubren casi todo.

Quédate entre tres y cinco pestañas con etiquetas cortas; solo con iconos la gente tiene que adivinar. Elige un color que contraste con el fondo esmerilado. En escritorio suele tener más sentido un menú lateral o superior que esta tab bar móvil.