Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
LanguageDeutsch
Mikrointeraktionen6 Min. Lesezeit·Aktualisiert Oktober 2026·Vom ExodeUI-Team

Wie man einen Kippschalter (Toggle Switch) sauber animiert

Umfassender Leitfaden zur Animation von Kippschaltern: Daumenverschiebung, Farbwechsel der Spur, Federphysik vs. CSS-Übergänge und ARIA-Barrierefreiheit.

Kurzfassung und Definition

Kernaussage

Ein gut gestalteter Kippschalter bewegt den Schalterknopf und passt die Hintergrundfarbe der Spur zeitgleich als Reaktion auf die Eingabe an. Der Knopf sollte eine unterbrechbare Federphysik oder einen kurzen 150–200 ms Übergang mittels transform: translateX nutzen. Der Schalter muss role="switch" und aria-checked für Bildschirmleser bereitstellen und prefers-reduced-motion respektieren.

Warum Schalteranimationen in der Praxis oft scheitern

Kippschalter werden häufig und rasch hintereinander bedient. Die typischsten Fehler entstehen, wenn ein starrer CSS-Übergang mitten im Ablauf unterbrochen wird: Der Schalterknopf springt ruckartig zurück oder gerät aus dem Takt. Federphysik oder kurze, deterministische Transform-Übergänge verhindern Ruckler, wenn Nutzer zweimal hintereinander klicken.

Knopfverschiebung und Spurfüllung

Animieren Sie den Schalterknopf mit transform: translateX() statt mit left oder margin-left, da Transform-Werte keine Neukalkulation des Layouts und kein vollständiges Repaint auslösen. Ergänzen Sie die Bewegung beim Drücken um eine dezente Dehnung (z. B. scaleX(1.1)), um Trägheit zu simulieren.

  • Verschieben Sie den Knopf stets mit transform: translateX()
  • Blenden Sie die Spurfarbe über 150 bis 200 ms weich über
  • Behalten Sie eine kreisrunde Form oder den Eckenradius der Spur bei
  • Gewährleisten Sie ein Touch-Ziel von mindestens 44x44 px auf Mobilgeräten

Tastaturnavigation und Fokus-Zustände

Entfernen Sie niemals den Fokusring eines Schalters. Tastaturnutzer steuern Toggles mit der Tab-Taste an und schalten den Zustand mit der Leertaste um. Stellen Sie sicher, dass die :focus-visible-Kontur die gesamte Spur mit ausreichendem Kontrast umschließt.

Verhalten bei reduzierter Bewegung

Wenn Nutzer prefers-reduced-motion aktivieren, gestalten Sie den Farbwechsel unmittelbar oder sehr kurz (50 ms) und platzieren Sie den Knopf direkt an der Endposition ohne physikalisches Nachfedern.

Produktionsnahes Implementierungsbeispiel

Implementierung der interaktiven Komponente
/* Accessible toggle switch */
.switch-track {
  width: 48px;
  height: 28px;
  background-color: #d1d5db;
  border-radius: 9999px;
  transition: background-color 180ms ease-out;
  cursor: pointer;
}

.switch-track[aria-checked="true"] {
  background-color: #ff4a1c;
}

.switch-thumb {
  width: 22px;
  height: 22px;
  background: white;
  border-radius: 50%;
  transform: translateX(3px);
  transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

.switch-track[aria-checked="true"] .switch-thumb {
  transform: translateX(23px);
}

@media (prefers-reduced-motion: reduce) {
  .switch-track, .switch-thumb {
    transition: none;
  }
}

Wichtige Prinzipien

  • Nutzen Sie transform: translateX() für flüssige 60 FPS ohne Reflows
  • Halten Sie die Animationsdauer unter 200 ms oder nutzen Sie gedämpfte Federn
  • Verwenden Sie role="switch" mit synchronisiertem aria-checked-Status
  • Garantieren Sie eine Berührungsfläche von mindestens 44x44 px auf Touchscreens

Häufige Fragen

Quellen

  1. Switch Pattern — W3C WAI-ARIA Authoring Practices
  2. CSS Transforms Module Level 1 — W3C

Verwandte Guides und Beispiele

Model switch states once, test across frameworks.

ExodeUI keeps active states, springs and inputs in one open .exode file with runtimes for React, iOS and Android. Community is free.

See interactive toggle example
Kostenlos testen