CSS-Animationsgenerator
Bauen Sie CSS-@keyframes-Animationen visuell · wählen Sie eine Voreinstellung oder passen Sie Timing, Transformationen und Easing an. Kopieren Sie produktionsreifen Code.
Voreinstellungen
Einstellungen
Vorschau
Generiertes CSS
So funktioniert es
- Animations-Voreinstellung wählen: Wählen Sie aus gängigen Animationen, Fade, Slide, Bounce, Spin, Pulse, Shake und mehr.
- Timing und Verhalten anpassen: Passen Sie Dauer, Verzögerung, Easing-Funktion, Iterationsanzahl und Fill-Modus an.
- CSS kopieren: Die vollständige @keyframes-Definition und die Animation-Kurzform sind bereit, in Ihr Stylesheet eingefügt zu werden.
Warum den CSS-Animations-Generator nutzen?
CSS-Animationen erwecken Oberflächen zum Leben, sie ziehen Aufmerksamkeit auf zentrale Elemente, geben Feedback und schaffen polierte Nutzererlebnisse. @keyframes-Regeln von Hand zu schreiben, erfordert Kenntnisse über die korrekte Syntax, Easing-Namen und Eigenschaftskombinationen. Dieser Generator bietet kuratierte Animations-Voreinstellungen mit Live-Vorschau und lässt Sie jeden Parameter anpassen, die Ausgabe ist produktionsreifes CSS ohne JavaScript oder Animationsbibliotheken.
Funktionen
- Animations-Voreinstellungen: Fade, Slide, Bounce, Spin, Pulse, Shake, Flip, Zoom und mehr, alle mit Live-Vorschau.
- Eigener Keyframes-Editor: Bauen Sie Ihre eigene Keyframe-Animation mit einer visuellen Oberfläche von Grund auf.
- Timing-Steuerung: Stellen Sie Dauer (ms/s), Verzögerung, Easing (linear, ease, cubic-bezier) und Iterationsanzahl ein.
- Animations-Fill-Modi: Steuern Sie das Fill-Verhalten, forwards, backwards, both und none.
- Kein JavaScript erforderlich: Alle erzeugten Animationen sind reines CSS, keine Bibliotheken oder Frameworks nötig.
Häufige Fragen
Was ist der Unterschied zwischen animation und transition in CSS?
CSS-Transitions werden bei Zustandsänderungen (Hover, Fokus, Klassen-Toggle) ausgelöst und animieren zwischen zwei Zuständen. CSS-Animationen verwenden @keyframes, um mehrere Zustände zu definieren, und laufen unabhängig von Nutzerinteraktion, sie können looped, umgekehrt und automatisch starten.
Was ist animation-fill-mode und warum spielt es eine Rolle?
animation-fill-mode steuert, ob das Element die Stile der Animation vor ihrem Start behält (backwards), nach ihrem Ende behält (forwards) oder beides. Ohne forwards springt das Element nach Ende der Animation in seinen Originalstil zurück.
Sind CSS-Animationen performance-freundlich?
Animationen, die nur transform und opacity verwenden, sind GPU-beschleunigt und sehr flüssig. Vermeiden Sie das Animieren von Layout-Eigenschaften wie width, height, margin oder top/left, sie lösen Layout-Neuberechnungen aus und verursachen Ruckler. Bleiben Sie für 60 fps bei transform und opacity.
Was CSS-Animationen wirklich tun
CSS-Animationen interpolieren eine oder mehrere CSS-Eigenschaften zwischen definierten Schlüsselbildern über die Zeit und erzeugen sichtbare Bewegung oder Veränderung ohne JavaScript. Das Modell hat zwei Teile: @keyframes-Regeln definieren, wie eine Animation in prozentbasierten Schritten (0% bis 100%) aussieht, und die Kurzform-Eigenschaft animation (oder ihre Longhand-Geschwister animation-duration, animation-delay, animation-timing-function, animation-iteration-count, animation-fill-mode) sagt dem Browser, wie diese Keyframes-Definition abzuspielen ist. Der Browser behandelt alle Interpolation, Glättung und Frame-Timing in C++, typischerweise GPU-beschleunigt für Transform- und Opacity-Änderungen.
Animationen unterscheiden sich von CSS-Übergängen auf zwei Arten. Übergänge feuern, wenn sich der Zustand eines Elements ändert (ein Hover, ein Klassenwechsel, ein Fokus-Event) und interpolieren zwischen genau zwei Werten: dem alten und dem neuen. Animationen laufen unabhängig vom Zustand, folgen einer beliebigen Anzahl von Keyframe-Schritten, können unendlich loopen, können rückwärts abgespielt werden, und können über CSS oder JavaScript ausgelöst, pausiert und fortgesetzt werden. Übergänge sind das richtige Werkzeug für «in einer halben Sekunde von A zu B springen»; Animationen sind das richtige Werkzeug für «diesen aufmerksamkeitsstarken Puls für immer loopen» oder «diese Eingangssequenz einmal abspielen, wenn das Element erscheint».
Für modernes Webdesign ersetzen CSS-Animationen eine riesige Menge dessen, was früher JavaScript-Bibliotheken erforderte. Spinner, Fade-Ins, Slide-Ups, Aufmerksamkeitspulse, Erfolgshaken: alle sind jetzt Standard-CSS-Muster. Der Kompromiss ist Ausdruckskraft für komplexe Sequenzen. CSS-Animationen können viel, sind aber bei etwa 5 bis 7 Keyframe-Schritten mit synchronisierten Eigenschaftsänderungen nicht mehr bequem; für storyboardte Animationen, scroll-verknüpfte Sequenzen oder alles Dynamische, das von JavaScript-Status abhängt, bleiben dedizierte Bibliotheken (GSAP, Framer Motion, Web Animations API) die bessere Wahl.
Wie dieses Tool hinter den Kulissen funktioniert
Wenn Sie eine Voreinstellung (z. B. «bounce» oder «fade-in») wählen, lädt das Tool eine vordefinierte @keyframes-Zeichenfolge in den Vorschaubereich und wendet die Animation-Eigenschaft auf die Vorschaubox an. Die Keyframes sind echtes CSS, kein benutzerdefiniertes Format: was Sie sehen, ist was Sie zum Kopieren erhalten. Schieberegler aktualisieren Animation-Timing-Werte (Dauer, Verzögerung, Iterationsanzahl), indem sie die inline animation-Eigenschaft in Echtzeit bearbeiten, sodass die Vorschau jede Änderung sofort widerspiegelt, ohne die Seite neu zu laden.
Die Auswahl der Easing-Funktion verwendet die standardmäßigen CSS-Timing-Function-Werte: linear (konstante Geschwindigkeit), ease (Standard, langsamer Start und Ende), ease-in (langsamer Start), ease-out (langsames Ende), ease-in-out (langsamer Start und Ende) oder cubic-bezier(x1, y1, x2, y2) für benutzerdefinierte Kurven. Die sichtbare Animationskurve wird durch die native Timing-Function-Implementierung des Browsers berechnet; die Vorschau ist die tatsächliche browser-gerenderte Ausgabe, keine JavaScript-Simulation.
Das Code-Feld zeigt das vollständige CSS, das Sie in ein Stylesheet einfügen müssen: sowohl den @keyframes-Block als auch die .ihre-klasse { animation: ... }-Deklaration. Klicken Sie auf «CSS kopieren» und beide werden als einzelner Textblock in Ihre Zwischenablage geschrieben. Keine Datei wird generiert, kein Server verarbeitet etwas, und das Tool hat kein Backend zum Aufrufen. Die Vorschau, die Code-Generierung und das Schreiben in die Zwischenablage geschehen alle in JavaScript auf Ihrem Gerät. Aktualisieren Sie die Seite und Ihre benutzerdefinierte Konfiguration ist weg, es sei denn, Sie haben sie zuerst kopiert.
Kurze Geschichte der Web-Animation
- Flash dominiert Web-Bewegung, 1996 bis 2010.Adobe Flash (ursprünglich Macromedia) ist das primäre Werkzeug für Web-Animation in den frühen 2000ern. Vektorbasiert, Timeline-gesteuert, mit einer benutzerdefinierten Plugin-Laufzeit. Bis 2010 treibt Flash die meisten Banner-Anzeigen, den YouTube-Videoplayer und Newgrounds-Ära-Spiele an. Dann töten mobile Geräte es: iPhone unterstützte Flash nie, Android lässt die Unterstützung 2012 fallen, Browser deprezieren das Plugin bis 2020.
- CSS-Übergänge in WebKit, 2007.Apples WebKit-Engine liefert 2007
-webkit-transitionaus, das erste häufig eingesetzte CSS-Animations-Primitiv. Stark in frühen iPhone-Web-Apps verwendet. Bis 2009 ist die Eigenschaft im CSS-Spezifikationsprozess und wird bis 2014 ohne Präfix in Browsern ausgeliefert. - CSS Animations Module Level 1, 2009.WebKit fügt im März 2009
-webkit-animationund@-webkit-keyframeshinzu, vor dem W3C CSS Animations Module Level 1-Entwurf (auch 2009). Firefox folgt in Version 5 (2011), IE in Version 10 (2012). Die «kein JavaScript für grundlegende Animationen nötig»-Ära beginnt. - GSAP und JS-Animationsbibliotheken, ab 2008.jQuerys
.animate()-Methode (2006) startet die JS-Animationsbibliothek-Ära; GreenSock Animation Platform (GSAP, 2008 gestartet) wird zum Goldstandard für komplexe sequenzierte Animation, Timeline-Scrubbing und Performance. Bei Disney, Coca-Cola und Awwwards-Marketing-Sites verwendet. Existiert weiter neben CSS-Animationen: GSAP für sequenzierte Komplexität, CSS für deklarative Einfachheit. - Web Animations API standardisiert, 2014 bis 2018.Die W3C Web Animations-Spezifikation bietet eine JavaScript-API, die CSS-Animationen offenlegt und programmatische Kontrolle hinzufügt:
element.animate(keyframes, options). Chrome liefert in Version 36 (2014), Firefox in Version 75 (2020), Safari in Version 13.1 (2020). Überbrückt die Lücke zwischen deklarativem CSS und voller Bibliothekspower JavaScript. - Scroll-gesteuerte Animationen landen, 2023 bis 2024.Das CSS Scroll-driven Animations-Modul führt
animation-timelineein und lässt CSS-Animationen an die Scroll-Position binden statt (oder zusätzlich zu) Zeit. Chrome 115 (Juli 2023) liefert zuerst aus; Safari und Firefox fügen Unterstützung im Laufe von 2024 und 2025 hinzu. Schaltet Parallax-Effekte, Scroll-Fortschrittsindikatoren und Abschnitts-Reveal-Animationen in reinem CSS frei.
Reale Arbeitsabläufe
- Lade-Spinner und Skelett-Zustände.Ein sich drehender Lader (
animation: spin 1s linear infinitemit einem 360-Grad-Rotations-Keyframe) ist die häufigste CSS-Animations-Verwendung. Skelett-Bildschirme mit einem gleitenden Schimmer-Effekt verwenden eine translateX- oder background-position-Animation. Beide sind essentiell für wahrgenommene Performance: während Inhalte laden, sagt die Animation Benutzern «wir arbeiten daran» statt «es ist kaputt». - Hover- und Fokus-Mikrointeraktionen.Buttons, die beim Hovern subtil pulsieren, Karten, die sich beim Fokussieren heben, Symbole, die beim Klicken wackeln: diese Mikrointeraktionen fügen Persönlichkeit ohne Aufdringlichkeit hinzu. Verwenden Sie Animationen mit
animation-iteration-count: 1undanimation-fill-mode: forwardsfür «einmal abspielen und bleiben»-Verhalten oder Übergänge für «zu Hover-Zustand springen»-Muster. - Aufmerksamkeit erregende CTAs.Ein primärer Call-to-Action-Button mit einem langsamen, kontinuierlichen Puls oder einer Atmen-Glühen-Animation zieht das Auge an, ohne aggressiv zu sein. Kombinieren Sie
transform: scale(1) to scale(1.05)mitanimation-iteration-count: infiniteund einer 3- bis 4-Sekunden-Dauer für einen ruhigen, atmenden Rhythmus. Vermeiden Sie schnellere Pulse; sie fühlen sich manisch an und nerven Benutzer schnell. - Seiteneintritt und Abschnitts-Reveal.Fade-In- und Slide-Up-Animationen beim Seitenladen oder Scroll-into-View erzeugen polierte Ankünfte. CSS handhabt den einfachen Fall (Animationen, die einmal beim Laden laufen); für scroll-getriggerte Eingänge fügt IntersectionObserver in JavaScript eine Klasse hinzu, die die Animation auslöst, wenn ein Element in den Viewport eintritt. Moderne scroll-gesteuerte Animationen beginnen, dieses Muster in reinem CSS zu ersetzen.
- Erfolgsfeedback und Fehler-Shakes.Formularsende-Feedback verwendet Animations-Hinweise: ein erfolgreiches Speichern zeigt ein grünes Häkchen mit einer kurzen Bounce-In-Animation, während ein Fehler das Formular kurz schüttelt (
translateX-Keyframes, die zwischen -10px und +10px über 0,4 Sekunden alternieren). Diese kleinen Berührungen lassen Interaktionen reaktiv und absichtlich anfühlen. - Marketing-Hero und Erzählsequenzen.Landing-Pages und Hero-Bereiche verwenden oft inszenierte Eingangsanimationen (Logo fadet ein, Headline gleitet hoch, CTA-Button pulsiert), um die Aufmerksamkeit durch eine entworfene Sequenz zu fokussieren. Animations-Verzögerungen (
animation-delay: 0s, 0.3s, 0.6s) auf drei Geschwisterelementen erzeugen einen gestaffelten Effekt, ohne JavaScript-Orchestrierung zu benötigen.
Häufige Fallstricke und was sie bedeuten
- Layout-Eigenschaften zu animieren tötet die Performance.Eigenschaften wie
width,height,margin,padding,top,left,right,bottomundfont-sizelösen bei jedem Animations-Frame Layout-Neuberechnung aus und verursachen oft Jank oder unter 60fps-Performance. Verwenden Sietransform: translateX()stattleft,transform: scale()stattwidth/heightundopacitystattvisibility. Transform und Opacity werden GPU-kompositiert und lösen kein Layout aus. - Ignorieren von prefers-reduced-motion schadet der Barrierefreiheit.Einige Benutzer erfahren Reisekrankheit oder vestibuläre Störungen, die durch Web-Animationen ausgelöst werden. Die
prefers-reduced-motion: reduce-Media-Query lässt Benutzer auf OS-Ebene abmelden. Wickeln Sie Ihre dekorativen Animationen in@media (prefers-reduced-motion: no-preference) { ... }ein oder setzen Sieanimation-duration: 0.01msfür Benutzer, die reduzierte Bewegung anfordern. Wesentliche Animationen (Lade-Spinner) können bleiben, dekorative sollten die Präferenz respektieren. - Übermäßiger Gebrauch von will-change schadet dem Speicher.Die
will-change-Eigenschaft deutet dem Browser an, ein Element im Voraus zur GPU zu befördern, was Animationen glätten kann. Aber das Hinzufügen vonwill-changezu vielen Elementen verbraucht erheblichen GPU-Speicher. Wenden Sie es nur auf Elemente an, die Sie tatsächlich animieren, idealerweise via JavaScript kurz vor Animationsbeginn hinzugefügt und danach entfernt.will-change: transformauf jedes Element der Seite zu setzen ist ein Antipattern. - animation-fill-mode-Verwirrung.Standardmäßig kehrt ein Element zu seinem ursprünglichen Stil zurück, nachdem eine Animation endet. Um den Endzustand der Animation beizubehalten, verwenden Sie
animation-fill-mode: forwards. Um das Element vor Ablauf der Verzögerung im ersten Zustand der Animation zu starten, verwenden Siebackwards. Um beides zu tun, verwenden Sieboth. Viele «Warum schnappt mein Element zurück?»-Bugs kommen vom Fehlen dieser Eigenschaft. Der Standardwert istnone, was selten das ist, was Sie für einmalige Eingangsanimationen wollen. - Unendliche Animationen entleeren mobile Akkus.Eine
animation-iteration-count: infinite-Animation läuft für immer, hält die GPU aktiv und die Bildschirm-Aktualisierungsrate auf ihrem Maximum. Auf mobilen Geräten entleert dies den Akku merklich. Für dekorative kontinuierliche Animationen (ein Logo, das sanft atmet) erwägen Sie, die Animation zu pausieren, wenn die Seite versteckt ist (document.visibilityState !== 'visible'), oder den Iterationszähler auf eine endliche Zahl wie 3 bis 5 statt unendlich zu begrenzen. - Keyframe-Namenskonflikte im Maßstab.@keyframes-Regelnamen sind innerhalb eines Stylesheets global:
@keyframes fadein einer Datei kollidiert mit@keyframes fadein einer anderen. Für große Codebasen geben Sie Ihren Keyframe-Namen Namespace (@keyframes app-fade-in,@keyframes hero-slide-up), um stille Überschreibungen zu vermeiden. CSS-Module und CSS-in-JS-Bibliotheken handhaben dies automatisch mit Scope-Hashing.
Datenschutz: alles läuft in Ihrem Browser
CSS-Generator-Tools kommen in zwei Geschmacksrichtungen: einfache HTML-Seiten mit clientseitigem JavaScript (privat, schnell) und Cloud-Editoren, die Ihre Projekte speichern (kollaborativ aber mit Datenschutz-Kompromissen). Dieses Tool ist die erste Art. Ihre Schieberegler-Werte, Ihre ausgewählte Voreinstellung, Ihr generiertes CSS: alles bleibt in Ihrer Browser-Sitzung. Aktualisieren Sie die Seite und der Zustand ist weg, es sei denn, Sie haben zuerst das CSS kopiert. Kein Server speichert Ihre Animationswahl, keine Analyse verfolgt, welche Voreinstellungen Sie getestet haben, und kein Konto wird benötigt.
Die Datenschutzeigenschaft zählt vor allem für proprietäre Designarbeit. Ein Studio, das Animationen für ein vertrauliches Kundenprojekt prototypisiert, ein Entwickler, der an den Mikrointeraktionen einer nicht angekündigten App arbeitet, oder ein Designer, der eine Markenkampagne iteriert: jeder Kontext, in dem die Iterationshistorie oder das laufende Design Informationen über die Arbeit verraten könnte. Mit diesem Tool wird nichts erfasst, weil nichts gesendet wird. Öffnen Sie den Netzwerk-Tab des Browsers und Sie werden während der Nutzung null ausgehende Anfragen sehen; nur das erste Seitenladen holt das HTML und JavaScript.
Wann ein anderes Tool die richtige Wahl ist
- GSAP für komplexe sequenzierte Animationen.GreenSock Animation Platform (GSAP) handhabt synchronisierte, sequenzierte, scrubbable Animationen weit besser als reines CSS. Für storyboardte Marketing-Animationen, scroll-verknüpfte Sequenzen mit Reverse-Fähigkeit oder alles, was von JavaScript-Statusänderungen abhängt, ist GSAP der Industriestandard. Kostenlos für die meisten Anwendungsfälle (mit einer Club-Lizenz für einige Plugins).
- Lottie für designer-erstellte Animationen.Lottie (ursprünglich von Airbnb) rendert After-Effects-Animationen als JSON und ermöglicht Designern, komplexe Bewegung in After Effects zu erstellen und direkt ins Web/iOS/Android zu exportieren. Für Animationen, die übersteigen, was handcodierte Keyframes praktisch produzieren können (Charakter-Animationen, komplexes Morphing, Illustrationssequenzen), gewinnt Lotties Design-zu-Code-Pipeline gegenüber manueller CSS-Animation.
- Web Animations API für JavaScript-Kontrolle.Wenn Sie Animationen zur Laufzeit aus JavaScript starten, pausieren, umkehren oder modifizieren müssen, ist die Web Animations API (
element.animate(keyframes, options)) ergonomischer als mit CSS-Klassen zu kämpfen. Gibt ein Animation-Objekt mit Methoden wie.pause(),.play(),.reverse()und einem.finished-Promise zurück. Native Browser-Unterstützung, keine Bibliothek nötig. - requestAnimationFrame für Spielschleifen.Für Animationen, die durch kontinuierliche JavaScript-Logik angetrieben werden (Spielschleifen, Physik-Simulationen, Echtzeit-Datenvisualisierungen), ist
requestAnimationFramemit manuellen Pro-Frame-Eigenschaftsaktualisierungen der richtige Ansatz. CSS-Animationen sind deklarativ und vordefiniert; rAF gibt Ihnen Pro-Frame-Kontrolle darüber, was zu aktualisieren ist. Verwenden Sie Canvas oder WebGL, wenn Sie auch Pixel-Level-Kontrolle benötigen.
Weitere häufig gestellte Fragen
Wie lasse ich eine Animation nur einmal abspielen?
Setzen Sie animation-iteration-count: 1 (was der Standard ist, wenn nicht angegeben). Um das Element nach Abschluss der Animation im Endzustand der Animation zu halten (statt zum ursprünglichen Stil zurückzuschnappen), setzen Sie auch animation-fill-mode: forwards. Die kombinierte Kurzform ist animation: fadeIn 0.5s ease-out forwards;.
Kann ich eine Animation pausieren und fortsetzen?
Ja, mit animation-play-state: paused (oder running). Schalten Sie diese Eigenschaft via JavaScript um (z. B. bei einem Button-Klick) oder in CSS via :hover für «pause beim Hovern»-Muster. Die Animation friert an ihrem aktuellen Punkt ein und wird von dort fortgesetzt, wenn sie wieder auf running gesetzt wird, kein Fortschrittsverlust. Dies funktioniert in Übergängen gleich, aber nur die animation-play-state-Eigenschaft existiert für die Laufzeit-Pause-Kontrolle.
Wie löse ich eine Animation bei Klick oder Scroll aus?
Für Klick-Trigger schalten Sie eine CSS-Klasse via JavaScript um: element.classList.toggle('animate-in'). Die Animation läuft, wenn die Klasse hinzugefügt wird. Für Scroll-Trigger verwenden Sie IntersectionObserver, um zu erkennen, wann das Element in den Viewport eintritt, und fügen die Klasse dann hinzu. Für moderne Browser lassen Sie CSS Scroll-driven Animations den Animationsfortschritt direkt an die Scroll-Position binden, ohne JavaScript, via animation-timeline: scroll().
Warum flackert oder stottert meine Animation?
Die meisten Flacker-/Stotter-Probleme kommen vom Animieren von layout-auslösenden Eigenschaften (width, height, top/left) statt transform-basierter Äquivalente. Wechseln Sie left: 0 zu transform: translateX(0) und die Animation sollte glätten. Andere Ursachen: Overdraw von vielen halbtransparenten Schichten, Layout-Thrashing durch JavaScript, das Stile im selben Frame liest und schreibt, oder übermäßige Schatten und Filter auf dem animierten Element.
Sollte ich Animationen auf barrierefreiheits-kritischen Schnittstellen verwenden?
Verwenden Sie sie, aber respektieren Sie prefers-reduced-motion. Die WCAG 2.1-Richtlinien empfehlen die Option, nicht-essenzielle Bewegung zu deaktivieren. Wickeln Sie dekorative Animationen in @media (prefers-reduced-motion: no-preference) ein, damit Benutzer, die die OS-Präferenz setzen, eine statische Erfahrung erhalten. Wesentliche Feedback-Animationen (Ladeanzeigen, Fehler-Shakes) können bleiben; rein dekorative sollten für sensible Benutzer opt-in sein.
Kann ich cubic-bezier für benutzerdefinierte Easing-Kurven verwenden?
Ja. Die cubic-bezier(x1, y1, x2, y2)-Timing-Funktion lässt Sie jede Easing-Kurve mit zwei Kontrollpunkten definieren. Jeder x-Wert liegt zwischen 0 und 1 (Zeit darstellend), y-Werte können negativ oder größer als 1 sein (Overshoot- und Bounce-Effekte erlauben). Verwenden Sie unser Cubic-Bezier-Tool oder Lea Verous klassisches cubic-bezier.com, um eine Kurve visuell auszuwählen. Übliche Voreinstellungs-Alternativen: ease, ease-in, ease-out, ease-in-out und die linear-aliased CSS-Variablen cubic-bezier(0.25, 0.1, 0.25, 1) (Standard ease).