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.

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 }

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.

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

Nume 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].

Căutare

Tastați pentru a căuta în documentație.