CSS एनिमेशन जनरेटर

CSS @keyframes एनिमेशन को दृश्य रूप से बनाएँ · एक प्रीसेट चुनें या अवधि, ट्रांसफ़ॉर्म और कर्व्स को कस्टमाइज़ करें। प्रोडक्शन-रेडी कोड कॉपी करें।

प्रीसेट

सेटिंग्स

पूर्वावलोकन

बॉक्स

जनरेट किया गया CSS

कैसे उपयोग करें

  1. एनिमेशन प्रीसेट चुनें: सामान्य एनिमेशन में से चुनें, फ़ेड, स्लाइड, बाउंस, रोटेट, पल्स, शेक आदि।
  2. अवधि और व्यवहार अनुकूलित करें: अवधि, विलंब, easing, पुनरावृत्ति संख्या और fill mode समायोजित करें।
  3. CSS कॉपी करें: पूरी @keyframes परिभाषा और animation शॉर्टहैंड प्रॉपर्टी आपकी स्टाइलशीट में पेस्ट करने के लिए तैयार हैं।

CSS एनिमेशन जनरेटर क्यों इस्तेमाल करें?

CSS एनिमेशन इंटरफ़ेस को जीवंत बनाते हैं, मुख्य तत्वों पर ध्यान आकर्षित करते हैं, दृश्य प्रतिक्रिया देते हैं और आकर्षक अनुभव बनाते हैं।

विशेषताएँ

अक्सर पूछे जाने वाले प्रश्न

CSS में एनिमेशन और ट्रांज़िशन में क्या अंतर है?

CSS ट्रांज़िशन राज्य परिवर्तनों (होवर, फ़ोकस, क्लास टॉगल) पर शुरू होते हैं और दो अवस्थाओं के बीच एनिमेट करते हैं। CSS एनिमेशन कई अवस्थाओं को परिभाषित करने के लिए @keyframes का उपयोग करते हैं और उपयोगकर्ता इंटरैक्शन से स्वतंत्र रूप से चलते हैं, वे लूप, रिवर्स और स्वचालित रूप से शुरू हो सकते हैं।

animation-fill-mode क्या है और यह क्यों महत्वपूर्ण है?

animation-fill-mode नियंत्रित करता है कि क्या तत्व एनिमेशन के शुरू होने से पहले (backwards), इसके समाप्त होने के बाद (forwards), या दोनों से शैलियों को बनाए रखता है। forwards के बिना, तत्व एनिमेशन के अंत में अपनी मूल शैली पर वापस आ जाता है।

क्या CSS एनिमेशन प्रदर्शन-अनुकूल हैं?

केवल transform और opacity का उपयोग करने वाले एनिमेशन GPU-त्वरित और बहुत सहज होते हैं। width, height, margin या top/left जैसी लेआउट प्रॉपर्टीज़ को एनिमेट करने से बचें, वे लेआउट पुनर्गणना को ट्रिगर करते हैं और जैंक का कारण बन सकते हैं। 60 fps के लिए transform और opacity पर टिके रहें।

CSS एनिमेशन वास्तव में क्या करते हैं

CSS एनिमेशन समय के साथ परिभाषित कीफ़्रेमों के बीच एक या अधिक CSS गुणों को इंटरपोलेट करते हैं, JavaScript के बिना दृश्यमान गति या परिवर्तन उत्पन्न करते हैं। मॉडल के दो भाग हैं: @keyframes नियम परिभाषित करते हैं कि एनिमेशन प्रतिशत-आधारित चरणों (0% से 100%) पर कैसा दिखता है, और animation शॉर्टहैंड गुण (या इसके लॉन्गहैंड भाई animation-duration, animation-delay, animation-timing-function, animation-iteration-count, animation-fill-mode) ब्राउज़र को बताता है कि उस कीफ़्रेम परिभाषा को कैसे चलाना है। ब्राउज़र सभी इंटरपोलेशन, ईज़िंग और फ़्रेम टाइमिंग को C++ में संभालता है, आमतौर पर transform और opacity परिवर्तनों के लिए GPU-त्वरित।

