सैस (स्टाइल शीट लैंग्वेज)

सैस (वाक्यविन्यास की दृष्टि से अद्भुत स्टाइल शीट का संक्षिप्त रूप) एक preprocessor  स्क्रिप्टिंग भाषा है जो  व्यापक शैली पत्रक  (सीएसएस) में व्याख्या की गई भाषा या संकलित भाषा है। SassScript स्क्रिप्टिंग भाषा ही है.

Sass में दो सिंटेक्स (प्रोग्रामिंग भाषाएँ) शामिल हैं। मूल सिंटैक्स, जिसे इंडेंटेड सिंटैक्स कहा जाता है, Haml के समान सिंटैक्स का उपयोग करता है। यह नियमों को अलग करने के लिए ब्लॉक (प्रोग्रामिंग) और नई पंक्ति  वर्णों को अलग करने के लिए इंडेंट शैली का उपयोग करता है। नया सिंटैक्स, एससीएसएस (सैसी सीएसएस), सीएसएस की तरह ब्लॉक फ़ॉर्मेटिंग का उपयोग करता है। यह एक ब्लॉक के भीतर नियमों को अलग करने के लिए कोड ब्लॉक और अर्धविराम को दर्शाने के लिए ब्रेसिज़ का उपयोग करता है। इंडेंटेड सिंटैक्स और एससीएसएस फाइलों को पारंपरिक रूप से क्रमशः फ़ाइल नाम एक्सटेंशन .sass और .scss दिया जाता है।

CSS#CSS 3 में चयनकर्ताओं और छद्म-चयनकर्ताओं की एक श्रृंखला शामिल है जो समूह नियम उन पर लागू होते हैं। सैस (दोनों सिंटैक्स के बड़े संदर्भ में) अधिक पारंपरिक प्रोग्रामिंग भाषाओं, विशेष रूप से ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग  | ऑब्जेक्ट-ओरिएंटेड भाषाओं में उपलब्ध कई तंत्र प्रदान करके सीएसएस का विस्तार करता है, लेकिन वे स्वयं CSS3 के लिए उपलब्ध नहीं हैं। जब SassScript की व्याख्या की जाती है, तो यह Sass फ़ाइल द्वारा परिभाषित विभिन्न चयनकर्ताओं के लिए CSS नियमों के ब्लॉक बनाता है। Sass दुभाषिया SassScript का CSS में अनुवाद करता है। वैकल्पिक रूप से, Sass .sass या .scss फ़ाइल की निगरानी कर सकता है और जब भी .sass या .scss फ़ाइल सहेजी जाती है तो इसे आउटपुट .css फ़ाइल में अनुवादित कर सकता है। इंडेंटेड वाक्यविन्यास एक धातुभाषा है। एससीएसएस एक धातुभाषा#नेस्टेड और सीएसएस का एक सुपरसेट है, क्योंकि वैध सीएसएस प्रोग्रामिंग भाषाओं के समान शब्दार्थ के साथ वैध एससीएसएस है।

SassScript निम्नलिखित तंत्र प्रदान करता है: चर (प्रोग्रामिंग), नेस्टिंग (कंप्यूटिंग)#प्रोग्रामिंग में,  मिश्रण , और चयनकर्ता इनहेरिटेंस (कंप्यूटर विज्ञान)।

इतिहास
सैस को शुरुआत में हैम्पटन कैटलिन द्वारा डिजाइन किया गया था और नेटली वेइज़ेनबाम द्वारा विकसित किया गया था। इसके प्रारंभिक संस्करणों के बाद, वेइज़ेनबाम और क्रिस एपस्टीन ने Sass को SassScript के साथ विस्तारित करना जारी रखा है, जो Sass फ़ाइलों में उपयोग की जाने वाली एक स्क्रिप्टिंग भाषा है।

प्रमुख कार्यान्वयन
SassScript को कई भाषाओं में लागू किया गया था, उल्लेखनीय कार्यान्वयन हैं:


 * आधिकारिक ओपन-सोर्स डार्ट (प्रोग्रामिंग भाषा) कार्यान्वयन। * एनपीएम (सॉफ्टवेयर) पर आधिकारिक सैस नोड.जेएस मॉड्यूल, जो शुद्ध जावास्क्रिप्ट के लिए संकलित डार्ट सैस है।
 * आधिकारिक सैस-एम्बेडेड नोड मॉड्यूल जो मूल डार्ट निष्पादन योग्य के चारों ओर एक जावास्क्रिप्ट आवरण है।
 * मूल खुला स्रोत सॉफ्टवेयर|ओपन-सोर्स रूबी (प्रोग्रामिंग भाषा) कार्यान्वयन 2006 में बनाया गया, अनुरक्षकों की कमी के कारण पदावनत हो गया और मार्च 2019 में जीवन के अंत तक पहुंच गया।
 * libSass, आधिकारिक ओपन-सोर्स C++ कार्यान्वयन, अक्टूबर 2020 में बंद कर दिया गया।
 * एनपीएम (सॉफ्टवेयर) पर अप्रचलित नोड-एसएएस नोड मॉड्यूल, अप्रचलित लिबसस पर आधारित।
 * JSass, एक अनौपचारिक जावा (प्रोग्रामिंग भाषा) कार्यान्वयन, बहिष्कृत libSass पर आधारित।
 * phamlp, PHP में एक अनौपचारिक Sass/SCSS कार्यान्वयन। * वादिन में सैस का जावा कार्यान्वयन है। *फायरबग (वेब ​​डेवलपमेंट)फ़ायरबग (वेब ​​विकास) के लिए फ़ायरफ़ॉक्स एक्सयूएल (लीगेसी) ऐड-ऑन (मोज़िला)। तब से फ़ायरफ़ॉक्स में एकीकृत डेवलपर टूल के पक्ष में इसे हटा दिया गया है। फ़ायरफ़ॉक्स 57 द्वारा एक्सयूएल एक्सटेंशन के लिए समर्थन बंद करने के बाद से इसने काम करना बंद कर दिया।

