Guides · 01

Übergänge

Jede Komponente nimmt eine transition: eine Timing-Kurve oder eine Feder. Wie du wählst und was passiert, wenn eine Bewegung unterbrochen wird.

Zwei Arten von Übergängen

Ein Übergang ist entweder { duration, easing } oder { tempo: 'spring', spring }. Übergib ihn der Prop transition einer beliebigen Komponente. Komponenten, die mehrere Dinge gleichzeitig bewegen, nehmen eine zweite Prop, etwa layoutTransition bei MotionList für Elemente, die an neue Positionen gleiten.

transitions.js
// Timing: a duration and a curve.
{ duration: 300, easing: 'easeOut' }
{ duration: 600, easing: [0.22, 1, 0.36, 1] }

// Spring: physics that keeps its speed when interrupted.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 } }

// Spring with duration: calibrated to settle exactly then.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 }, duration: 500 }

Federn mit Dauer

Eine Feder läuft normalerweise so lange, wie ihre Physik es braucht. Mit duration wird die Feder so kalibriert, dass sie genau dann zur Ruhe kommt – sie behält ihren Charakter (wie stark sie federt) und passt trotzdem in dein Timing. Vergleiche Timing-Kurven und Federn an denselben drei Komponenten unten.

Beispiel wird vorbereitet…

Unterbrechungen

Jede Komponente startet eine neue Bewegung bei dem, was auf dem Bildschirm ist. Eine Feder behält zusätzlich ihre aktuelle Geschwindigkeit, sodass ein zweiter Klick die Bewegung weich umkehrt. Eine Timing-Kurve startet ab der aktuellen Position mit einer neuen Kurve.

  • Zahlen: Ein neuer Wert setzt bei den Glyphen auf dem Bildschirm an.
  • Höhe und Wechsel: Die Größe setzt bei der Größe auf dem Bildschirm an.
  • Listen: Elemente, die an eine neue Position wandern, behalten ihre Geschwindigkeit.

Fertige Übergänge

motionTokens sammelt ein paar stimmige Bewegungsgefühle: vier Federn, vier Timing-Kurven und vier Dauern. Es sind einfache Objekte, du kannst also eines spreaden, um ein einzelnes Feld zu ändern.

tokens.js
import { motionTokens } from '@kkwaenggwari/animated-chorus';

motionTokens.spring.quick; // snappy UI feedback
motionTokens.spring.basic; // the default feel
motionTokens.spring.gentle; // panels and height
motionTokens.spring.bouncy; // playful numbers
motionTokens.easing.expoOut; // { duration: 420, easing: 'expoOut' }
motionTokens.duration.fast; // 140

Easing-Namen

easing akzeptiert linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut oder ein kubisches Bézier-Array wie [0.22, 1, 0.36, 1].

Suchen

Tippe, um die Dokumentation zu durchsuchen.