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.
// 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.
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; // 140Nazwy 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].