Ghiduri · 01
Tranziții
Fiecare componentă primește un transition: o curbă timing sau un arc. Cum alegeți și ce se întâmplă când o mișcare e întreruptă.
Două tipuri de tranziție
O tranziție este fie { duration, easing }, fie { tempo: 'spring', spring }. Transmiteți-o prop-ului transition al oricărei componente. Componentele care mișcă mai multe lucruri deodată primesc un al doilea prop, cum ar fi layoutTransition la MotionList pentru elementele care alunecă spre poziții noi.
// 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 }Arcuri cu durată
Un arc rulează în mod normal cât îi cere fizica. Adăugați duration, iar arcul este calibrat să se așeze exact atunci, păstrându-și caracterul (cât sare) și potrivindu-se cu timingul dumneavoastră. Comparați mai jos curbele timing și arcurile pe aceleași trei componente.
Se pregătește exemplul…
Întreruperi
Fiecare componentă pornește o mișcare nouă de la ce e pe ecran. Un arc își păstrează și viteza curentă, așa că un al doilea clic întoarce mișcarea lin. O curbă timing pornește din nou de la poziția curentă, cu o curbă nouă.
- Numere: o valoare nouă continuă de la glifele de pe ecran.
- Înălțime și schimbări: mărimea continuă de la mărimea de pe ecran.
- Liste: elementele care se mută spre o poziție nouă își păstrează viteza.
Tranziții gata făcute
motionTokens adună câteva senzații coerente: patru arcuri, patru curbe timing și patru durate. Sunt obiecte simple, așa că faceți spread pe unul ca să schimbați un singur câmp.
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; // 140Nume de easing
easing acceptă linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut sau un tablou Bézier cubic precum [0.22, 1, 0.36, 1].