React · React Native · ১৬টি কম্পোনেন্ট

কঠিন ইন্টারঅ্যাকশন, তৈরি।

Animated Chorus হলো এমন ইন্টারঅ্যাকশনের জন্য গতির কম্পোনেন্টের সংগ্রহ যা হাতে ঠিকঠাক বানানো কঠিন: ঘুরন্ত সংখ্যা, স্ট্রিম হওয়া লেখা, আকার বদলানো সোয়াপ, শিট, পেজার, সোয়াইপ অ্যাকশন আর শুধু বদলানো অংশ অ্যানিমেট করা তালিকা। একটি ট্যাগ আর আপনার ডেটা। কোনো provider নেই, কোনো সেটআপ নেই।

ইনস্টল করুন
npm install @kkwaenggwari/animated-chorus

এই বিল্ডে মাপা

Chrome, 2026-09-28। প্রতিটি শর্ত আর নমুনা পারফরম্যান্স গাইডে আছে। কীভাবে মাপা হয়েছে

  • 28.0KB১৬টি এক্সপোর্টের জন্য KB gzip

    পুরো ওয়েব এন্ট্রি, মিনিফাই করা। React একমাত্র peer নির্ভরতা।

  • 0অ্যানিমেশনের সময় JS ফ্রেম callback

    একটি সংখ্যা, একটি উচ্চতা আর একটি হাইলাইট একসঙ্গে বদলায়: ব্রাউজার সব 12টি অ্যানিমেশন চালায়।

  • 1প্রতিটি মান পরিবর্তনে React commit

    MotionNumber মান বদলালে রেন্ডার হয়, ঘোরার সময় কখনো নয়।

  • 113000টি স্ট্রিম হওয়া অক্ষরের জন্য React commit

    MotionStream অক্ষর সরাসরি যোগ করে আর প্রতি সেকেন্ডে কয়েকবার React-এ মিশিয়ে দেয়।

01সবচেয়ে সহজ

একটি ট্যাগ আর আপনার ডেটা

প্রতিটি কম্পোনেন্ট নিজেই কাজ করে: কোনো provider, র‍্যাপার কম্পোনেন্ট বা সেটআপ কল নেই। সংগ্রহগুলো items আর renderItem নেয়, আর আপনার লেআউট, লেখা ও স্টাইল আপনারই থাকে।

  • একটি কম্পোনেন্ট ইমপোর্ট করে মান দিন। পুরো সংযুক্তি এটুকুই।
  • তালিকা, ট্যাব আর পেজার আপনার অ্যারে পড়ে; key ডিফল্টভাবে item.id।
  • লেখা সত্যিকারের লেখাই থাকে: ভাঙে, ফন্টের সঙ্গে বড় হয় আর বাছাই করা যায়।
  • <MotionNumber value={total} />;
  • <MotionSwap value={status}>{label}</MotionSwap>;
  • <MotionHeight open={open}>{details}</MotionHeight>;
  • <MotionHighlight items={tabs} value={tab} onValueChange={setTab} />;
  • <MotionList items={tasks} renderItem={(task) => task.title} />;
  • <ProgressRing value={progress} />;

ছয়টি লাইভ কম্পোনেন্ট, আর প্রতিটির পেছনে এক লাইন কোড।

উদাহরণ প্রস্তুত হচ্ছে…

02সবচেয়ে দ্রুত

ব্রাউজার চালায়। React স্থির থাকে।

ওয়েবে কোনো অ্যানিমেশন লাইব্রেরি লোড করতে হয় না: কম্পোনেন্ট তাদের গতি Web Animations API-কে দেয়, তাই ঘুরন্ত সংখ্যা বা আকার বদলানো প্যানেল চলার সময় প্রতি ফ্রেমে কোনো JavaScript বা React রেন্ডার খরচ করে না।

  • 12টি অ্যানিমেশন একসঙ্গে চলার সময় 0টি JS ফ্রেম callback।
  • প্রতিটি মান পরিবর্তনে একটি React commit, প্রতি ফ্রেমে নয়।
  • স্ট্রিম হওয়া লেখা: 3000টি অক্ষরের জন্য 11টি React commit। নিচের উদাহরণ নিজের রেন্ডার নিজেই গোনে।

উদাহরণ প্রস্তুত হচ্ছে…

03সবচেয়ে স্থিতিশীল

যা খুশি থামান। কখনো লাফ দেয় না।

প্রতিটি নতুন মান স্ক্রিনে যা আছে সেখান থেকে শুরু হয় আর স্প্রিং নিজের গতি ধরে রাখে, তাই দ্রুত ক্লিক, ডেটার ঝাপটা আর দিক বদল ইচ্ছাকৃত মনে হয়। গতি শেষ হলে কিছুই চলতে থাকে না।

  • সংখ্যা কখনো ভাঙে না: বাকি অঙ্ক ঘোরার সময় সরে যায়।
  • 5 ms ব্যবধানে 200টি নতুন মান: পরে 0টি অ্যানিমেশন বাকি আর শেষ লেখা নিখুঁত।
  • React StrictMode-এ নিরাপদ। পটভূমিতে থাকা React Native অ্যাপে গতি শেষ অবস্থায় স্থির হয়।

উদাহরণ প্রস্তুত হচ্ছে…

16টি কম্পোনেন্ট, কাজ অনুযায়ী সাজানো

সংখ্যা আর লেখা, আকার বদলানো বিষয়বস্তু, বাছাই, তালিকা, জেসচার, ওভারলে আর অগ্রগতি। প্রতিটির পাশে props-সহ একটি লাইভ ওয়ার্কবেঞ্চ আছে।

সব কম্পোনেন্ট

একসঙ্গে জোড়া

কয়েকটি কম্পোনেন্ট মেলানো পূর্ণ স্ক্রিন, প্রতিটির সেটিংস উদাহরণের বাইরে।

সব উদাহরণ

ওয়েব আর React Native-এ একই ইমপোর্ট

Metro নেটিভ বাস্তবায়ন বাছে আর ওয়েব বান্ডলার DOM-এরটি। প্রতিটি প্ল্যাটফর্ম গতি নিজের সবচেয়ে ভালো উপায়ে চালায়।

App.jsx
// Web and React Native: the same import.
import { MotionNumber, MotionList } from '@kkwaenggwari/animated-chorus';

export function Score({ points, players }) {
  return (
    <>
      <MotionNumber value={points} />
      <MotionList items={players} renderItem={(player) => player.name} />
    </>
  );
}
অংশওয়েবReact Native
Transform আর অস্বচ্ছতাWeb Animations API, স্প্রিং বিশ্লেষণাত্মকভাবে নমুনাকৃতনেটিভ driver-সহ Animated
প্রস্থ আর উচ্চতাWeb Animations APIJS driver-সহ Animated, কারণ এটি লেআউট
স্ট্রিম হওয়া লেখাঅক্ষর যোগ হয়ে ফুটে ওঠে; প্রতি সেকেন্ডে কয়েকটি React রেন্ডারসত্যিকারের Text, ফেড ছাড়াই দেখানো
শিট আর জুমটপ লেয়ারে নেটিভ dialogস্বচ্ছ Modal; ব্যাক বোতাম এটি বন্ধ করে

দুই মিনিটে শুরু করুন

ইনস্টল করুন, একটি কম্পোনেন্ট ইমপোর্ট করুন, মান দিন।

npm install @kkwaenggwari/animated-chorus

খুঁজুন

ডকুমেন্টেশনে খুঁজতে টাইপ করুন।