UnoCSS क्यों?
प्रेरणाएँ
हम आपको UnoCSS के निर्माता Anthony Fu द्वारा लिखित ब्लॉग पोस्ट Reimagine Atomic CSS को पढ़ने की अनुशंसा करते हैं, ताकि UnoCSS के पीछे की प्रेरणा को बेहतर ढंग से समझ सकें।
UnoCSS, X से कैसे भिन्न है?
Windi CSS
UnoCSS की शुरुआत Windi CSS की टीम के एक सदस्य द्वारा की गई थी, जिसमें Windi CSS में हमने जो काम किया उससे बहुत प्रेरणा ली गई थी। जबकि Windi CSS अब सक्रिय रूप से बनाए नहीं जा रहा है (मार्च 2023 तक), आप UnoCSS को Windi CSS का "आध्यात्मिक उत्तराधिकारी" मान सकते हैं।
UnoCSS Windi CSS की ऑन-डिमांड प्रकृति, एट्रिब्यूटिफ़ाई मोड, शॉर्टकट, वेरिएंट समूह, संकलन मोड और बहुत कुछ विरासत में लेता है। इसके अलावा, UnoCSS को अधिकतम विस्तारयोग्यता और प्रदर्शन को ध्यान में रखकर शुरू से ही बनाया गया है, जिससे हम शुद्ध CSS आइकन, वैल्यूलेस एट्रिब्यूटिफ़ाई, टैगिफ़ाई, वेब फॉन्ट्स, आदि जैसी नई सुविधाएँ पेश करने में सक्षम हैं।
सबसे महत्वपूर्ण बात यह है कि UnoCSS को एक परमाणु CSS इंजन के रूप में निकाला गया है, जहाँ सभी सुविधाएँ वैकल्पिक हैं, और आपके पास जो सुविधाएँ चाहें उनके संयोजन के साथ, अपने स्वयं के कन्वेंशन, अपना डिज़ाइन सिस्टम और अपने प्रीसेट बनाना आसान बनाता है।
Tailwind CSS
Windi CSS और UnoCSS दोनों ने Tailwind CSS से बहुत प्रेरणा ली है। चूंकि UnoCSS को शुरू से ही बनाया गया है, इसलिए हमें यह अच्छी तरह से समझ में आता है कि पूर्व कलाओं के साथ परमाणु CSS को कैसे डिज़ाइन किया गया है और इसे एक सुरुचिपूर्ण और शक्तिशाली API में कैसे सारांशित किया गया है। काफी अलग डिज़ाइन लक्ष्यों के साथ, यह वास्तव में Tailwind CSS के साथ एक सेब-से-सेब की तुलना नहीं है। लेकिन हम कुछ अंतरों को सूचीबद्ध करने का प्रयास करेंगे।
Tailwind CSS एक PostCSS प्लगइन है, जबकि UnoCSS एक आइसोमॉर्फिक इंजन है जिसमें बिल्ड टूल्स के साथ प्रथम श्रेणी के एकीकरण का संग्रह है (जिसमें एक PostCSS प्लगइन भी शामिल है)। इसका मतलब यह है कि UnoCSS अलग-अलग जगहों में उपयोग करने के लिए बहुत अधिक लचीला हो सकता है (उदाहरण के लिए, CDN रनटाइम, जो फ्लाई पर CSS उत्पन्न करता है) और बेहतर HMR, प्रदर्शन और डेवलपर अनुभव प्रदान करने के लिए बिल्ड टूल्स के साथ गहरा एकीकरण हो सकता है (उदाहरण के लिए, निरीक्षक)।
तकनीकी ट्रेड-ऑफ को छोड़कर, UnoCSS को पूरी तरह से विस्तारयोग्य और अनुकूलन योग्य बनाने के लिए भी डिज़ाइन किया गया है, जबकि Tailwind CSS अधिक राय-आधारित है। Tailwind CSS के शीर्ष पर एक कस्टम डिज़ाइन सिस्टम (या डिज़ाइन टोकन) बनाना कठिन हो सकता है, और आप वास्तव में Tailwind CSS के कन्वेंशन से दूर नहीं जा सकते हैं। UnoCSS के साथ, आप पूर्ण नियंत्रण के साथ लगभग कुछ भी बना सकते हैं। उदाहरण के लिए, हमने एक ही प्रीसेट के भीतर पूरा Tailwind CSS संगत यूटिलिटी लागू किया, और अन्य दिलचस्प दर्शनों के साथ लागू किए गए बहुत से अद्भुत सामुदायिक प्रीसेट हैं।
UnoCSS द्वारा प्रदान की गई लचीलेपन के कारण, हम इसके शीर्ष पर बहुत से नवीन सुविधाओं के साथ प्रयोग करने में सक्षम हैं, उदाहरण के लिए:
Tailwind CSS पर भिन्न डिज़ाइन लक्ष्यों के कारण, UnoCSS Tailwind CSS के प्लगइन सिस्टम या कॉन्फ़िगरेशन का समर्थन नहीं करता है, जिसका मतलब है कि एक भारी रूप से अनुकूलित Tailwind CSS प्रोजेक्ट से स्थानांतरित करना कठिन हो सकता है। यह UnoCSS को उच्च-प्रदर्शन और विस्तारयोग्य बनाने का इरादा निर्णय है, और हम मानते हैं कि ट्रेड-ऑफ इसके लायक है।