React · React Native · 16 कंपोनेंट
मुश्किल इंटरैक्शन, तैयार।
Animated Chorus उन इंटरैक्शन के लिए गति कंपोनेंट का संग्रह है जिन्हें हाथ से सही बनाना मुश्किल है: घूमते अंक, स्ट्रीम होता टेक्स्ट, आकार बदलने वाले स्वैप, शीट, पेजर, स्वाइप एक्शन और सिर्फ़ बदले हुए हिस्से को एनिमेट करने वाली सूचियाँ। एक टैग और आपका डेटा। न provider, न सेटअप।
npm install @kkwaenggwari/animated-chorusइस बिल्ड पर मापा गया
Chrome, 2026-09-28। हर शर्त और नमूना प्रदर्शन गाइड में है। यह कैसे मापा गया
- 28.0KBसभी 16 एक्सपोर्ट के लिए 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 के साथ।
सभी कंपोनेंटसंख्याएँ और टेक्स्ट
सामग्री और आकार
चयन और पेजिंग
सूचियाँ
जेस्चर
ओवरले
प्रगति
- चैट का जवाबसिमटने वाले सुझाव, स्थिर गति से स्ट्रीम होता जवाब और स्वैप होने वाली स्थिति पंक्ति।
MotionStreamMotionListMotionSwapMotionHeight - चेकआउट सारांशकार्ट बदलने पर मात्रा, पंक्ति के कुल और कुल राशि घूमते हैं; कूपन सूचना आती और जाती है; भुगतान के लिए सोच-समझकर दबाए रखना पड़ता है।
MotionListMotionNumberMotionPresenceMotionHold - इनबॉक्सलाइव गिनती वाले फ़िल्टर टैब, स्वाइप से हटने वाली पंक्तियाँ और ख़ाली जगह भरने वाली सूची।
MotionHighlightMotionListMotionSwipeMotionNumber - फ़ोटो फ़ीडफ़ोटो स्वाइप करें, थंबनेल से कूदें, किसी भी फ़ोटो को पूरी स्क्रीन पर खोलें और उसका विवरण ऊपर खींचें।
MotionPagerMotionHighlightMotionZoomMotionSheet
वेब और React Native पर एक ही इम्पोर्ट
Metro नेटिव कार्यान्वयन चुनता है और वेब बंडलर DOM वाला। हर प्लेटफ़ॉर्म गति को अपने सबसे अच्छे तरीक़े से चलाता है।
// 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 API | JS driver के साथ Animated, क्योंकि यह लेआउट है |
| स्ट्रीम टेक्स्ट | अक्षर जुड़ते और उभरते हैं; हर सेकंड कुछ React रेंडर | असली Text, बिना फ़ेड के दिखाया गया |
| शीट और ज़ूम | टॉप लेयर में नेटिव dialog | पारदर्शी Modal; बैक बटन उसे बंद करता है |
दो मिनट में शुरू करें
इंस्टॉल करें, एक कंपोनेंट इम्पोर्ट करें, मान दें।
npm install @kkwaenggwari/animated-chorus