React + MotionNavigation

Segment-Tabs im iOS-Stil

Eine hellgraue Spur, auf der eine weiße Pille mit leichtem Schatten zum gewählten Bereich gleitet.

Einstellungen

3

Code

import { useState } from "react";
import { AnimatePresence, motion } from "framer-motion";

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

const OPTIONS = ["Unterkünfte", "Erlebnisse", "Leistungen"];

interface SegmentedControlProps {
  count?: number;
}

export default function SegmentedControl({ count = 3 }: SegmentedControlProps) {
  const options = OPTIONS.slice(0, count);
  const [active, setActive] = useState(0);

  return (
    <div className="flex rounded-full bg-black/5 p-1 text-[#1d1d1f] dark:text-[#f5f5f7] dark:bg-white/10">
      {options.map((option, i) => (
        <button
          key={option}
          type="button"
          aria-pressed={active === i}
          onClick={() => setActive(i)}
          className="relative rounded-full px-4 py-2 text-sm"
        >
          <AnimatePresence>
            {active === i && (
              <motion.span
                layoutId="segmented-pill"
                className="absolute inset-0 rounded-full bg-white dark:bg-[#1c1c1e] shadow-[0_1px_2px_rgba(0,0,0,0.03),0_8px_28px_rgba(0,0,0,0.05)]"
                transition={spring}
              />
            )}
          </AnimatePresence>
          <span className="relative">{option}</span>
        </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.

Markdown-Version mit dem ganzen Code, für KI-Assistenten

Mehr aus Navigation

Alle ansehen: Navigation

Wofür du ihn nutzen kannst

Stell dir den Kopf einer Buchungsseite vor, die ihr Angebot in „Unterkünfte“, „Erlebnisse“ und „Services“ teilt. Genau dort passen diese Segment-Tabs im iOS-Stil: ein neutraler Wechsel zwischen zwei oder drei großen Bereichen, kein bunter Filter. Die weiße Pille gleitet mit sanfter Feder hinüber, ganz wie in iPhone-Apps.

Weil sie keine Akzentfarbe hat, fügt sie sich auch in volle Seiten ein, ohne deinen Haupt-Buttons Konkurrenz zu machen. Bleib bei höchstens drei Optionen und nimm Begriffe, nach denen Leute suchen würden, keine internen Namen.