Kılavuzlar · 01

Geçişler

Her bileşen tek bir transition alır: bir timing eğrisi ya da bir yay. Nasıl seçilir ve bir hareket kesildiğinde ne olur.

İki tür geçiş

Bir geçiş ya { duration, easing } ya da { tempo: 'spring', spring } biçimindedir. Onu herhangi bir bileşenin transition prop'una verin. Aynı anda birkaç şeyi hareket ettiren bileşenler ikinci bir prop alır; örneğin yeni konumlara süzülen öğeler için MotionList üzerinde layoutTransition.

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 }

Süreli yaylar

Bir yay normalde fiziğinin gerektirdiği kadar sürer. duration ekleyin, yay tam o anda yerleşecek şekilde ayarlansın; karakterini (ne kadar sektiğini) korurken zamanlamanıza uysun. Aşağıda aynı üç bileşende timing eğrilerini ve yayları karşılaştırın.

Örnek hazırlanıyor…

Kesintiler

Her bileşen yeni bir hareketi ekranda olandan başlatır. Bir yay mevcut hızını da korur; ikinci tıklama hareketi akıcı biçimde döndürür. Bir timing eğrisi mevcut konumdan yeni bir eğriyle yeniden başlar.

  • Sayılar: yeni bir değer ekrandaki gliflerden devam eder.
  • Yükseklik ve geçişler: boyut ekrandaki boyuttan devam eder.
  • Listeler: yeni konuma giden öğeler hızlarını korur.

Hazır geçişler

motionTokens birkaç tutarlı his toplar: dört yay, dört timing eğrisi ve dört süre. Bunlar sade nesnelerdir; tek bir alanı değiştirmek için birini spread edin.

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 adları

easing; linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut ya da [0.22, 1, 0.36, 1] gibi bir kübik Bézier dizisi kabul eder.

Ara

Belgelerde aramak için yazın.