Οδηγοί · 01

Μεταβάσεις

Κάθε component δέχεται ένα transition: μια καμπύλη timing ή ένα ελατήριο. Πώς να επιλέξετε, και τι συμβαίνει όταν μια κίνηση διακόπτεται.

Δύο είδη μετάβασης

Μια μετάβαση είναι είτε { duration, easing } είτε { tempo: 'spring', spring }. Δώστε την στο prop transition οποιουδήποτε component. Τα components που κινούν πολλά πράγματα ταυτόχρονα δέχονται ένα δεύτερο prop, όπως το layoutTransition στο MotionList για στοιχεία που γλιστρούν σε νέες θέσεις.

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 }

Ελατήρια με διάρκεια

Ένα ελατήριο κανονικά τρέχει όσο χρειάζεται η φυσική του. Προσθέστε duration και το ελατήριο βαθμονομείται ώστε να ηρεμεί ακριβώς τότε, κρατώντας τον χαρακτήρα του (πόσο αναπηδά) και ταιριάζοντας στο timing σας. Συγκρίνετε καμπύλες timing και ελατήρια στα ίδια τρία components παρακάτω.

Προετοιμασία παραδείγματος…

Διακοπές

Κάθε component ξεκινά νέα κίνηση από ό,τι φαίνεται στην οθόνη. Ένα ελατήριο κρατά επίσης την τρέχουσα ταχύτητά του, οπότε ένα δεύτερο κλικ αναστρέφει την κίνηση ομαλά. Μια καμπύλη timing ξεκινά ξανά από την τρέχουσα θέση με νέα καμπύλη.

  • Αριθμοί: μια νέα τιμή συνεχίζει από τις γλυφές στην οθόνη.
  • Ύψος και εναλλαγές: το μέγεθος συνεχίζει από το μέγεθος στην οθόνη.
  • Λίστες: τα στοιχεία που μετακινούνται σε νέα θέση κρατούν την ταχύτητά τους.

Έτοιμες μεταβάσεις

Το motionTokens συγκεντρώνει μερικές συνεπείς αισθήσεις: τέσσερα ελατήρια, τέσσερις καμπύλες timing και τέσσερις διάρκειες. Είναι απλά αντικείμενα, οπότε κάντε spread σε ένα για να αλλάξετε ένα μόνο πεδίο.

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

Το easing δέχεται linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut ή έναν πίνακα κυβικής Bézier όπως [0.22, 1, 0.36, 1].

Αναζήτηση

Πληκτρολογήστε για αναζήτηση στην τεκμηρίωση.