React + MotionNavigation

Kategorieleiste mit Icons

Kategorien als Icons mit Beschriftung und eine Unterstreichung, die zur gewählten hinübergleitet.

Einstellungen

Code

import { useState } from "react";
import { motion } from "framer-motion";
import { Calendar, Compass, Home, Layers } from "lucide-react";

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

const ITEMS = [
  { icon: Home, label: "Häuser" },
  { icon: Compass, label: "Natur" },
  { icon: Calendar, label: "Kurztrips" },
  { icon: Layers, label: "Design" },
];

interface CategoryBarProps {
  color?: string;
}

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

  return (
    <div className="flex gap-7 border-b border-black/10 dark:border-white/10">
      {ITEMS.map(({ icon: Icon, label }, i) => (
        <button
          key={label}
          type="button"
          aria-pressed={active === i}
          onClick={() => setActive(i)}
          className="relative flex flex-col items-center gap-1.5 pb-3 text-xs text-[#86868b]"
        >
          <Icon className="h-5 w-5" style={{ color: active === i ? color : undefined }} />
          <span>{label}</span>
          {active === i && (
            <motion.i
              layoutId="cat-line"
              className="absolute inset-x-0 -bottom-px h-0.5"
              style={{ backgroundColor: color }}
              transition={spring}
            />
          )}
        </button>
      ))}
    </div>
  );
}

Prompt für KI

Füg ihn in ChatGPT, Claude oder Cursor ein und der Baustein wird mit diesen Einstellungen an dein Projekt angepasst, auch ohne React.

Mehr aus Navigation

Wofür du ihn nutzen kannst

Vermietungsportale und Marktplätze nutzen dieses Muster, damit man vor der Suche nach Art stöbern kann: Hütten, Strandhäuser, Städtetrips, Design-Unterkünfte. Es passt auch zu einem Shop mit Produktfamilien oder einer Rezeptseite nach Mahlzeiten. Die gleitende Unterstreichung macht die Wahl klar, und die Kategorieleiste mit Icons erfasst man auf einen Blick.

Such Icons aus, die wirklich zum Label passen, und halte die Labels bei einem Wort. Bei mehr als sechs oder sieben Kategorien lass die Leiste am Handy seitlich scrollen, statt alles in eine Zeile zu quetschen.