चर
Sass वेरिएबल्स को परिभाषित करने की अनुमति देता है। वेरिएबल डॉलर चिह्न से शुरू होते हैं. वेरिएबल असाइनमेंट (कंप्यूटर प्रोग्रामिंग) एक कोलन (विराम चिह्न) के साथ किया जाता है.

SassScript चार डेटा प्रकारों का समर्थन करता है:


 * संख्याएँ (इकाइयों सहित)
 * स्ट्रिंग (कंप्यूटर विज्ञान) (उद्धरण के साथ या बिना)
 * रंग (नाम, या नाम)
 * बूलियन डेटा प्रकार

वेरिएबल पैरामीटर (कंप्यूटर प्रोग्रामिंग) हो सकते हैं या कई उपलब्ध सबरूटीन में से किसी एक के परिणाम हो सकते हैं। अनुवाद के दौरान, चर के मान आउटपुट सीएसएस दस्तावेज़ में डाले जाते हैं।

घोंसला बनाना
सीएसएस तार्किक नेस्टिंग का समर्थन करता है, लेकिन कोड ब्लॉक स्वयं नेस्ट नहीं होते हैं। सैस नेस्टेड कोड को एक दूसरे के भीतर डालने की अनुमति देता है।

नाम स्थान नेस्टिंग और पैरेंट संदर्भों सहित अधिक जटिल प्रकार के नेस्टिंग पर सैस दस्तावेज़ में चर्चा की गई है।

लूप्स
Sass वेरिएबल्स का उपयोग करके पुनरावृत्ति करने की अनुमति देता है, और , जिसका उपयोग समान वर्गों या आईडी वाले तत्वों पर विभिन्न शैलियों को लागू करने के लिए किया जा सकता है।

तर्क
मिक्सिन्स पैरामीटर (कंप्यूटर प्रोग्रामिंग) का भी समर्थन करते हैं।

चयनकर्ता विरासत
जबकि CSS3 दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) पदानुक्रम का समर्थन करता है, यह चयनकर्ता विरासत की अनुमति नहीं देता है। सैस में, कोड ब्लॉक के अंदर एक लाइन डालकर इनहेरिटेंस हासिल किया जाता है जो @extend कीवर्ड का उपयोग करता है और दूसरे चयनकर्ता को संदर्भित करता है। विस्तारित चयनकर्ता की विशेषताएँ कॉलिंग चयनकर्ता पर लागू होती हैं।

सैस एकाधिक वंशानुक्रम का समर्थन करता है।

libSass
2012 HTML5 डेवलपर कॉन्फ्रेंस में, Sass के निर्माता, हैम्पटन कैटलिन ने libSass के संस्करण 1.0 की घोषणा की, जो कैटलिन, आरोन लेउंग और Moovweb की इंजीनियरिंग टीम द्वारा विकसित Sass का एक खुला स्रोत C++ कार्यान्वयन है। वर्तमान सैस अनुरक्षक क्रिस एपस्टीन ने भी योगदान देने का इरादा व्यक्त किया है। कैटलिन के अनुसार, libSass को किसी भी चीज़ में ड्रॉप[पेड] किया जा सकता है और इसमें Sass होगा...आप इसे आज ही फ़ायरफ़ॉक्स में छोड़ सकते हैं और फ़ायरफ़ॉक्स बना सकते हैं और यह वहां संकलित हो जाएगा। यह सुनिश्चित करने के लिए कि यह संभव होगा, हमने अपना खुद का पार्सर शुरू से लिखा। libSass के डिज़ाइन लक्ष्य हैं:
 * प्रदर्शन - डेवलपर्स ने सैस के रूबी कार्यान्वयन की तुलना में गति में 10 गुना वृद्धि की सूचना दी है।
 * आसान एकीकरण – libSass, Sass को अधिक सॉफ़्टवेयर में एकीकृत करना आसान बनाता है। libSass से पहले, Sass को किसी भाषा या सॉफ़्टवेयर उत्पाद में मजबूती से एकीकृत करने के लिए संपूर्ण रूबी दुभाषिया को बंडल करना आवश्यक था। इसके विपरीत, libSass शून्य बाहरी निर्भरता और C-जैसे इंटरफ़ेस के साथ एक स्थिर रूप से लिंक करने योग्य लाइब्रेरी है, जिससे Sass को सीधे अन्य प्रोग्रामिंग भाषाओं और टूल में लपेटना आसान हो जाता है। उदाहरण के लिए, ओपन सोर्स libSass बाइंडिंग अब Node.js, Go (प्रोग्रामिंग भाषा), और रूबी प्रोग्रामिंग भाषा के लिए मौजूद है। * अनुकूलता - libSass का लक्ष्य Sass के आधिकारिक रूबी कार्यान्वयन के साथ पूर्ण अनुकूलता है। यह लक्ष्य libsass 3.3 पर प्राप्त किया गया है।

यह भी देखें

 * कम (स्टाइलशीट भाषा)
 * स्टाइलस (स्टाइलशीट भाषा)