एनिमेशन CSS संक्रमणों से दो तरीकों से भिन्न होते हैं। संक्रमण किसी तत्व की स्थिति बदलने पर सक्रिय होते हैं (एक होवर, एक क्लास टॉगल, एक फ़ोकस इवेंट) और ठीक दो मूल्यों के बीच इंटरपोलेट करते हैं: पुराना और नया। एनिमेशन स्थिति से स्वतंत्र रूप से चलते हैं, मनमाने ढंग से कीफ़्रेम चरणों की संख्या का अनुसरण करते हैं, अनिश्चित काल तक लूप कर सकते हैं, उल्टा चल सकते हैं, और CSS या JavaScript के माध्यम से ट्रिगर, रोके और फिर से शुरू किए जा सकते हैं। संक्रमण «आधे सेकंड में A से B तक स्नैप करें» के लिए सही उपकरण हैं; एनिमेशन «इस ध्यान-आकर्षित करने वाले पल्स को हमेशा के लिए लूप करें» या «तत्व प्रकट होने पर इस प्रवेश क्रम को एक बार चलाएँ» के लिए सही उपकरण हैं।

आधुनिक वेब डिज़ाइन के लिए, CSS एनिमेशन उन कई चीजों को बदल देते हैं जो पहले JavaScript पुस्तकालयों की आवश्यकता थी। स्पिनर, फ़ेड-इन, स्लाइड-अप, ध्यान पल्स, सफलता टिक: सभी अब मानक CSS पैटर्न हैं। ट्रेड-ऑफ जटिल अनुक्रमों के लिए अभिव्यंजकता है। CSS एनिमेशन बहुत कुछ कर सकते हैं लेकिन समकालिक संपत्ति परिवर्तनों के साथ 5 से 7 कीफ़्रेम चरणों के आसपास सुविधाजनक होना बंद कर देते हैं; स्टोरीबोर्ड एनिमेशन, स्क्रॉल-लिंक्ड अनुक्रमों, या JavaScript स्थिति पर निर्भर किसी भी गतिशील चीज़ के लिए, समर्पित पुस्तकालय (GSAP, Framer Motion, Web Animations API) बेहतर विकल्प बने रहते हैं।

यह उपकरण पर्दे के पीछे कैसे काम करता है

जब आप एक प्रीसेट चुनते हैं (जैसे «bounce» या «fade-in»), उपकरण पूर्वावलोकन क्षेत्र में एक पूर्वनिर्धारित @keyframes स्ट्रिंग लोड करता है और पूर्वावलोकन बॉक्स पर एनिमेशन गुण लागू करता है। कीफ़्रेम वास्तविक CSS हैं, कस्टम प्रारूप नहीं: आप जो देखते हैं वह कॉपी करने के लिए जो आपको मिलता है। स्लाइडर वास्तविक समय में इनलाइन animation गुण को संपादित करके एनिमेशन समय मान (अवधि, देरी, पुनरावृत्ति गणना) को अपडेट करते हैं, इसलिए पूर्वावलोकन बिना पेज रीलोड के तुरंत हर परिवर्तन को दर्शाता है।

ईज़िंग फ़ंक्शन चयन मानक CSS timing-function मानों का उपयोग करता है: linear (स्थिर गति), ease (डिफ़ॉल्ट, धीमी शुरुआत और अंत), ease-in (धीमी शुरुआत), ease-out (धीमा अंत), ease-in-out (धीमी शुरुआत और अंत), या कस्टम वक्रों के लिए cubic-bezier(x1, y1, x2, y2)। दृश्यमान एनिमेशन वक्र ब्राउज़र के मूल timing-function कार्यान्वयन द्वारा गणना की जाती है; पूर्वावलोकन वास्तविक ब्राउज़र-रेंडर किया गया आउटपुट है, JavaScript सिमुलेशन नहीं।

