Zum Inhalt springen
Animation

Easing-Kurven verstehen und richtig einsetzen

Was Easing-Kurven sind, wann du In, Out oder InOut nutzt und wie du cubic-bezier-Werte in framer-motion und CSS einsetzt.

8 Min. LesezeitStand: 10. Juli 2026
Animationframer-motionCSS
Ease-out
cubic-bezier(.22, 1, .36, 1)

Eine Animation wirkt erst dann natürlich, wenn ihr Timing stimmt. Easing-Kurven bestimmen, wie sich eine Bewegung über die Zeit beschleunigt und abbremst. Dieser Leitfaden erklärt die wichtigsten Kurven und wie du sie in React und CSS nutzt.

Das Wichtigste in Kürze
  • Ohne Easing wirkt jede Bewegung mechanisch, weil in der echten Welt nichts mit gleicher Geschwindigkeit startet und stoppt.
  • Ease-Out für alles, was hereinkommt. Ease-In für alles, was verschwindet. Ease-InOut für Bewegungen mit Anfang und Ende.
  • Dieselbe Kurve gehört in CSS und in JavaScript, sonst fühlt sich eine Seite uneinheitlich an.
  • Kurze Dauern wirken hochwertiger als lange. 0,3 bis 0,8 Sekunden sind der brauchbare Bereich.
01

Was Easing bedeutet

Ohne Easing bewegt sich ein Element linear, also mit konstanter Geschwindigkeit. Das wirkt mechanisch. In der echten Welt beschleunigen und bremsen Dinge. Genau das bildet eine Easing-Kurve nach.

Technisch beschreibt eine cubic-bezier-Kurve vier Werte, die den Verlauf zwischen Start und Ziel steuern. Sie lässt sich als Kurve in einem Einheitsquadrat zeichnen.

Wert für CSS
cubic-bezier(0.22, 1, 0.36, 1)
Wert für framer-motion
[0.22, 1, 0.36, 1]
Weich0.9 s
Ohne Easing0.9 s

Vier Kurven zum Umschalten. Unten laufen zwei Punkte dieselbe Strecke, einmal mit Kurve und einmal ohne.

Die Kurve liest sich von links unten nach rechts obenWaagerecht läuft die Zeit, senkrecht der zurückgelegte Weg. Ein steiler Abschnitt heißt schnell, ein flacher heißt langsam. Mehr musst du zum Lesen nicht wissen.
02

In, Out und InOut

Ease-In startet langsam und wird schneller. Gut für Bewegungen, die aus dem Bild verschwinden. Ease-Out startet schnell und läuft weich aus. Ideal für Elemente, die ins Bild kommen, weil das Ende ruhig wirkt.

Ease-InOut ist symmetrisch: langsam am Anfang und Ende, schnell in der Mitte. Passend für Bewegungen, die anfangen und wieder enden, etwa ein Panel, das auf- und zuklappt.

/* kommt herein */  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1); /* geht hinaus */transition-timing-function: cubic-bezier(0.55, 0, 1, 0.45); /* auf und zu */transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
Die Schlüsselwörter von CSS sind grobe Näherungen der drei Fälle.
Häufig gesehen
  • Ease-In für ein Menü, das aufgeht. Es startet zäh und schnappt am Ende zu.
  • Für jede Bewegung eine andere Kurve, weil gerade eine andere gefiel.
  • Linear für alles, weil es die Vorgabe des Browsers ist.
Trägt
  • Ease-Out für alles, was erscheint. Der Anfang ist schnell, das Ende ruhig.
  • Ease-In nur für das Verschwinden. Was weggeht, darf beschleunigen.
  • Ease-InOut für Zustände mit Hin und Zurück, etwa ein Panel.
03

Kurven in framer-motion

In framer-motion gibst du die Kurve als Tupel an, zum Beispiel ease: [0.22, 1, 0.36, 1] in der transition. Diese Kurve läuft besonders weich aus und eignet sich für die meisten Einblendungen.

Halte Dauern kurz. Zwischen 0,3 und 0,8 Sekunden wirken die meisten UI-Bewegungen angenehm. Längere Zeiten fühlen sich schnell träge an.

0,15 sZu kurz. Man sieht den Sprung, nicht den Weg.
0,5 sDer Alltagswert für Ein- und Ausblendungen.Empfohlen
1,6 sZu lang. Man wartet auf die Oberfläche.

Dieselbe Kurve, drei Zeiten. Der brauchbare Bereich ist schmaler, als man beim Bauen denkt.

const ease = [0.22, 1, 0.36, 1] as const; <motion.div  initial={{ opacity: 0, y: 12 }}  animate={{ opacity: 1, y: 0 }}  transition={{ duration: 0.5, ease }}/>
Die Kurve steht als Tupel in der transition, nicht als Text.
Die Dauer nicht mit dem Weg verwechselnWirkt eine Bewegung träge, ist meistens der Weg zu lang, nicht die Zeit. Zwölf Pixel in einer halben Sekunde wirken ruhig, achtzig Pixel in derselben Zeit wirken hektisch.

