Back

Animationen mit Tailwind CSS Plugins hinzufügen

Animationen mit Tailwind CSS Plugins hinzufügen

Sie haben eine saubere Tailwind-Benutzeroberfläche erstellt, aber sie wirkt statisch. Das Hinzufügen von Bewegung sollte eigentlich einfach sein – bis Sie vor einer leeren tailwind.config.js stehen und sich fragen, ob Sie ein Plugin, ein Keyframe oder etwas ganz anderes benötigen. Hier ist eine klare Übersicht Ihrer Optionen.

Wichtigste Erkenntnisse

  • Tailwind liefert vier integrierte Animations-Utilities (animate-spin, animate-ping, animate-pulse, animate-bounce), die Loader, Skelette, Badges und grundlegende Aufmerksamkeitshinweise abdecken.
  • Für Ein-/Ausgangsanimationen, gerichtete Slides und scroll-getriggerte Reveals füllen Plugins wie tailwindcss-animate und tailwind-animations die Lücken ohne benutzerdefiniertes CSS.
  • Tailwind CSS v4 ermöglicht es Ihnen, benutzerdefinierte Animationen direkt in CSS mit @theme zu definieren, wodurch oft ein Plugin überflüssig wird.
  • Umschließen Sie nicht-essentielle Animationen immer mit motion-safe:, um Nutzer zu respektieren, die reduzierte Bewegung bevorzugen.

Was Tailwind standardmäßig mitbringt

Tailwind liefert vier Animations-Utilities, die überraschend viele reale Anwendungsfälle abdecken:

  • animate-spin — rotierende Loader und Icons
  • animate-ping — Benachrichtigungs-Badges und Radar-Effekte
  • animate-pulse — Skeleton-Loading-Screens
  • animate-bounce — Scroll-Indikatoren und Aufmerksamkeitshinweise

Für einfaches Status-Feedback – ein Lade-Spinner auf einem Submit-Button, ein pulsierendes Skelett während Daten geladen werden – sind diese integrierten Tailwind CSS Animationen oft alles, was Sie brauchen. Kombinieren Sie sie mit Transition-Utilities (transition, duration-300, ease-in-out) für Hover- und Focus-Zustände, und Sie können die meisten Mikro-Interaktionen ohne ein Plugin abdecken. Sie können alle diese Utilities in der offiziellen Tailwind-Animationsdokumentation erkunden.

Wann die integrierten Utilities ausreichen: Loader, Skelette, Badges und grundlegende Hover-Übergänge.

Wann Sie zu einem Tailwind Animation Plugin greifen sollten

Die integrierten Utilities haben Grenzen. Sie enthalten keine Ein-/Ausgangsanimationen, gerichtete Slides, Flips oder scroll-getriggerte Reveals. Hier rechtfertigen Tailwind Animation Plugins ihren Einsatz.

tailwindcss-animate

tailwindcss-animate fügt komponierbare Ein- und Ausgangs-Utilities hinzu:

<!-- Fade and zoom in on mount -->
<div class="animate-in fade-in zoom-in duration-300">...</div>

<!-- Slide out to the top on dismiss -->
<div class="animate-out slide-out-to-top fade-out duration-200">...</div>

Es bietet auch feinkörnige Steuerungen – delay-150, repeat-infinite, fill-mode-forwards, direction-alternate – die es Ihnen ermöglichen, Animationen ohne benutzerdefiniertes CSS zu optimieren.

Allerdings hat das Plugin seit 2023 kein neues Release mehr erhalten, sodass die Kompatibilität mit neueren Tailwind-Versionen je nach Setup variieren kann. Einige moderne Tailwind v4 Stacks verwenden stattdessen neuere Animations-Pakete, die für die CSS-First-Architektur des Frameworks konzipiert sind.

tailwind-animations

tailwind-animations verfolgt einen anderen Ansatz: eine große Bibliothek benannter Animationen (animate-fade-in, animate-shake, animate-heartbeat, animate-jelly und viele mehr).

<div class="animate-fade-in">
  Fade in box
</div>

Das Plugin unterstützt auch scroll-basierte Animations-Utilities unter Verwendung der CSS-Eigenschaft animation-timeline.

<!-- Reveal on scroll using CSS View Timeline -->
<div class="timeline-view animate-fade-in-up animate-range-gradual">...</div>

Diese scroll-getriebenen Animationen basieren auf neueren Browser-Features wie animation-timeline, sodass die Browser-Unterstützung je nach Zielgruppe variieren kann.

Tailwind CSS v4 und der CSS-First-Ansatz