कोड बॉक्स आपको स्टाइलशीट में डालने के लिए आवश्यक पूर्ण CSS दिखाता है: दोनों @keyframes ब्लॉक और .your-class { animation: ... } घोषणा। «CSS कॉपी करें» पर क्लिक करें और दोनों एक टेक्स्ट ब्लॉक के रूप में आपके क्लिपबोर्ड पर लिखे जाते हैं। कोई फ़ाइल उत्पन्न नहीं की जाती, कोई सर्वर कुछ भी संसाधित नहीं करता, और उपकरण के पास कॉल करने के लिए कोई बैकएंड नहीं है। पूर्वावलोकन, कोड पीढ़ी और क्लिपबोर्ड लेखन सभी आपके डिवाइस पर JavaScript में होते हैं। पृष्ठ ताज़ा करें और आपका कस्टम कॉन्फ़िगरेशन तब तक चला जाता है जब तक आपने इसे पहले कॉपी नहीं किया।

वेब एनिमेशन का संक्षिप्त इतिहास

वास्तविक दुनिया के कार्यप्रवाह

सामान्य नुकसान और उनका क्या मतलब है

गोपनीयता: सब कुछ आपके ब्राउज़र में चलता है

CSS जनरेटर उपकरण दो स्वादों में आते हैं: क्लाइंट-साइड JavaScript चलाने वाले सरल HTML पृष्ठ (निजी, तेज़) और क्लाउड संपादक जो आपकी परियोजनाओं को सहेजते हैं (सहयोगी लेकिन गोपनीयता ट्रेड-ऑफ के साथ)। यह उपकरण पहले प्रकार का है। आपके स्लाइडर मान, आपका चयनित प्रीसेट, आपका उत्पन्न CSS: सभी आपके ब्राउज़र सत्र में रहते हैं। पृष्ठ ताज़ा करें और स्थिति चली जाती है जब तक आपने पहले CSS कॉपी नहीं किया। कोई सर्वर आपकी एनिमेशन पसंद को संग्रहीत नहीं करता, कोई विश्लेषण ट्रैक नहीं करता कि आपने कौन से प्रीसेट परीक्षण किए, और कोई खाता आवश्यक नहीं है।

गोपनीयता संपत्ति मुख्य रूप से स्वामित्व डिज़ाइन कार्य के लिए मायने रखती है। एक स्टूडियो एक गोपनीय ग्राहक परियोजना के लिए एनिमेशन प्रोटोटाइप कर रहा है, एक डेवलपर एक अघोषित ऐप के माइक्रो-इंटरैक्शन पर काम कर रहा है, या एक डिज़ाइनर एक ब्रांड अभियान पर पुनरावृत्ति कर रहा है: कोई भी संदर्भ जहाँ पुनरावृत्ति इतिहास या प्रगति में डिज़ाइन काम के बारे में जानकारी लीक कर सकता है। इस उपकरण के साथ, कुछ भी कैप्चर नहीं किया गया है क्योंकि कुछ भी नहीं भेजा गया है। ब्राउज़र का नेटवर्क टैब खोलें और आप उपयोग के दौरान शून्य आउटबाउंड अनुरोध देखेंगे; केवल प्रारंभिक पृष्ठ लोड HTML और JavaScript प्राप्त करता है।

जब कोई दूसरा उपकरण सही विकल्प हो

अधिक अक्सर पूछे जाने वाले प्रश्न

मैं एक एनिमेशन को केवल एक बार चलाने के लिए कैसे बनाऊँ?

animation-iteration-count: 1 सेट करें (जो डिफ़ॉल्ट है यदि निर्दिष्ट नहीं है)। तत्व को एनिमेशन पूरा होने के बाद एनिमेशन की अंतिम स्थिति में रहने के लिए (मूल शैली में वापस स्नैप करने के बजाय), animation-fill-mode: forwards भी सेट करें। संयुक्त शॉर्टहैंड है animation: fadeIn 0.5s ease-out forwards;

क्या मैं एनिमेशन को रोक और फिर से शुरू कर सकता हूँ?

हाँ, animation-play-state: paused (या running) के साथ। इस गुण को JavaScript के माध्यम से (जैसे, बटन क्लिक पर) या «होवर पर रोकें» पैटर्न के लिए CSS में :hover के माध्यम से टॉगल करें। एनिमेशन अपने वर्तमान बिंदु पर जम जाता है और जब चलने पर वापस सेट किया जाता है तो वहाँ से फिर से शुरू होता है, बिना प्रगति खोए। यह संक्रमणों में समान काम करता है लेकिन रनटाइम पॉज़ नियंत्रण के लिए केवल animation-play-state संपत्ति मौजूद है।

