React + MotionNavigation

Barre d’onglets inférieure

Une barre dépolie en bas de l’écran où l’icône active monte un peu, prend votre couleur et reçoit un petit point.

Réglages

Code

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: "Accueil" },
  { icon: Search, label: "Rechercher" },
  { icon: Heart, label: "Favoris" },
  { icon: User, label: "Profil" },
];

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 pour l’IA

Collez-le dans ChatGPT, Claude ou Cursor : le bloc sera adapté à votre projet avec ces réglages, même sans React.

Plus dans Navigation

Où l’utiliser

La barre d’onglets inférieure est la navigation de presque toutes les applications mobiles, parce que le pouce atteint facilement le bas de l’écran. Elle convient à une web app qui doit paraître native : un suivi sportif, une application de recettes, l’espace membre d’une salle de sport ou un journal local sur mobile. Accueil, Recherche, Favoris et Profil couvrent l’essentiel.

Restez entre trois et cinq onglets avec des libellés courts ; avec des icônes seules, on devine. Choisissez une couleur bien contrastée sur le fond dépoli. Sur ordinateur, une barre latérale ou un menu en haut a souvent plus de sens.