Ръководства · 01

Преходи

Всеки компонент приема един transition: крива на timing или пружина. Как да изберете и какво става, когато движение бъде прекъснато.

Два вида преходи

Преходът е или { duration, easing }, или { tempo: 'spring', spring }. Подайте го на prop transition на който и да е компонент. Компонентите, които движат няколко неща наведнъж, приемат втори prop, например layoutTransition при MotionList за елементи, плъзгащи се към нови позиции.

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 }

Пружини с продължителност

Пружината обикновено трае толкова, колкото изисква физиката ѝ. Добавете duration и пружината се калибрира да спре точно тогава, като запазва характера си (колко подскача) и се вписва във вашия тайминг. Сравнете кривите на timing и пружините на същите три компонента по-долу.

Подготовка на примера…

Прекъсвания

Всеки компонент започва ново движение от това, което е на екрана. Пружината запазва и текущата си скорост, така че второ кликване плавно обръща движението. Кривата на timing започва отново от текущата позиция с нова крива.

  • Числа: новата стойност продължава от глифовете на екрана.
  • Височина и смени: размерът продължава от размера на екрана.
  • Списъци: елементите, които отиват на нова позиция, запазват скоростта си.

Готови преходи

motionTokens събира няколко съгласувани усещания: четири пружини, четири криви на timing и четири продължителности. Това са обикновени обекти, така че разгънете един, за да смените едно поле.

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

Имена на easing

easing приема linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut или масив на кубична крива на Безие, например [0.22, 1, 0.36, 1].

Търсене

Пишете, за да търсите в документацията.