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.

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 }

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.

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

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

Sök

Skriv för att söka i dokumentationen.