React + MotionEingabefelder

Toggle-Schalter

Ein An-/Aus-Schalter, dessen Knopf federnd hinüberspringt, mit Farbe und Größe passend zu deinem Design.

Einstellungen

36px

Code

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

interface ToggleSwitchProps {
  color?: string;
  size?: number;
  checked?: boolean;
  defaultChecked?: boolean;
  onCheckedChange?: (checked: boolean) => void;
  label?: string;
}

export default function ToggleSwitch({
  color = "#0071e3",
  size = 36,
  checked,
  defaultChecked = true,
  onCheckedChange,
  label = "Aktivieren",
}: ToggleSwitchProps) {
  const [internal, setInternal] = useState(defaultChecked);
  const on = checked ?? internal;

  const toggle = () => {
    if (checked === undefined) setInternal(!on);
    onCheckedChange?.(!on);
  };

  return (
    <button
      type="button"
      role="switch"
      aria-checked={on}
      aria-label={label}
      onClick={toggle}
      className="flex shrink-0 items-center rounded-full p-1 transition-colors"
      style={{
        width: size * 1.85,
        height: size,
        backgroundColor: on ? color : "oklch(0.3 0.012 260)",
      }}
    >
      <motion.span
        className="rounded-full bg-white shadow"
        style={{ width: size - 8, height: size - 8 }}
        animate={{ x: on ? size * 0.85 : 0 }}
        transition={{ type: "spring", stiffness: 500, damping: 30 }}
      />
    </button>
  );
}

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 Eingabefelder

Wofür du ihn nutzen kannst

Nimm einen Toggle für Einstellungen, die sofort greifen: Dark Mode, E-Mail-Benachrichtigungen, „Preise inkl. MwSt. anzeigen“ in einem B2B-Shop oder die Verfügbarkeit in einem Buchungs-Dashboard. Der federnde Knopf rastet angenehm ein. Wer einen animierten Toggle Switch in React sucht, hat hier eine saubere Grundlage.

Nach einem Toggle sollte nie noch ein „Speichern“-Button nötig sein. Greift die Änderung erst später, ist eine Checkbox ehrlicher. Schreib daneben, was „an“ bedeutet, und prüf, ob die Aus-Farbe auf deinem Hintergrund genug Kontrast hat.