Drei Kurven decken den Alltag ab.

Eine Seite mit drei Kurven wirkt geordnet, eine mit zwölf wirkt zufällig. Diese drei reichen fast immer.

Weich0.22, 1, 0.36, 1Alles, was hereinkommt
Symmetrisch0.4, 0, 0.2, 1Auf und zu, hin und zurück
Ruhig0.32, 0.72, 0, 1Lange Wege über die Seite
04

Kurven in CSS

In CSS nutzt du denselben Wert als transition-timing-function, zum Beispiel cubic-bezier(0.22, 1, 0.36, 1). So verhalten sich CSS-Übergänge und JavaScript-Animationen konsistent.

Eine kuratierte Sammlung von Kurven mit Vorschau und Kopierfunktion findest du in den Ressourcen der Library.

:root {    --ease-soft: cubic-bezier(0.22, 1, 0.36, 1);} .card {  transition: transform 0.5s var(--ease-soft);}
Einmal als Variable abgelegt, kann der Wert nicht auseinanderlaufen.
Nur opacity und transform bewegenBeide laufen auf der Grafikkarte. Breite, Höhe, top oder left lösen bei jedem Bild ein neues Layout aus, und dann hilft auch die schönste Kurve nichts mehr.
05

Kurven, die fast immer passen

Du brauchst keine Sammlung mit vierzig Kurven. Drei decken den Alltag ab, den Rest holst du dir, wenn eine Bewegung wirklich anders sein soll.

  1. 0.22, 1, 0.36, 1 Läuft sehr weich aus. Die Standardwahl für Einblendungen, Karten und alles, was hereinkommt.
  2. 0.4, 0, 0.2, 1 Symmetrischer und etwas straffer. Passend für Panels, Menüs und Zustände, die auf- und zugehen.
  3. 0.32, 0.72, 0, 1 Startet zügig und kommt sehr ruhig an. Angenehm für lange Wege, etwa einen Wechsel über die halbe Seite.

Wichtiger als die genauen Zahlen ist, dass du dieselbe Kurve überall verwendest. Eine Seite mit drei Kurven wirkt geordnet, eine mit zwölf wirkt zufällig.

Eine Bewegung, die auffällt, ist meistens zu lang, nicht zu schwach.

06

Wann eine Feder besser passt

Eine Easing-Kurve hat eine feste Dauer. Das ist gut für Ein- und Ausblendungen, aber schlecht für alles, was auf eine Eingabe reagiert: Ein Element, das dem Zeiger folgt, kennt sein Ziel noch nicht.

Dafür gibt es Federn. In framer-motion setzt du type: "spring" mit stiffness, damping und mass. Hohe Steifigkeit wirkt schnell, hohe Dämpfung ruhig. Für dezente Bewegungen sind niedrige Steifigkeit und hohe Dämpfung die sichere Wahl.

transition={{  type: "spring",  stiffness: 120,  damping: 20,  mass: 0.6,}}
Eine Feder ohne Nachschwingen: hohe Dämpfung, niedrige Steifigkeit.
Federn schwingen nach, wenn man sie lässtNiedrige Dämpfung sieht in einer Demo verspielt aus und in einer Oberfläche unruhig. Für alles, was oft passiert, gilt: lieber straff und ohne Nachschwingen.

Kurve, wenn du das Ziel kennst. Feder, wenn das Ziel von einer Eingabe kommt.

Teilen
Geschrieben von
Amelie RoesmannCreative DirectionLeonie RoesmannDesign Engineering

Wir bauen Websites und Web-Apps bei Systra Studios in Münster und legen die Bausteine daraus hier ab. Was in den Beiträgen steht, kommt aus echten Projekten, nicht aus einem Werbeprospekt.

Systra Studios: Webdesign aus Münster

Du kennst die Kurven.
Die Werte musst du nicht raten.

Eine Sammlung mit Vorschau: Kurve ansehen, laufen lassen, Wert kopieren. Für CSS und für framer-motion derselbe Wert.

  • Jede Kurve läuft zum Anschauen, bevor du sie nimmst.
  • Ein Klick kopiert den cubic-bezier-Wert.
  • Dieselben Werte stecken in allen Komponenten.
Easings ansehen
Weich0.22, 1, 0.36, 1
Symmetrisch0.4, 0, 0.2, 1
Ruhig0.32, 0.72, 0, 1
Ohne Easing0, 0, 1, 1
FAQ

Häufige Fragen

cubic-bezier(0.22, 1, 0.36, 1). Sie startet zügig und kommt sehr ruhig an, und genau das erwartet man bei etwas, das ins Bild kommt. Nimm sie als Standard und weiche nur ab, wenn eine Bewegung wirklich anders wirken soll.

Deine Frage war nicht dabei? Wir helfen gern weiter.

Kontakt aufnehmen