গাইড · 01
Transition
প্রতিটি কম্পোনেন্ট একটি transition নেয়: timing বক্ররেখা বা স্প্রিং। কীভাবে বাছবেন, আর গতিতে বাধা পড়লে কী হয়।
দুই ধরনের transition
transition হয় { duration, easing } নয়তো { tempo: 'spring', spring }। যেকোনো কম্পোনেন্টের transition prop-এ দিন। একসঙ্গে কয়েকটি জিনিস নড়ানো কম্পোনেন্ট দ্বিতীয় একটি prop নেয়, যেমন নতুন জায়গায় পিছলে যাওয়া আইটেমের জন্য MotionList-এ layoutTransition।
// 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 বক্ররেখা আর স্প্রিং তুলনা করুন।
উদাহরণ প্রস্তুত হচ্ছে…
বাধা
প্রতিটি কম্পোনেন্ট স্ক্রিনে যা আছে সেখান থেকে নতুন গতি শুরু করে। স্প্রিং বর্তমান বেগও রাখে, তাই দ্বিতীয় ক্লিক গতিকে মসৃণভাবে ঘুরিয়ে দেয়। timing বক্ররেখা বর্তমান অবস্থান থেকে নতুন বক্ররেখায় আবার শুরু হয়।
- সংখ্যা: নতুন মান স্ক্রিনের অক্ষর থেকে এগোয়।
- উচ্চতা আর সোয়াপ: আকার স্ক্রিনের আকার থেকে এগোয়।
- তালিকা: নতুন জায়গায় যাওয়া আইটেম নিজের বেগ রাখে।
তৈরি transition
motionTokens কয়েকটি সামঞ্জস্যপূর্ণ অনুভূতি জড়ো করে: চারটি স্প্রিং, চারটি timing বক্ররেখা আর চারটি সময়কাল। এগুলো সাধারণ অবজেক্ট, তাই একটি ফিল্ড বদলাতে একটিকে spread করুন।
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; // 140Easing-এর নাম
easing গ্রহণ করে linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut, বা [0.22, 1, 0.36, 1]-এর মতো কিউবিক Bézier অ্যারে।