Guides · 01
Overgange
Hver komponent tager én transition: en timingkurve eller en fjeder. Hvordan du vælger, og hvad der sker, når en bevægelse afbrydes.
To slags overgange
En overgang er enten { duration, easing } eller { tempo: 'spring', spring }. Giv den til transition-propen på enhver komponent. Komponenter, der flytter flere ting på én gang, tager en anden prop, som layoutTransition på MotionList til elementer, der glider til nye positioner.
// 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 }Fjedre med en varighed
En fjeder kører normalt så længe, dens fysik kræver. Tilføj duration, og fjederen kalibreres til at lande præcis dér, med bevaret karakter (hvor meget den hopper) og tilpasset din timing. Sammenlign timingkurver og fjedre på de samme tre komponenter nedenfor.
Forbereder eksemplet…
Afbrydelser
Hver komponent starter en ny bevægelse fra det, der er på skærmen. En fjeder bevarer også sin aktuelle hastighed, så et andet klik vender bevægelsen blødt. En timingkurve starter forfra fra den aktuelle position med en ny kurve.
- Tal: en ny værdi fortsætter fra glyfferne på skærmen.
- Højde og skift: størrelsen fortsætter fra størrelsen på skærmen.
- Lister: elementer, der flytter til en ny position, bevarer deres hastighed.
Færdige overgange
motionTokens samler nogle få ensartede fornemmelser: fire fjedre, fire timingkurver og fire varigheder. Det er almindelige objekter, så spred et for at ændre ét felt.
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; // 140Easing-navne
easing tager linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut eller et kubisk Bézier-array som [0.22, 1, 0.36, 1].