Cubic-Bezier-Editor
CSS-Easing-Kurven im Cubic-Bezier-Editor per Drag-and-drop gestalten, live mit linear vergleichen und als cubic-bezier() oder linear() kopieren.
Ziehen Sie die beiden Anfasser (P1 und P2). Die Zeit läuft von links nach rechts, der Fortschritt von unten nach oben; für ein Nachfedern dürfen die Anfasser über 1 oder unter 0 liegen. Ist ein Anfasser fokussiert, nutzen Sie die Pfeiltasten (mit Umschalt 0,1).
Animationsvorschau
Die Animation ist pausiert, weil Ihr System reduzierte Bewegung anfordert. Drücken Sie auf Abspielen, um sie trotzdem zu starten.
Dieselbe Kurve, abgetastet als CSS-Easing linear() (Chrome 113+, Firefox 112+, Safari 17.2+). Mehr Punkte folgen der Kurve genauer.
So nutzen Sie den Cubic-Bezier-Editor
- Ziehen Sie die beiden Anfasser im Diagramm. P1 (der erste Kontrollpunkt) formt den Anfang der Bewegung, P2 das Ende. Die Zeit läuft von links nach rechts, der Fortschritt von unten nach oben.
- Oder tippen Sie einen Wert in Wert für cubic-bezier() ein: ein vollständiges
cubic-bezier(0.4, 0, 0.2, 1), vier Zahlen oder ein Schlüsselwort wieease-in-out. Die Felder x1, y1, x2 und y2 ändern jeweils eine Koordinate. - Starten Sie mit dem Menü Vorlagen (CSS-Schlüsselwörter, die Familien von Sine bis Back und die Kurven von Material Design) oder mit den Schlüsselwort-Schaltflächen. Entspricht Ihre Kurve einer Vorlage, erscheint deren Name neben den Schaltflächen.
- Beobachten Sie die Animationsvorschau: Der Punkt auf Ihre Kurve und der Punkt auf linear legen dieselbe Strecke in derselben Dauer zurück. Mit Pause/Abspielen und Neu starten vergleichen Sie beide.
- Kopieren Sie das Ergebnis unter CSS-Timing-Funktion oder kopieren Sie die Näherung mit linear() und wählen Sie deren Anzahl an Segmenten.
Tastatur: Fokussieren Sie einen Anfasser und verschieben Sie ihn mit den Pfeiltasten um 0,01, mit gedrückter Umschalttaste um 0,1.
Ist Ihr System auf reduzierte Bewegung eingestellt, startet die Animation pausiert. Drücken Sie Abspielen, wenn Sie sie trotzdem sehen möchten. Alles läuft lokal in Ihrem Browser.
Was cubic-bezier() bedeutet
Eine CSS-Easing-Funktion ordnet der verstrichenen Zeit eines Übergangs (0 bis 1) seinen Fortschritt (0 bis 1) zu. cubic-bezier(x1, y1, x2, y2) beschreibt diese Zuordnung mit einer kubischen Bézierkurve, die bei (0, 0) beginnt, bei (1, 1) endet und von zwei Kontrollpunkten gezogen wird: P1 = (x1, y1) und P2 = (x2, y2).
- x-Werte sind Zeitpunkte und müssen zwischen 0 und 1 bleiben, sonst wäre die Funktion keine gültige Timing-Kurve. Der Editor hält sie in diesem Bereich.
- y-Werte sind Fortschritt und dürfen unter 0 oder über 1 liegen. Ein y über 1 lässt die Animation über ihr Ziel hinausschießen und zurückkommen, wie bei den Back-Kurven; unter 0 bewegt sie sich zuerst rückwärts.
- Eine steile Kurve bedeutet schnelle Bewegung, eine flache langsame.
ease-outbeginnt schnell und endet langsam, was sich für Elemente, die ins Bild kommen, natürlich anfühlt.ease-inmacht das Gegenteil und passt zu Elementen, die verschwinden.
Die CSS-Schlüsselwörter sind Abkürzungen: ease = cubic-bezier(0.25, 0.1, 0.25, 1), ease-in = (0.42, 0, 1, 1), ease-out = (0, 0, 0.58, 1), ease-in-out = (0.42, 0, 0.58, 1) und linear = (0, 0, 1, 1).
Die Näherung mit linear()
Die neuere Funktion linear() listet Fortschrittswerte zu gleichmäßig verteilten Zeitpunkten auf, z. B. linear(0, 0.25, 0.5, 0.75, 1), und verbindet sie mit geraden Linien. Das Tool tastet Ihre Kurve ab (es löst die Bézierkurve für jeden Zeitschritt) und schreibt die Werte mit drei Nachkommastellen. Mit 20 bis 40 Segmenten ist das Ergebnis optisch nicht von der Kurve zu unterscheiden. Der eigentliche Vorteil von linear() liegt bei Kurven, die eine Bézierkurve nicht zeichnen kann, etwa Abpraller und Federn – es erlaubt aber auch eine einheitliche Syntax. linear() funktioniert in Chrome und Edge ab 113, Firefox ab 112 und Safari ab 17.2. Behalten Sie den cubic-bezier()-Wert daher als Fallback.
Häufige Fragen
Wo setze ich den Wert ein?
In transition-timing-function, animation-timing-function oder in der Kurzschreibweise: transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);. Die Web Animations API akzeptiert ihn als easing.
Welche Dauer ist sinnvoll?
Kleine Änderungen an der Oberfläche dauern meist 150 bis 300 ms, große Bewegungen über den Bildschirm 300 bis 500 ms. Längere Animationen wirken schnell träge.
Warum kann ich einen Anfasser nicht über den linken oder rechten Rand ziehen?
Weil x die Zeit ist und die Zeit nicht rückwärts laufen kann: CSS lehnt x-Werte außerhalb von 0 bis 1 ab.
Welche Kurven verwendet Material Design?
Die klassische Standardkurve ist cubic-bezier(0.4, 0, 0.2, 1), dazu kommen die Varianten Decelerate, Accelerate und Sharp. Material 3 ergänzt die Emphasized-Kurven. Alle finden Sie im Menü Vorlagen.
Wie gehe ich mit reduzierter Bewegung um?
Berücksichtigen Sie @media (prefers-reduced-motion: reduce) in Ihrem CSS: Verkürzen oder entfernen Sie große Bewegungen und behalten Sie einfache Überblendungen bei.
Ähnliche Tools
- Box-Shadow-Generator Mehrschichtige CSS-Schatten mit Live-Vorschau gestalten. Versatz, Unschärfe, Ausdehnung, Farbe, Deckkraft und Inset einstellen und den Code kopieren.
- Flexbox- und Grid-Generator Flexbox- und CSS-Grid-Layouts visuell erstellen. Container und Elemente einstellen, Grid-Bereiche benennen, live ansehen und sauberes CSS und HTML kopieren.
- CSS-Farbverlauf-Generator Lineare, radiale und konische CSS-Farbverläufe mit Live-Vorschau erstellen. Farbstopps setzen und ziehen, Winkel wählen und sauberen CSS-Code kopieren.