मैं क्लिक या स्क्रॉल पर एनिमेशन कैसे ट्रिगर करूँ?

क्लिक ट्रिगर्स के लिए, JavaScript के माध्यम से एक CSS क्लास टॉगल करें: element.classList.toggle('animate-in')। क्लास जोड़े जाने पर एनिमेशन चलता है। स्क्रॉल ट्रिगर्स के लिए, IntersectionObserver का उपयोग यह पता लगाने के लिए करें कि तत्व कब व्यूपोर्ट में प्रवेश करता है और फिर क्लास जोड़ें। आधुनिक ब्राउज़रों के लिए, CSS स्क्रॉल-संचालित एनिमेशन आपको animation-timeline: scroll() के माध्यम से JavaScript के बिना सीधे स्क्रॉल स्थिति पर एनिमेशन प्रगति को बाँधने देता है।

मेरा एनिमेशन क्यों झिलमिलाता या हकलाता है?

अधिकांश झिलमिलाहट/हकलाहट के मुद्दे ट्रांसफॉर्म-आधारित समकक्षों के बजाय लेआउट-ट्रिगरिंग गुणों (width, height, top/left) को एनिमेट करने से आते हैं। left: 0 को transform: translateX(0) पर स्विच करें और एनिमेशन सहज होना चाहिए। अन्य कारण: कई अर्ध-पारदर्शी परतों से ओवरड्रॉ, एक ही फ़्रेम में स्टाइल पढ़ने और लिखने वाले JavaScript से लेआउट थ्रैशिंग, या एनिमेटेड तत्व पर अत्यधिक छाया और फ़िल्टर।

क्या मुझे पहुँच-महत्वपूर्ण इंटरफेस पर एनिमेशन का उपयोग करना चाहिए?

उनका उपयोग करें, लेकिन prefers-reduced-motion का सम्मान करें। WCAG 2.1 दिशानिर्देश गैर-आवश्यक गति को अक्षम करने का विकल्प प्रदान करने की सलाह देते हैं। सजावटी एनिमेशन को @media (prefers-reduced-motion: no-preference) में लपेटें ताकि OS प्राथमिकता सेट करने वाले उपयोगकर्ता स्थिर अनुभव प्राप्त करें। आवश्यक प्रतिक्रिया एनिमेशन (लोडिंग संकेतक, त्रुटि हिलाव) रखे जा सकते हैं; पूरी तरह से सजावटी संवेदनशील उपयोगकर्ताओं के लिए ऑप्ट-इन होने चाहिए।

क्या मैं कस्टम ईज़िंग वक्रों के लिए cubic-bezier का उपयोग कर सकता हूँ?

हाँ। cubic-bezier(x1, y1, x2, y2) टाइमिंग फ़ंक्शन आपको दो नियंत्रण बिंदुओं के साथ किसी भी ईज़िंग वक्र को परिभाषित करने देता है। प्रत्येक x मान 0 और 1 के बीच होता है (समय का प्रतिनिधित्व करता है), y मान नकारात्मक या 1 से अधिक हो सकते हैं (ओवरशूट और बाउंस प्रभावों की अनुमति देते हुए)। एक वक्र को दृष्टिगत रूप से चुनने के लिए हमारे Cubic Bezier उपकरण या Lea Verou के क्लासिक cubic-bezier.com का उपयोग करें। सामान्य प्रीसेट विकल्प: ease, ease-in, ease-out, ease-in-out, और रैखिक-उपनाम CSS चर cubic-bezier(0.25, 0.1, 0.25, 1) (डिफ़ॉल्ट ease)।

संबंधित टूल

CSS ग्रेडिएंट जनरेटर Cubic Bezier कैलकुलेटर CSS लोडर एनिमेशन CSS फ्लेक्सबॉक्स जनरेटर