Gidsen · 01
Overgangen
Elk component neemt één transition: een timingcurve of een veer. Hoe je kiest, en wat er gebeurt als een beweging wordt onderbroken.
Twee soorten overgangen
Een overgang is { duration, easing } of { tempo: 'spring', spring }. Geef hem mee aan de transition-prop van elk component. Componenten die meerdere dingen tegelijk bewegen, nemen een tweede prop, zoals layoutTransition op MotionList voor items die naar een nieuwe plek glijden.
// 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 }Veren met een duur
Een veer duurt normaal zo lang als zijn natuurkunde nodig heeft. Voeg duration toe en de veer wordt zo afgesteld dat hij precies dan tot rust komt, met behoud van zijn karakter (hoeveel hij verent) en passend bij jouw timing. Vergelijk hieronder timingcurves en veren op dezelfde drie componenten.
Voorbeeld voorbereiden…
Onderbrekingen
Elk component start een nieuwe beweging vanaf wat op het scherm staat. Een veer behoudt ook zijn huidige snelheid, dus een tweede klik keert de beweging soepel om. Een timingcurve begint opnieuw vanaf de huidige positie met een verse curve.
- Getallen: een nieuwe waarde gaat verder vanaf de glyphs op het scherm.
- Hoogte en wissels: de grootte gaat verder vanaf de grootte op het scherm.
- Lijsten: items die naar een nieuwe plek gaan, behouden hun snelheid.
Kant-en-klare overgangen
motionTokens verzamelt een paar consistente gevoelens: vier veren, vier timingcurves en vier duren. Het zijn gewone objecten, dus spread er een om één veld te veranderen.
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; // 140Namen van easing
easing accepteert linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut, of een kubische Bézier-array zoals [0.22, 1, 0.36, 1].