Przewodniki · 01

Przejścia

Każdy komponent przyjmuje jedno transition: krzywą timing albo sprężynę. Jak wybierać i co się dzieje, gdy ruch zostaje przerwany.

Dwa rodzaje przejść

Przejście to albo { duration, easing }, albo { tempo: 'spring', spring }. Przekaż je do propa transition dowolnego komponentu. Komponenty poruszające kilka rzeczy naraz przyjmują drugi prop, jak layoutTransition w MotionList dla elementów przechodzących na nowe pozycje.

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 }

Sprężyny z czasem trwania

Sprężyna zwykle trwa tyle, ile wymaga jej fizyka. Dodaj duration, a sprężyna zostanie skalibrowana, by ułożyć się dokładnie wtedy, zachowując charakter (jak bardzo sprężynuje) i dopasowując się do twojego timingu. Porównaj krzywe timing i sprężyny na tych samych trzech komponentach poniżej.

Przygotowywanie przykładu…

Przerwania

Każdy komponent zaczyna nowy ruch od tego, co na ekranie. Sprężyna zachowuje też bieżącą prędkość, więc drugie kliknięcie płynnie odwraca ruch. Krzywa timing zaczyna od nowa z bieżącej pozycji ze świeżą krzywą.

  • Liczby: nowa wartość kontynuuje od glifów na ekranie.
  • Wysokość i zamiany: rozmiar kontynuuje od rozmiaru na ekranie.
  • Listy: elementy przechodzące na nową pozycję zachowują prędkość.

Gotowe przejścia

motionTokens zbiera kilka spójnych odczuć: cztery sprężyny, cztery krzywe timing i cztery czasy trwania. To zwykłe obiekty, więc rozwiń jeden, by zmienić pojedyncze pole.

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

Nazwy easing

easing przyjmuje linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut lub tablicę sześciennej krzywej Béziera, na przykład [0.22, 1, 0.36, 1].

Szukaj

Zacznij pisać, aby przeszukać dokumentację.