Wenn Sie Tailwind CSS v4 verwenden, ist der empfohlene Weg zum Hinzufügen benutzerdefinierter Animationen direkt in Ihrem CSS mit @theme:

@theme {
  --animate-wiggle: wiggle 1s ease-in-out infinite;

  @keyframes wiggle {
    0%, 100% { transform: rotate(-3deg) }
    50% { transform: rotate(3deg) }
  }
}

Dadurch wird animate-wiggle sofort als Utility-Klasse verfügbar – kein Plugin erforderlich. Für einmalige benutzerdefinierte Animationen ist dies oft sauberer als die Installation einer Abhängigkeit.

Kompatibilitätshinweis: Einige Plugins wurden für Tailwind v3 entwickelt und unterstützen möglicherweise die CSS-First-Architektur von v4 nicht vollständig. Prüfen Sie immer das Repository oder die Dokumentation eines Plugins, bevor Sie es zu einem v4-Projekt hinzufügen.

Vergessen Sie nicht die Barrierefreiheit

Umschließen Sie jede nicht-essentielle Animation mit motion-safe:, damit Nutzer, die reduzierte Bewegung bevorzugen, nicht beeinträchtigt werden:

<svg class="motion-safe:animate-spin ...">...</svg>

Die motion-reduce:-Variante von Tailwind funktioniert umgekehrt – sie wendet Styles nur an, wenn reduzierte Bewegung bevorzugt wird. Verwenden Sie beide, um jedem Nutzer ein angenehmes Erlebnis zu bieten.

Die Wahl Ihres Ansatzes

BedarfLösung
Loader, Skelett, BadgeIntegrierte animate-* Utilities
Ein-/Ausgang, Modal, Toasttailwindcss-animate
Umfangreiche benannte Animationen, Scroll-Revealstailwind-animations
Einmalige benutzerdefinierte Animation@theme in CSS (v4) oder theme.extend.keyframes (v3)

Fazit

Beginnen Sie mit dem, was Tailwind bereits bietet. Die vier integrierten Animations-Utilities und die Transition-Klassen bewältigen die meisten alltäglichen Mikro-Interaktionen. Wenn Sie Ein-/Ausgangssequenzen, gerichtete Slides oder scroll-getriggerte Reveals benötigen, kann ein Plugin wie tailwindcss-animate oder tailwind-animations nahtlos integriert werden. Wenn Sie v4 verwenden, versuchen Sie, benutzerdefinierte Animations-Tokens in CSS zu definieren, bevor Sie überhaupt zu einem Paket greifen. Welchen Weg Sie auch wählen, denken Sie daran, die prefers-reduced-motion Media Query zu respektieren, damit jeder Nutzer ein angenehmes Erlebnis erhält.

Häufig gestellte Fragen (FAQs)

Das Plugin wurde ursprünglich für Tailwind v3 entwickelt und hat seit 2023 kein neues Release mehr erhalten. Die Kompatibilität mit Tailwind v4 hängt vom Projekt-Setup ab, prüfen Sie daher das Plugin-Repository, bevor Sie es in einem v4-Projekt verwenden. Viele seiner Animationen können auch direkt mit der v4 @theme-Direktive nachgebildet werden.

In Tailwind v4 definieren Sie ein benutzerdefiniertes Animations-Token innerhalb eines @theme-Blocks in Ihrer CSS-Datei mit einer --animate- Variable und einer entsprechenden @keyframes-Regel. In v3 erweitern Sie theme.extend.keyframes und theme.extend.animation in Ihrer tailwind.config.js. Beide Ansätze machen die Animation als Standard-Utility-Klasse verfügbar.

Transition-Utilities wie transition, duration und ease steuern Eigenschaftsänderungen zwischen zwei Zuständen, wie Hover oder Focus. Animation-Utilities wie animate-spin führen Keyframe-basierte Sequenzen aus, die sich wiederholen, umkehren oder einmal abspielen können. Verwenden Sie Transitions für einfache Zustandsänderungen und Animationen für kontinuierliche oder mehrstufige Bewegungen.

CSS-basierte Animationen in Tailwind sind in der Regel performant, da sie auf dem Compositor-Thread laufen, wenn transform und opacity animiert werden. Vermeiden Sie die Animation von Layout-Eigenschaften wie width oder height. Scroll-getriggerte Animationen mit dem CSS animation-timeline Feature können ebenfalls effizient sein, aber die Browser-Unterstützung sollte überprüft werden, bevor Sie sich in der Produktion darauf verlassen.

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay