Guider · 01
Övergångar
Varje komponent tar en transition: en timingkurva eller en fjäder. Hur du väljer, och vad som händer när en rörelse avbryts.
Två sorters övergångar
En övergång är antingen { duration, easing } eller { tempo: 'spring', spring }. Skicka den till transition-propen på valfri komponent. Komponenter som flyttar flera saker samtidigt tar en andra prop, som layoutTransition på MotionList för objekt som glider till nya platser.
// 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 }Fjädrar med en varaktighet
En fjäder pågår normalt så länge dess fysik kräver. Lägg till duration så kalibreras fjädern att landa exakt då, med bibehållen karaktär (hur mycket den studsar) och anpassad till din timing. Jämför timingkurvor och fjädrar på samma tre komponenter nedan.
Förbereder exemplet…
Avbrott
Varje komponent startar en ny rörelse från det som syns på skärmen. En fjäder behåller dessutom sin aktuella hastighet, så ett andra klick vänder rörelsen mjukt. En timingkurva börjar om från den aktuella positionen med en ny kurva.
- Siffror: ett nytt värde fortsätter från glyferna på skärmen.
- Höjd och byten: storleken fortsätter från storleken på skärmen.
- Listor: objekt som flyttar till en ny plats behåller sin hastighet.
Färdiga övergångar
motionTokens samlar några enhetliga känslor: fyra fjädrar, fyra timingkurvor och fyra varaktigheter. De är vanliga objekt, så sprid ett för att ändra ett enda fält.
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; // 140Namn på easing
easing tar linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut eller en kubisk Bézier-array som [0.22, 1, 0.36, 1].