ガイド · 01

トランジション

すべてのコンポーネントは transition をひとつ受け取ります。タイミングカーブかスプリングです。その選び方と、モーションが中断されたときに起きること。

2 種類のトランジション

トランジションは { duration, easing } か { tempo: 'spring', spring } のどちらかです。どのコンポーネントでも transition prop に渡します。一度に複数のものを動かすコンポーネントは、2 つ目の prop を受け取ります。たとえば MotionList の 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 }

長さを指定したスプリング

スプリングは通常、物理法則が必要とするだけの時間動きます。duration を加えると、スプリングはちょうどその時刻に落ち着くよう調整され、弾み具合という性格を保ったまま指定したタイミングに収まります。下の 3 つのコンポーネントで、タイミングカーブとスプリングを同じ条件で比べてみてください。

サンプルを準備中…

中断

すべてのコンポーネントは、新しいモーションを画面に見えている状態から始めます。スプリングは現在の速度も保つので、2 回目のクリックでなめらかに向きを変えます。タイミングカーブは、現在の位置から新しいカーブで始め直します。

  • 数字: 新しい値は画面上のグリフから続きます。
  • 高さと切り替え: サイズは画面上のサイズから続きます。
  • リスト: 新しい位置へ移動する項目は速度を保ちます。

用意されたトランジション

motionTokens には、統一感のある動きがいくつか用意されています。4 つのスプリング、4 つのタイミングカーブ、4 つの長さです。ただのオブジェクトなので、スプレッドしてフィールドをひとつだけ変えることもできます。

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 には linear、in、out、inOut、ease、easeIn、easeOut、easeInOut、expoOut、backOut、または [0.22, 1, 0.36, 1] のような 3 次ベジェの配列を指定できます。

検索

入力するとドキュメントを検索します。