सीएसएस रैप किया गया: 2023!

सीएसएस रैप्ड हेडर

CSS Wrapped: 2023!

वाह! साल 2023, सीएसएस के लिए बहुत अच्छा रहा!

#Interop2023 से लेकर सीएसएस और यूआई स्पेस में कई नई लैंडिंग तक, डेवलपर को वेब प्लैटफ़ॉर्म पर ऐसी सुविधाएं मिलती हैं जिनके बारे में उन्होंने कभी सोचा भी नहीं था. अब हर मॉडर्न ब्राउज़र, कंटेनर क्वेरी, सबग्रिड, :has() सिलेक्टर, और नए कलर स्पेस और फ़ंक्शन के साथ काम करता है. Chrome में, सिर्फ़ सीएसएस वाले स्क्रोल-ड्राइव किए गए एनिमेशन और व्यू ट्रांज़िशन की मदद से वेब व्यू के बीच आसानी से ऐनिमेशन बनाने की सुविधा उपलब्ध है. इसके अलावा, डेवलपर के बेहतर अनुभव के लिए कई नई प्रिमिटिव भी उपलब्ध कराई गई हैं. जैसे, सीएसएस नेस्टिंग और स्कोप किए गए स्टाइल.

यह साल शानदार रहा! इसलिए, हम इस साल की इस उपलब्धि का जश्न मनाना चाहते हैं. साथ ही, हम ब्राउज़र डेवलपर और वेब कम्यूनिटी के सभी सदस्यों को धन्यवाद देना चाहते हैं. उनकी कड़ी मेहनत की वजह से ही यह सब मुमकिन हो पाया है.

आर्किटेक्चर की बुनियादी बातें

आइए, सीएसएस की मुख्य भाषा और सुविधाओं से जुड़े अपडेट के बारे में जानते हैं. ये ऐसी सुविधाएं हैं जो स्टाइल बनाने और उन्हें व्यवस्थित करने के तरीके के लिए बुनियादी हैं. साथ ही, ये डेवलपर को बहुत ज़्यादा ताकत देती हैं.

त्रिकोणमितीय फ़ंक्शन

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox: 108.
  • Safari: 15.4.

Source

Chrome 111 में, त्रिकोणमितीय फ़ंक्शन sin(), cos(), tan(), asin(), acos(), atan(), और atan2() के लिए सहायता जोड़ी गई है. इससे ये फ़ंक्शन सभी मुख्य इंजन पर उपलब्ध हो गए हैं. ये फ़ंक्शन, ऐनिमेशन और लेआउट के लिए बहुत काम के होते हैं. उदाहरण के लिए, अब किसी चुने गए सेंटर के चारों ओर मौजूद सर्कल पर एलिमेंट को व्यवस्थित करना बहुत आसान हो गया है.

ट्रिगनॉमिट्री फ़ंक्शन का डेमो

सीएसएस में त्रिकोणमितीय फ़ंक्शन के बारे में ज़्यादा जानें.

कॉम्प्लेक्स nth-* सिलेक्टर

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox: 113.
  • Safari: 9.

:nth-child() छद्म क्लास सिलेक्टर की मदद से, डीओएम में मौजूद एलिमेंट को उनके इंडेक्स के हिसाब से चुना जा सकता है. An+B माइक्रोसेंटेक्स का इस्तेमाल करके, यह तय किया जा सकता है कि आपको किन एलिमेंट को चुनना है.

डिफ़ॉल्ट रूप से, :nth-*() सूडो क्लास सभी चाइल्ड एलिमेंट को ध्यान में रखती हैं. Chrome 111 से, :nth-child() और :nth-last-child() में सिलेक्टर की सूची पास की जा सकती है. हालांकि, ऐसा करना ज़रूरी नहीं है. इस तरह, An+B के काम करने से पहले ही, बच्चों की सूची को फ़िल्टर किया जा सकता है.

इस डेमो में, 3n+1 लॉजिक को सिर्फ़ छोटी गुड़िया पर लागू किया गया है. इसके लिए, of .small का इस्तेमाल करके उन्हें पहले से फ़िल्टर किया गया है. इस्तेमाल किए गए सिलेक्टर को डाइनैमिक तरीके से बदलने के लिए, ड्रॉपडाउन का इस्तेमाल करें.

nth-* सिलेक्टर का मुश्किल डेमो

कॉम्प्लेक्स nth-* सिलेक्शन्स के बारे में ज़्यादा जानें.

स्कोप

Browser Support

  • Chrome: 118.
  • Edge: 118.
  • Firefox: behind a flag.
  • Safari: 17.4.

Source

Chrome 118 में @scope के लिए सहायता जोड़ी गई है. यह एक ऐट-रूल है, जिसकी मदद से किसी दस्तावेज़ के खास सबट्री से मैच करने वाले सिलेक्टर को स्कोप किया जा सकता है. स्कोप की गई स्टाइलिंग की मदद से, यह तय किया जा सकता है कि किन एलिमेंट को चुना जाए. इसके लिए, आपको बहुत ज़्यादा खास सिलेक्टर लिखने या उन्हें डीओएम स्ट्रक्चर से जोड़ने की ज़रूरत नहीं होती.

स्कोप किए गए सबट्री को स्कोपिंग रूट (ऊपरी सीमा) और स्कोपिंग लिमिट (निचली सीमा) से तय किया जाता है. स्कोपिंग लिमिट तय करना ज़रूरी नहीं है.

@scope (.card) {  } /* scoping root */
@scope (.card) to (.card__content) {  } /* scoping root + scoping limit*/

स्कोप ब्लॉक में रखे गए स्टाइल के नियम, सिर्फ़ चुने गए सबट्री में मौजूद एलिमेंट को टारगेट करेंगे. उदाहरण के लिए, स्कोप की गई स्टाइल का यह नियम सिर्फ़ उन <img> एलिमेंट को टारगेट करता है जो .card एलिमेंट और [data-component] सिलेक्टर से मैच होने वाले किसी भी नेस्ट किए गए कॉम्पोनेंट के बीच मौजूद होते हैं.

@scope (.card) to ([data-component]) {
  img {  }
}

इस डेमो में, कैरसेल कॉम्पोनेंट में मौजूद <img> एलिमेंट मैच नहीं किए गए हैं. ऐसा स्कोपिंग की सीमा लागू होने की वजह से हुआ है.

स्कोप के डेमो का स्क्रीनशॉट

@scope डेमो के लिए रेफ़रंस स्क्रीनशॉट

Scope Live Demo

सीएसएस @scope डेमो

"अपने सिलेक्टर की पहुंच को सीमित करने के लिए, @scope का इस्तेमाल कैसे करें" लेख में, @scope के बारे में ज़्यादा जानें. इस लेख में, आपको :scope सिलेक्टर, स्पेसिफ़िसिटी को मैनेज करने का तरीका, बिना प्रील्यूड वाले स्कोप, और कैस्केड पर @scope के असर के बारे में जानकारी मिलेगी.

नेस्टिंग

Browser Support

  • Chrome: 120.
  • Edge: 120.
  • Firefox: 117.
  • Safari: 17.2.

Source

नेस्टिंग से पहले, हर सिलेक्टर को साफ़ तौर पर अलग-अलग तौर पर घोषित करना पड़ता था. इस वजह से, एक ही जानकारी को बार-बार दिखाना पड़ता है, स्टाइलशीट का साइज़ बढ़ जाता है, और कॉन्टेंट को अलग-अलग जगहों पर लिखना पड़ता है. अब सिलेक्टर को, ग्रुप किए गए उनसे जुड़े स्टाइल नियमों के साथ जारी रखा जा सकता है.

dl {
  /* dt styles */
  
  dt {
    /* dl dt styles */
  }

  dd {
    /* dl dd styles */
  }
}

/* same as */
dt {
  /* dt styles */
}

dl dt {
  /* dl dt styles */
}

dl dd {
  /* dl dd styles */
}

स्क्रीनकास्ट को नेस्ट करना

नेस्टिंग का लाइव डेमो

रेस का विजेता तय करने के लिए, रिलैक्स्ड नेस्टिंग सिलेक्टर बदलें

नेस्टिंग से स्टाइलशीट का साइज़ कम किया जा सकता है. साथ ही, बार-बार इस्तेमाल होने वाले सिलेक्टर का ओवरहेड कम किया जा सकता है और कॉम्पोनेंट स्टाइल को एक जगह पर रखा जा सकता है. शुरुआत में, सिंटैक्स को इस सीमा के साथ रिलीज़ किया गया था कि अलग-अलग जगहों पर & का इस्तेमाल करना ज़रूरी था. हालांकि, अब नेस्टिंग के लिए सिंटैक्स को अपडेट करने के बाद, इस सीमा को हटा दिया गया है.

नेस्टिंग के बारे में ज़्यादा जानें.

Subgrid

Browser Support

  • Chrome: 117.
  • Edge: 117.
  • Firefox: 71.
  • Safari: 16.

Source

सीएसएस subgrid की मदद से, ज़्यादा जटिल ग्रिड बनाए जा सकते हैं. साथ ही, चाइल्ड लेआउट के बीच बेहतर अलाइनमेंट किया जा सकता है. इसकी मदद से, किसी ग्रिड के अंदर मौजूद ग्रिड, बाहरी ग्रिड की लाइनों और कॉलम को अपने हिसाब से इस्तेमाल कर सकता है. इसके लिए, ग्रिड की लाइनों या कॉलम के लिए subgrid का इस्तेमाल किया जाता है.

सबग्रिड स्क्रीनकास्ट

सबग्रिड का लाइव डेमो

हेडर, बॉडी, और फ़ुटर, अपने साथ वाले एलिमेंट के डाइनैमिक साइज़ के हिसाब से अलाइन होते हैं.

सबग्रिड, खास तौर पर एक ही तरह के कॉन्टेंट को एक-दूसरे के डाइनैमिक कॉन्टेंट के साथ अलाइन करने के लिए फ़ायदेमंद होता है. इससे कॉपीराइटर, यूएक्स राइटर, और अनुवादकों को ऐसी प्रोजेक्ट कॉपी बनाने की कोशिश करने से राहत मिलती है जो लेआउट में "फ़िट" हो. सबग्रिड की मदद से, लेआउट को कॉन्टेंट के हिसाब से अडजस्ट किया जा सकता है.

सबग्रिड के बारे में ज़्यादा जानें.

मुद्रण कला

साल 2023 में, वेब टाइपोग्राफ़ी में कुछ अहम अपडेट हुए. text-wrap प्रॉपर्टी, प्रोग्रेसिव एन्हांसमेंट का एक बेहतरीन उदाहरण है. यह प्रॉपर्टी, टाइपोग्राफ़िक लेआउट को अडजस्ट करने की सुविधा देती है. इसे ब्राउज़र में कंपोज़ किया जाता है. इसके लिए, किसी अतिरिक्त स्क्रिप्ट की ज़रूरत नहीं होती. अब लाइनें न तो बहुत लंबी होंगी और न ही बहुत छोटी. साथ ही, टाइपोग्राफ़ी भी ज़्यादा अनुमानित होगी!

Initial-letter

Browser Support

  • Chrome: 110.
  • Edge: 110.
  • Firefox: not supported.
  • Safari: 9.

Source

साल की शुरुआत में Chrome 110 में लॉन्च हुई initial-letter प्रॉपर्टी, सीएसएस की एक छोटी, लेकिन काम की सुविधा है. यह शुरुआती अक्षरों को प्लेस करने के लिए स्टाइल सेट करती है. अक्षरों को नीचे या ऊपर की ओर किया जा सकता है. यह प्रॉपर्टी दो आर्ग्युमेंट स्वीकार करती है: पहला, अक्षर को उससे जुड़े पैराग्राफ़ में कितना नीचे ले जाना है. दूसरा, अक्षर को उससे कितना ऊपर उठाना है. इन दोनों को एक साथ भी इस्तेमाल किया जा सकता है. जैसे, यहां दिए गए डेमो में दिखाया गया है.

पहले अक्षर वाला स्क्रीनशॉट

पहले अक्षर के डेमो का स्क्रीनशॉट

Initial-letter डेमो

::first-letter छद्म एलिमेंट के लिए, initial-letterकी वैल्यू बदलकर देखें कि यह कैसे बदलता है.

initial-letter के बारे में ज़्यादा जानें.

text-wrap: balance and pretty

डेवलपर के तौर पर, आपको हेडलाइन या पैराग्राफ़ के फ़ॉन्ट का साइज़, फ़ाइनल साइज़ या भाषा के बारे में जानकारी नहीं होती. टेक्स्ट रैपिंग को असरदार और बेहतर बनाने के लिए ज़रूरी सभी वैरिएबल, ब्राउज़र में मौजूद होते हैं. ब्राउज़र को फ़ॉन्ट साइज़, भाषा, और टेक्स्ट के लिए तय की गई जगह जैसे सभी फ़ैक्टर के बारे में पता होता है. इसलिए, यह बेहतर और अच्छी क्वालिटी वाले टेक्स्ट लेआउट को मैनेज करने के लिए सबसे सही विकल्प है.

यहां टेक्स्ट रैपिंग की दो नई तकनीकें काम आती हैं. इनमें से एक को balance और दूसरी को pretty कहा जाता है. balance वैल्यू का मकसद, टेक्स्ट का एक ऐसा ब्लॉक बनाना है जो देखने में अच्छा लगे. वहीं, pretty वैल्यू का मकसद, अनाथ शब्दों को रोकना और हाइफ़नेशन को सही तरीके से लागू करना है. आम तौर पर, ये दोनों काम मैन्युअल तरीके से किए जाते हैं. ब्राउज़र को यह काम सौंपना और उसे अनुवाद की गई किसी भी भाषा के लिए काम करने देना, एक बेहतरीन सुविधा है.

टेक्स्ट रैप करने की सुविधा वाला स्क्रीनकास्ट

टेक्स्ट रैप करने की सुविधा का लाइव डेमो

नीचे दिए गए डेमो में, स्लाइडर को खींचकर तुलना की जा सकती है. इसमें दिखाया गया है कि हेडिंग और पैराग्राफ़ पर balance और pretty का क्या असर पड़ता है. डेमो को किसी दूसरी भाषा में अनुवाद करके देखें!

text-wrap: balance के बारे में ज़्यादा जानें.

रंग

साल 2023, वेब प्लैटफ़ॉर्म के लिए रंगीन रहा. नए कलर स्पेस और डाइनैमिक कलर थीमिंग की सुविधा देने वाले फ़ंक्शन की मदद से, अब आपके पास अपने उपयोगकर्ताओं के लिए शानदार और आकर्षक थीम बनाने का विकल्प है. साथ ही, उन्हें पसंद के मुताबिक बनाने की सुविधा भी दी जा सकती है!

एचडी कलर स्पेस (कलर लेवल 4)

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox: 113.
  • Safari: 15.

Source

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox: 113.
  • Safari: 15.

Source

हार्डवेयर से लेकर सॉफ़्टवेयर, सीएसएस से लेकर ब्लिंक करने वाली लाइट तक; हमारे कंप्यूटर को रंगों को उतना अच्छा दिखाने के लिए बहुत काम करना पड़ सकता है जितना हमारी आंखें देख सकती हैं. साल 2023 में, हमारे पास नए रंग, ज़्यादा रंग, नए कलर स्पेस, कलर फ़ंक्शन, और नई सुविधाएं हैं.

सीएसएस और रंग अब ये काम कर सकते हैं: - यह पता लगाना कि क्या उपयोगकर्ता की स्क्रीन का हार्डवेयर, वाइड गैमट एचडीआर रंगों को दिखा सकता है. - देखें कि क्या उपयोगकर्ता का ब्राउज़र, Oklch या Display P3 जैसे कलर सिंटैक्स को समझता है. - Oklab, Oklch, HWB, Display P3, Rec.2020, XYZ वगैरह में एचडीआर कलर तय करें. - एचडीआर रंगों के साथ ग्रेडिएंट बनाएं, - ग्रेडिएंट को दूसरे कलर स्पेस में इंटरपोलेट करें. - color-mix() की मदद से रंगों को मिक्स करें. - रिलेटिव कलर सिंटैक्स का इस्तेमाल करके, कलर वैरिएंट बनाएं.

स्क्रीनकास्ट के लिए चौथा रंग

Color 4 Demo

नीचे दिए गए डेमो में, हेडिंग और पैराग्राफ़ पर `balance` और `pretty` के असर की तुलना की जा सकती है. इसके लिए, स्लाइडर को खींचें. डेमो को किसी दूसरी भाषा में अनुवाद करके देखें!

Color 4 और कलर स्पेस के बारे में ज़्यादा जानें.

color-mix फ़ंक्शन

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox: 113.
  • Safari: 16.2.

Source

रंगों को मिक्स करना एक आम काम है. साल 2023 में, सीएसएस भी ऐसा कर सकती है. किसी रंग में सफ़ेद या काला रंग मिलाने के साथ-साथ, पारदर्शिता भी बदली जा सकती है. इसके अलावा, अपनी पसंद के किसी भी कलर स्पेस में यह सब किया जा सकता है. यह एक साथ, रंग की बुनियादी और ऐडवांस सुविधा है.

color-mix() फ़ंक्शन का स्क्रीनकास्ट

color-mix() का डेमो

डेमो में, कलर पिकर की मदद से दो रंग चुने जा सकते हैं. साथ ही, कलर स्पेस और यह तय किया जा सकता है कि मिक्स किए गए रंग में हर रंग का कितना हिस्सा होना चाहिए.

color-mix() को ग्रेडिएंट में किसी समय के तौर पर देखा जा सकता है. ग्रेडिएंट में, नीले से सफ़ेद रंग में बदलने के सभी चरण दिखते हैं. वहीं, color-mix() में सिर्फ़ एक चरण दिखता है. कलर स्पेस को ध्यान में रखने और यह जानने के बाद कि मिक्सिंग कलर स्पेस, नतीजों से कितना अलग हो सकता है, चीज़ें बेहतर हो जाती हैं.

color-mix() के बारे में ज़्यादा जानें.

रिलेटिव कलर सिंटैक्स

रिलेटिव कलर सिंटैक्स (आरसीएस), color-mix() के साथ मिलकर काम करता है. इससे कलर वैरिएंट बनाए जा सकते हैं. यह color-mix() से थोड़ा ज़्यादा बेहतर है. हालांकि, यह रंग के साथ काम करने की एक अलग रणनीति भी है. color-mix() किसी रंग को हल्का करने के लिए, उसमें सफ़ेद रंग मिला सकता है. वहीं, आरसीएस की मदद से, लाइटनेस चैनल को सटीक तरीके से ऐक्सेस किया जा सकता है. साथ ही, प्रोग्राम के हिसाब से लाइटनेस को कम या ज़्यादा करने के लिए, चैनल पर calc() का इस्तेमाल किया जा सकता है.

आरसीएस की मदद से स्क्रीनकास्ट करने की सुविधा

आरसीएस का लाइव डेमो

रंग बदलें, सीन बदलें. इनमें से हर एक, बेस कलर से अलग-अलग वैरिएंट बनाने के लिए, रिलेटिव कलर सिंटैक्स का इस्तेमाल करता है.

आरसीएस की मदद से, किसी रंग में बदलाव किया जा सकता है. रिलेटिव बदलाव में, सैचुरेशन या लाइटनेस की मौजूदा वैल्यू ली जाती है और उसे calc() से बदला जाता है. कुल बदलाव वह होता है जिसमें चैनल की वैल्यू को पूरी तरह से नई वैल्यू से बदल दिया जाता है. जैसे, ओपैसिटी को 50% पर सेट करना. इस सिंटैक्स से आपको थीमिंग, जस्ट इन टाइम वैरिएंट वगैरह के लिए काम के टूल मिलते हैं.

रिलेटिव कलर सिंटैक्स के बारे में ज़्यादा जानें.

रिस्पॉन्सिव डिज़ाइन

साल 2023 में रिस्पॉन्सिव डिज़ाइन में बदलाव हुए. इस साल, हमने ऐसी नई सुविधाएं लॉन्च की हैं जिनसे रिस्पॉन्सिव वेब अनुभव बनाने का तरीका पूरी तरह से बदल गया है. साथ ही, हमने कॉम्पोनेंट पर आधारित रिस्पॉन्सिव डिज़ाइन का नया मॉडल लॉन्च किया है. कंटेनर क्वेरी और :has() के कॉम्बिनेशन से, ऐसे कॉम्पोनेंट बनाए जा सकते हैं जो अपने पैरंट के साइज़ के हिसाब से, रिस्पॉन्सिव और लॉजिकल स्टाइलिंग को मैनेज करते हैं. साथ ही, वे अपने किसी भी चाइल्ड कॉम्पोनेंट की मौजूदगी या स्थिति के हिसाब से भी स्टाइलिंग को मैनेज करते हैं. इसका मतलब है कि अब पेज-लेवल के लेआउट को कॉम्पोनेंट-लेवल के लेआउट से अलग किया जा सकता है. साथ ही, कॉम्पोनेंट का इस्तेमाल हर जगह करने के लिए, लॉजिक को एक बार लिखा जा सकता है!

साइज़ कंटेनर क्वेरी

Browser Support

  • Chrome: 105.
  • Edge: 105.
  • Firefox: 110.
  • Safari: 16.

Source

सीएसएस स्टाइल लागू करने के लिए, व्यूपोर्ट के ग्लोबल साइज़ की जानकारी का इस्तेमाल करने के बजाय, कंटेनर क्वेरी पेज में मौजूद पैरंट एलिमेंट की क्वेरी करने की सुविधा देती हैं. इसका मतलब है कि कॉम्पोनेंट को कई लेआउट और कई व्यू में डाइनैमिक तरीके से स्टाइल किया जा सकता है. इस साल वैलेंटाइन्स डे (14 फ़रवरी) के दिन, साइज़ के लिए कंटेनर क्वेरी की सुविधा सभी मॉडर्न ब्राउज़र में उपलब्ध हो गई.

इस सुविधा का इस्तेमाल करने के लिए, सबसे पहले उस एलिमेंट पर कंटेनमेंट सेट अप करें जिसके बारे में क्वेरी की जा रही है. इसके बाद, मीडिया क्वेरी की तरह, स्टाइल लागू करने के लिए साइज़ के पैरामीटर के साथ @container का इस्तेमाल करें. कंटेनर क्वेरी के साथ-साथ, आपको कंटेनर क्वेरी के साइज़ भी मिलते हैं. नीचे दिए गए डेमो में, कार्ड हेडर का साइज़ तय करने के लिए कंटेनर क्वेरी साइज़ cqi (जो इनलाइन कंटेनर के साइज़ को दिखाता है) का इस्तेमाल किया गया है.

@container Screencast

@कंटेनर डेमो

कंटेनर क्वेरी का इस्तेमाल करने के बारे में ज़्यादा जानें.

स्टाइल कंटेनर क्वेरी

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox: not supported.
  • Safari: 18.

स्टाइल क्वेरी, Chrome 111 में आंशिक रूप से लागू की गई हैं. फ़िलहाल, स्टाइल क्वेरी की मदद से, @container style() का इस्तेमाल करते समय पैरंट एलिमेंट पर कस्टम प्रॉपर्टी की वैल्यू के बारे में क्वेरी की जा सकती है. उदाहरण के लिए, यह क्वेरी करें कि कस्टम प्रॉपर्टी की वैल्यू मौजूद है या नहीं. इसके अलावा, यह भी क्वेरी की जा सकती है कि कस्टम प्रॉपर्टी की वैल्यू किसी खास वैल्यू पर सेट है या नहीं. जैसे, @container style(--rain: true).

स्टाइल क्वेरी का स्क्रीनशॉट

स्टाइल कंटेनर क्वेरी के मौसम वाले कार्ड के लिए डेमो स्क्रीनशॉट

स्टाइल क्वेरी का डेमो

रंग बदलें, सीन बदलें. इनमें से हर एक, बेस कलर से अलग-अलग वैरिएंट बनाने के लिए, रिलेटिव कलर सिंटैक्स का इस्तेमाल करता है.

यह सीएसएस में क्लास के नामों का इस्तेमाल करने जैसा लगता है. हालांकि, स्टाइल क्वेरी के कुछ फ़ायदे हैं. पहला फ़ायदा यह है कि स्टाइल क्वेरी की मदद से, सीएसएस में वैल्यू को अपडेट किया जा सकता है. ऐसा छद्म स्थितियों के लिए ज़रूरी होता है. इसके अलावा, आने वाले समय में लागू होने वाले वर्शन में, स्टाइल लागू होने का पता लगाने के लिए वैल्यू की रेंज के बारे में क्वेरी की जा सकेगी. जैसे, style(60 <= --weather <= 70) और प्रॉपर्टी-वैल्यू पेयर के आधार पर स्टाइल, जैसे कि style(font-style: italic).

स्टाइल क्वेरी का इस्तेमाल करने के बारे में ज़्यादा जानें.

:has() सिलेक्टर

Browser Support

  • Chrome: 105.
  • Edge: 105.
  • Firefox: 121.
  • Safari: 15.4.

Source

डेवलपर, सीएसएस में "पैरंट सिलेक्टर" की सुविधा को लागू करने का अनुरोध पिछले 20 सालों से कर रहे थे. Chrome 105 में शिप किए गए :has() सिलेक्टर की मदद से, अब ऐसा किया जा सकता है. उदाहरण के लिए, .card:has(img.hero) का इस्तेमाल करने पर, .card के उन एलिमेंट को चुना जाएगा जिनमें हीरो इमेज को चाइल्ड के तौर पर इस्तेमाल किया गया है.

:has() डेमो का स्क्रीनशॉट

:has() डेमो के लिए रेफ़रंस स्क्रीनशॉट

:has() का लाइव डेमो

सीएसएस :has() डेमो: इमेज के बिना/साथ वाला कार्ड

:has() अपने तर्क के तौर पर, रिलेटिव सिलेक्टर की सूची स्वीकार करता है. इसलिए, पैरंट एलिमेंट के अलावा और भी कई एलिमेंट चुने जा सकते हैं. अलग-अलग सीएसएस कॉम्बिनेटर का इस्तेमाल करके, न सिर्फ़ DOM ट्री में ऊपर की ओर जाया जा सकता है, बल्कि साइडवे सिलेक्शन भी किए जा सकते हैं. उदाहरण के लिए, li:has(+ li:hover) से उस <li> एलिमेंट को चुना जाएगा जिस पर अभी कर्सर है.<li>

:has() Screencast

:has() डेमो

सीएसएस :has() डेमो: डॉक

सीएसएस :has() सिलेक्टर के बारे में ज़्यादा जानें.

मीडिया क्वेरी अपडेट करना

Browser Support

  • Chrome: 113.
  • Edge: 113.
  • Firefox: 102.
  • Safari: 17.

Source

update मीडिया क्वेरी की मदद से, यूज़र इंटरफ़ेस (यूआई) को डिवाइस की रीफ़्रेश दर के हिसाब से अडजस्ट किया जा सकता है. यह सुविधा, fast, slow या none की वैल्यू रिपोर्ट कर सकती है. ये वैल्यू, अलग-अलग डिवाइसों की क्षमताओं से जुड़ी होती हैं.

आपने जिन डिवाइसों के लिए ऐप्लिकेशन डिज़ाइन किया है उनमें से ज़्यादातर में, रीफ़्रेश रेट तेज़ होने की संभावना है. इसमें डेस्कटॉप और ज़्यादातर मोबाइल डिवाइस शामिल हैं. ई-रीडर और कम पावर वाले पेमेंट सिस्टम जैसे डिवाइसों में, रीफ़्रेश रेट कम हो सकता है. यह जानने के बाद कि डिवाइस, ऐनिमेशन या बार-बार होने वाले अपडेट को हैंडल नहीं कर सकता, बैटरी के इस्तेमाल को कम किया जा सकता है या व्यू अपडेट से जुड़ी गड़बड़ियों को ठीक किया जा सकता है.

स्क्रीनकास्ट अपडेट करें

अपडेट किया गया डेमो

रेडियो बटन चुनकर, अपडेट की स्पीड की वैल्यू को सिम्युलेट करें और देखें कि इसका डक पर क्या असर पड़ता है.

@media (update) के बारे में ज़्यादा जानें.

मीडिया क्वेरी स्क्रिप्ट करना

Browser Support

  • Chrome: 120.
  • Edge: 120.
  • Firefox: 113.
  • Safari: 17.

Source

स्क्रिप्टिंग मीडिया क्वेरी का इस्तेमाल करके यह पता लगाया जा सकता है कि JavaScript उपलब्ध है या नहीं. यह प्रोग्रेसिव एन्हांसमेंट के लिए बहुत अच्छा है. इस मीडिया क्वेरी से पहले, यह पता लगाने के लिए कि JavaScript उपलब्ध है या नहीं, एचटीएमएल में nojs क्लास को रखा जाता था. इसके बाद, JavaScript की मदद से इसे हटाया जाता था. इन स्क्रिप्ट को हटाया जा सकता है, क्योंकि अब सीएसएस के पास JavaScript का पता लगाने और उसके मुताबिक बदलाव करने का तरीका है.

Chrome DevTools की मदद से, किसी पेज पर JavaScript को चालू और बंद करने का तरीका यहां जानें.

स्क्रीनकास्ट की स्क्रिप्टिंग

स्क्रिप्टिंग का डेमो

किसी वेबसाइट पर थीम बदलने के लिए, स्क्रिप्टिंग मीडिया क्वेरी का इस्तेमाल किया जा सकता है. इससे सिस्टम की सेटिंग के हिसाब से थीम बदलने में मदद मिलती है, क्योंकि JavaScript उपलब्ध नहीं होती. इसके अलावा, स्विच कॉम्पोनेंट का इस्तेमाल किया जा सकता है. अगर JavaScript उपलब्ध है, तो स्विच को सिर्फ़ चालू और बंद करने के बजाय, स्वाइप किया जा सकता है. स्क्रिप्टिंग उपलब्ध होने पर, यूज़र एक्सपीरियंस को बेहतर बनाने के कई बेहतरीन मौके मिलते हैं. वहीं, स्क्रिप्टिंग बंद होने पर, यूज़र एक्सपीरियंस को बेहतर बनाने के लिए एक मज़बूत आधार मिलता है.

स्क्रिप्ट के बारे में ज़्यादा जानें.

पारदर्शिता कम करने वाली मीडिया क्वेरी

Browser Support

  • Chrome: 118.
  • Edge: 118.
  • Firefox: behind a flag.
  • Safari: not supported.

Source

पारदर्शी नहीं होने वाले इंटरफ़ेस की वजह से, सिरदर्द हो सकता है. साथ ही, देखने से जुड़ी अलग-अलग समस्याओं वाले लोगों को देखने में परेशानी हो सकती है. इसलिए, Windows, macOS, और iOS में सिस्टम की प्राथमिकताएं होती हैं. इनकी मदद से, यूज़र इंटरफ़ेस (यूआई) से पारदर्शिता को कम या हटाया जा सकता है. prefers-reduced-transparency के लिए यह मीडिया क्वेरी, पसंद के हिसाब से अन्य मीडिया क्वेरी के साथ अच्छी तरह से काम करती है. इससे आपको क्रिएटिविटी दिखाने के साथ-साथ उपयोगकर्ताओं के हिसाब से बदलाव करने का मौका मिलता है.

कम ट्रांसपेरेंसी वाला स्क्रीनकास्ट

पारदर्शिता कम करने वाला डेमो

कुछ मामलों में, ऐसा वैकल्पिक लेआउट दिया जा सकता है जिसमें कॉन्टेंट, दूसरे कॉन्टेंट पर ओवरले न हो रहा हो. अन्य मामलों में, किसी रंग की पारदर्शिता को इस तरह से अडजस्ट किया जा सकता है कि वह अपारदर्शी या लगभग अपारदर्शी हो जाए. इस ब्लॉग पोस्ट में, ज़्यादा दिलचस्प डेमो दिए गए हैं. ये डेमो, उपयोगकर्ता की पसंद के हिसाब से काम करते हैं. अगर आपको यह जानना है कि यह मीडिया क्वेरी कब काम की होती है, तो इसे देखें.

@media (prefers-reduced-transparency) के बारे में ज़्यादा जानें.

इंटरैक्शन

इंटरैक्शन, डिजिटल अनुभवों का अहम हिस्सा है. इससे लोगों को यह पता चलता है कि उन्होंने किस चीज़ पर क्लिक किया है और वे वर्चुअल स्पेस में कहां हैं. इस साल, कई बेहतरीन सुविधाएं लॉन्च की गई हैं. इनकी मदद से, इंटरैक्शन को आसानी से कंपोज़ और लागू किया जा सकता है. इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है और वेब का इस्तेमाल करना ज़्यादा आसान हो जाता है.

व्यू ट्रांज़िशन

Browser Support

  • Chrome: 111.
  • Edge: 111.
  • Firefox Technology Preview: supported.
  • Safari: 18.

Source

व्यू ट्रांज़िशन से, पेज के उपयोगकर्ता अनुभव पर काफ़ी असर पड़ता है. View Transitions API की मदद से, ​​सिंगल पेज ऐप्लिकेशन के दो पेज स्टेट के बीच विज़ुअल ट्रांज़िशन बनाए जा सकते हैं. ये ट्रांज़िशन, पूरे पेज के ट्रांज़िशन हो सकते हैं. इसके अलावा, ये पेज पर मौजूद छोटी-छोटी चीज़ों के ट्रांज़िशन भी हो सकते हैं. जैसे, किसी सूची में नया आइटम जोड़ना या हटाना.

View Transitions API के मुख्य फ़ंक्शन के तौर पर document.startViewTranstion फ़ंक्शन काम करता है. एक ऐसा फ़ंक्शन पास करें जो DOM को नई स्थिति में अपडेट करता है. इसके बाद, एपीआई आपके लिए सभी काम करता है. यह सुविधा, किसी इमेज के पहले और बाद के स्नैपशॉट लेती है. इसके बाद, दोनों के बीच ट्रांज़िशन करती है. सीएसएस का इस्तेमाल करके, यह कंट्रोल किया जा सकता है कि कौनसा डेटा कैप्चर किया जाए. साथ ही, यह भी तय किया जा सकता है कि इन स्नैपशॉट को ऐनिमेट कैसे किया जाए.

VT Screencast

VT Demo

व्यू ट्रांज़िशन का डेमो

सिंगल पेज ऐप्लिकेशन के लिए View Transitions API, Chrome 111 में उपलब्ध है. व्यू ट्रांज़िशन के बारे में ज़्यादा जानें.

linear-easing फ़ंक्शन

Browser Support

  • Chrome: 113.
  • Edge: 113.
  • Firefox: 112.
  • Safari: 17.2.

Source

इस फ़ंक्शन के नाम से भ्रमित न हों. linear() फ़ंक्शन (इसे linearकीवर्ड से भ्रमित न करें) की मदद से, आसानी से जटिल ईज़िंग फ़ंक्शन बनाए जा सकते हैं. हालांकि, इससे कुछ हद तक सटीक जानकारी नहीं मिलती.

linear() से पहले, सीएसएस में बाउंस या स्प्रिंग इफ़ेक्ट बनाना मुमकिन नहीं था. यह सुविधा Chrome 113 में उपलब्ध कराई गई थी. linear()की मदद से, इन ईज़िंग को अनुमानित किया जा सकता है. इसके लिए, इन्हें पॉइंट की सीरीज़ में बदला जाता है. इसके बाद, इन पॉइंट के बीच लीनियर इंटरपोलेशन किया जाता है.

बाउंस ईज़िंग कर्व का चार्ट. इसमें कई बिंदु जोड़े गए हैं
नीले रंग में दिखाया गया ओरिजनल बाउंस कर्व, हरे रंग में दिखाए गए मुख्य पॉइंट के सेट से आसान बनाया गया है. linear() फ़ंक्शन इन पॉइंट का इस्तेमाल करता है और इनके बीच में लीनियर इंटरपोलेशन करता है.

लीनियर-ईज़िंग स्क्रीनकास्ट

लीनियर-ईज़िंग डेमो

सीएसएस linear() डेमो.

linear() के बारे में और जानें. linear() कर्व बनाने के लिए, लीनियर ईज़िंग जनरेटर का इस्तेमाल करें.

स्क्रोल करने की प्रोसेस खत्म करें

Browser Support

  • Chrome: 114.
  • Edge: 114.
  • Firefox: 109.
  • Safari: not supported.

Source

कई इंटरफ़ेस में स्क्रोल इंटरैक्शन शामिल होते हैं. कभी-कभी इंटरफ़ेस को, स्क्रोल की मौजूदा पोज़िशन से जुड़ी जानकारी को सिंक करने या मौजूदा स्थिति के आधार पर डेटा फ़ेच करने की ज़रूरत होती है. scrollend इवेंट से पहले, आपको टाइम आउट करने के लिए ऐसी गलत तरीके का इस्तेमाल करना पड़ता था जो तब भी ट्रिगर हो सकता था, जब उपयोगकर्ता की उंगली स्क्रीन पर हो. scrollend इवेंट की मदद से, आपको स्क्रोल खत्म होने का सही समय पता चलता है. इससे यह भी पता चलता है कि उपयोगकर्ता ने स्क्रोल करना बंद कर दिया है या नहीं.

Scrollend Screencast

Scrollend Demo

ब्राउज़र के लिए यह जानकारी होना ज़रूरी है, क्योंकि स्क्रोल करते समय JavaScript, स्क्रीन पर उंगली की मौजूदगी को ट्रैक नहीं कर सकती. यह जानकारी उपलब्ध नहीं होती. स्क्रोल के आखिर तक पहुंचने की कोशिश करने वाले कोड के गलत हिस्सों को अब मिटाया जा सकता है. साथ ही, उनकी जगह ब्राउज़र के मालिकाना हक वाला ज़्यादा सटीक इवेंट इस्तेमाल किया जा सकता है.

scrollend के बारे में ज़्यादा जानें.

स्क्रोल करने पर दिखने वाले ऐनिमेशन

Browser Support

  • Chrome: 115.
  • Edge: 115.
  • Firefox: behind a flag.
  • Safari: 26.

Source

स्क्रोल करने पर चलने वाले ऐनिमेशन, Chrome 115 से उपलब्ध एक बेहतरीन सुविधा है. इनकी मदद से, मौजूदा सीएसएस ऐनिमेशन या Web Animations API की मदद से बनाए गए ऐनिमेशन को स्क्रोलर के स्क्रोल ऑफ़सेट से जोड़ा जा सकता है. ऊपर और नीचे या हॉरिज़ॉन्टल स्क्रोलर में बाएं और दाएं स्क्रोल करने पर, लिंक किया गया ऐनिमेशन सीधे तौर पर आगे और पीछे की ओर स्क्रोल होगा.

ScrollTimeline की मदद से, स्क्रोलर की पूरी प्रोग्रेस को ट्रैक किया जा सकता है. इसे यहां दिए गए डेमो में दिखाया गया है. पेज के आखिर तक स्क्रोल करने पर, टेक्स्ट एक-एक करके दिखता है.

एसडीए स्क्रीनकास्ट

एसडीए डेमो

सीएसएस स्क्रोल-ड्रिवन ऐनिमेशन का डेमो: स्क्रोल टाइमलाइन

ViewTimeline की मदद से, किसी एलिमेंट को तब ट्रैक किया जा सकता है, जब वह स्क्रोलपोर्ट को पार करता है. यह IntersectionObserver की तरह ही काम करता है, जो किसी एलिमेंट को ट्रैक करता है. नीचे दिए गए डेमो में, हर इमेज स्क्रोलपोर्ट में दिखने के बाद से लेकर बीच में आने तक, धीरे-धीरे दिखती है.

एसडीए डेमो का स्क्रीनकास्ट

एसडीए का लाइव डेमो

सीएसएस स्क्रोल-ड्राइव ऐनिमेशन का डेमो: व्यू टाइमलाइन

स्क्रोल-ड्राइव ऐनिमेशन, सीएसएस ऐनिमेशन और Web Animations API के साथ काम करते हैं. इसलिए, आपको इन एपीआई के सभी फ़ायदों का इस्तेमाल करने का मौका मिलता है. इसमें इन ऐनिमेशन को मुख्य थ्रेड से अलग चलाने की सुविधा भी शामिल है. अब आपको स्क्रोल करने पर, बहुत ही स्मूद ऐनिमेशन मिल सकते हैं. ये ऐनिमेशन, मुख्य थ्रेड से अलग चलते हैं. इसके लिए, आपको सिर्फ़ कुछ लाइनें अतिरिक्त कोड जोड़ना होगा. इसमें क्या पसंद नहीं है?

स्क्रोल-ड्रिवन ऐनिमेशन के बारे में ज़्यादा जानने के लिए, पूरी जानकारी वाला यह लेख पढ़ें या scroll-driven-animations.style पर जाएं. इसमें कई डेमो शामिल हैं.

टाइमलाइन में बाद में अटैचमेंट जोड़ने की सुविधा

Browser Support

  • Chrome: 116.
  • Edge: 116.
  • Firefox: not supported.
  • Safari: 26.

Source

सीएसएस के ज़रिए स्क्रोल-ड्रिवन ऐनिमेशन लागू करते समय, कंट्रोल करने वाले स्क्रोलर को ढूंढने के लिए लुकअप मैकेनिज़्म हमेशा DOM ट्री पर चलता है. इससे यह सिर्फ़ स्क्रोल करने वाले पूर्वजों तक सीमित हो जाता है. हालांकि, कई बार ऐसा होता है कि जिस एलिमेंट में ऐनिमेशन जोड़ना होता है वह स्क्रोलर का चाइल्ड नहीं होता. इसके बजाय, वह किसी दूसरे सबट्री में मौजूद होता है.

ऐनिमेटेड एलिमेंट को, किसी ऐसे एलिमेंट की स्क्रोल-टाइमलाइन ढूंढने की अनुमति दें जो उसका पूर्वज नहीं है. इसके लिए, शेयर किए गए पैरंट पर timeline-scope प्रॉपर्टी का इस्तेमाल करें. इससे, उस नाम के साथ तय किए गए scroll-timeline या view-timeline को इससे जोड़ा जा सकता है. इससे इसका दायरा बढ़ जाता है. इस सेटिंग के चालू होने पर, शेयर किए गए माता-पिता का कोई भी बच्चा, उस नाम से टाइमलाइन का इस्तेमाल कर सकता है.

इस इमेज में, DOM सबट्री का विज़ुअलाइज़ेशन दिखाया गया है. इसमें, शेयर किए गए पैरंट पर टाइमलाइन-स्कोप का इस्तेमाल किया गया है
शेयर किए गए पैरंट पर timeline-scope को सेट करने पर, स्क्रोलर पर सेट किए गए scroll-timeline को उस एलिमेंट से ऐक्सेस किया जा सकता है जो इसे अपने animation-timeline के तौर पर इस्तेमाल करता है

डेमो स्क्रीनकास्ट

लाइव डेमो

सीएसएस स्क्रोल-ड्राइव ऐनिमेशन का डेमो: टाइमलाइन अटैचमेंट को कुछ समय के लिए रोकना

timeline-scope के बारे में और जानें.

डिस्क्रीट प्रॉपर्टी ऐनिमेशन

साल 2023 में जोड़ी गई एक और नई सुविधा यह है कि अलग-अलग ऐनिमेशन को ऐनिमेट किया जा सकता है. जैसे, display: none से ऐनिमेट करना और display: none पर ऐनिमेट करना. Chrome 116 से, कीफ़्रेम के नियमों में display और content-visibility का इस्तेमाल किया जा सकता है. इसके अलावा, किसी भी डिसक्रीट प्रॉपर्टी को 0% पॉइंट के बजाय 50% पॉइंट पर भी ट्रांज़िशन किया जा सकता है. इसे allow-discrete कीवर्ड का इस्तेमाल करके, transition-behavior प्रॉपर्टी के साथ हासिल किया जाता है. इसके अलावा, इसे transition प्रॉपर्टी में शॉर्टहैंड के तौर पर भी इस्तेमाल किया जा सकता है.

डिस्क्रीट ऐनिमेशन स्क्रीनकास्ट

डिस्क्रीट ऐनिमेशन डेमो

अलग-अलग ऐनिमेशन को ट्रांज़िशन करने के बारे में ज़्यादा जानें.

@starting-style

Browser Support

  • Chrome: 117.
  • Edge: 117.
  • Firefox: 129.
  • Safari: 17.5.

Source

@starting-style सीएसएस नियम, display: none से ऐनिमेशन बनाने और ऐनिमेशन को हटाने के लिए, नई वेब सुविधाओं पर आधारित है. इस नियम की मदद से, किसी एलिमेंट को "before-open" स्टाइल दिया जा सकता है. ब्राउज़र, पेज पर एलिमेंट के खुलने से पहले इस स्टाइल को देख सकता है. यह एंट्री ऐनिमेशन के लिए बहुत काम का है. साथ ही, इसका इस्तेमाल पॉपओवर या डायलॉग जैसे एलिमेंट को ऐनिमेट करने के लिए भी किया जा सकता है. यह तब भी काम आ सकता है, जब आपको कोई एलिमेंट बनाना हो और उसे ऐनिमेशन के साथ दिखाना हो. यहां दिए गए उदाहरण में, popover एट्रिब्यूट (अगला सेक्शन देखें) को व्यूपोर्ट के बाहर से, व्यू में और सबसे ऊपर वाली लेयर में आसानी से ऐनिमेट किया गया है.

@starting-style Screencast

@starting-style डेमो

@starting-style और एंट्री के अन्य ऐनिमेशन के बारे में ज़्यादा जानें.

ओवरले

Browser Support

  • Chrome: 117.
  • Edge: 117.
  • Firefox: not supported.
  • Safari: not supported.

Source

नई सीएसएस overlay प्रॉपर्टी को अपने ट्रांज़िशन में जोड़ा जा सकता है. इससे, टॉप-लेयर स्टाइल वाले एलिमेंट (जैसे कि popover और dialog) को टॉप-लेयर से आसानी से ऐनिमेट किया जा सकता है. अगर आपने ट्रांज़िशन ओवरले नहीं किया है, तो आपका एलिमेंट तुरंत क्लिप हो जाएगा, बदल जाएगा, और कवर हो जाएगा. साथ ही, आपको ट्रांज़िशन होता हुआ नहीं दिखेगा. इसी तरह, overlay को टॉप-लेयर एलिमेंट में जोड़ने पर, ::backdrop को आसानी से ऐनिमेट किया जा सकता है.

स्क्रीनकास्ट को ओवरले करना

ओवरले का लाइव डेमो

ओवरले और अन्य एक्ज़िट ऐनिमेशन के बारे में ज़्यादा जानें.

कॉम्पोनेंट

साल 2023, स्टाइल और एचटीएमएल कॉम्पोनेंट के लिए काफ़ी अहम रहा. इस साल popover लॉन्च हुआ. साथ ही, ऐंकर पोज़िशनिंग और स्टाइल वाले ड्रॉपडाउन के फ़्यूचर पर काफ़ी काम किया गया. इन कॉम्पोनेंट की मदद से, सामान्य यूज़र इंटरफ़ेस (यूआई) पैटर्न आसानी से बनाए जा सकते हैं. इसके लिए, आपको हर बार अतिरिक्त लाइब्रेरी पर निर्भर रहने या अपने स्टेट मैनेजमेंट सिस्टम को शुरू से बनाने की ज़रूरत नहीं होती.

Popover

Browser Support

  • Chrome: 114.
  • Edge: 114.
  • Firefox: 125.
  • Safari: 17.

Source

Popover API की मदद से, ऐसे एलिमेंट बनाए जा सकते हैं जो पेज के बाकी कॉन्टेंट के ऊपर दिखते हैं. इनमें मेन्यू, चुनने की सुविधा, और टूलटिप शामिल हो सकती हैं. popover एट्रिब्यूट और id को पॉप-अप होने वाले एलिमेंट में जोड़कर, एक सामान्य पॉपओवर बनाया जा सकता है. साथ ही, popovertarget="my-popover" का इस्तेमाल करके, इसके id एट्रिब्यूट को पॉप-अप करने वाले बटन से कनेक्ट किया जा सकता है. Popover API इन पर काम करता है:

  • सबसे ऊपर की लेयर पर प्रमोशन. पॉपओवर, पेज के बाकी कॉन्टेंट के ऊपर एक अलग लेयर में दिखेंगे. इसलिए, आपको z-इंडेक्स का इस्तेमाल करने की ज़रूरत नहीं होगी.
  • लाइट-डिसमिस की सुविधा. पॉपओवर एरिया के बाहर क्लिक करने से, पॉपओवर बंद हो जाएगा और फ़ोकस वापस आ जाएगा.
  • फ़ोकस को मैनेज करने की डिफ़ॉल्ट सुविधा. पॉपओवर खोलने पर, अगला टैब स्टॉप पॉपओवर के अंदर होता है.
  • कीबोर्ड बाइंडिंग को ऐक्सेस किया जा सकता है. esc बटन दबाने या दो बार टॉगल करने पर, पॉपओवर बंद हो जाएगा और फ़ोकस वापस आ जाएगा.
  • सुलभ कॉम्पोनेंट बाइंडिंग. किसी पॉपओवर एलिमेंट को पॉपओवर ट्रिगर से सिमैंटिक तौर पर कनेक्ट करना.

पॉपओवर स्क्रीनकास्ट

पॉपओवर का लाइव डेमो

चुने गए टेक्स्ट में हॉरिज़ॉन्टल लाइनें

एचटीएमएल में एक और छोटा बदलाव किया गया है. इस साल, Chrome और Safari में यह बदलाव लागू किया गया है. इसके तहत, <select> एलिमेंट में हॉरिज़ॉन्टल रूल एलिमेंट (<hr> टैग) जोड़े जा सकते हैं. इससे कॉन्टेंट को विज़ुअल तौर पर अलग-अलग हिस्सों में बांटा जा सकता है. पहले, किसी select में <hr> टैग डालने पर, वह रेंडर नहीं होता था. हालांकि, इस साल Safari और Chrome, दोनों में यह सुविधा काम करती है. इससे <select> एलिमेंट में कॉन्टेंट को बेहतर तरीके से अलग किया जा सकता है.

स्क्रीनशॉट चुनें

Chrome में हल्के और गहरे रंग वाली थीम के साथ, &#39;चुने गए&#39; विकल्प में hr का स्क्रीनशॉट

लाइव डेमो चुनें

select में hr का इस्तेमाल करने के बारे में ज़्यादा जानें

:user-valid और :user-invalid सूडो क्लास

Browser Support

  • Chrome: 119.
  • Edge: 119.
  • Firefox: 88.
  • Safari: 16.5.

Source

इस साल सभी ब्राउज़र में स्टेबल हो चुकी :user-valid और :user-invalid, :valid और :invalid सूडो-क्लास की तरह काम करती हैं. हालांकि, ये फ़ॉर्म कंट्रोल से सिर्फ़ तब मैच करती हैं, जब उपयोगकर्ता ने इनपुट के साथ काफ़ी इंटरैक्ट किया हो. अगर कोई फ़ॉर्म कंट्रोल ज़रूरी है और वह खाली है, तो वह :invalid से मैच करेगा. भले ही, उपयोगकर्ता ने पेज से इंटरैक्ट करना शुरू न किया हो. जब तक उपयोगकर्ता इनपुट नहीं बदलता और उसे अमान्य स्थिति में नहीं छोड़ देता, तब तक एक ही कंट्रोल :user-invalid से मैच नहीं होगा.

इन नए सिलेक्टर की मदद से, अब आपको स्टेटफ़ुल कोड लिखने की ज़रूरत नहीं है. इससे यह ट्रैक किया जा सकता है कि उपयोगकर्ता ने कौनसे इनपुट बदले हैं.

:user-* Screencast

:user-* लाइव डेमो

user-* फ़ॉर्म की पुष्टि करने वाले सूडो एलिमेंट का इस्तेमाल करने के बारे में ज़्यादा जानें.

खास अकॉर्डियन

Browser Support

  • Chrome: 120.
  • Edge: 120.
  • Firefox: 130.
  • Safari: 17.2.

वेब पर यूज़र इंटरफ़ेस (यूआई) का एक सामान्य पैटर्न, अकॉर्डियन कॉम्पोनेंट होता है. इस पैटर्न को लागू करने के लिए, कुछ <details> एलिमेंट को एक साथ रखा जाता है. अक्सर, उन्हें विज़ुअल तौर पर ग्रुप किया जाता है, ताकि यह पता चल सके कि वे एक-दूसरे से जुड़े हुए हैं.

Chrome 120 में, <details> एलिमेंट पर name एट्रिब्यूट इस्तेमाल करने की सुविधा जोड़ी गई है. इस एट्रिब्यूट का इस्तेमाल करने पर, <details> के कई ऐसे एलिमेंट मिलकर एक सिमैंटिक ग्रुप बनाते हैं जिनकी name वैल्यू एक जैसी होती है. ग्रुप में मौजूद ज़्यादा से ज़्यादा एक एलिमेंट को एक बार में खोला जा सकता है: ग्रुप में मौजूद <details> एलिमेंट में से किसी एक को खोलने पर, पहले से खुला हुआ एलिमेंट अपने-आप बंद हो जाएगा. इस तरह के अकॉर्डियन को एक्सक्लूसिव अकॉर्डियन कहा जाता है.

सिर्फ़ आपके लिए अकॉर्डियन का डेमो

एक्सक्लूसिव अकॉर्डियन में शामिल <details> एलिमेंट का सिबलिंग होना ज़रूरी नहीं है. ये दस्तावेज़ में कहीं भी हो सकते हैं.

पिछले कुछ सालों में, सीएसएस में काफ़ी बदलाव हुए हैं. खास तौर पर, 2023 में. अगर आपने सीएसएस का इस्तेमाल पहले नहीं किया है या आपको इसकी बुनियादी बातों के बारे में फिर से जानना है, तो हमारा बिना किसी शुल्क के उपलब्ध सीएसएस के बारे में जानें कोर्स देखें. इसके अलावा, web.dev पर उपलब्ध अन्य मुफ़्त कोर्स भी देखें.

हमारी तरफ़ से आपको छुट्टियों के इस सीज़न की शुभकामनाएं! हमें उम्मीद है कि आपको जल्द ही इन बेहतरीन नई सीएसएस और यूज़र इंटरफ़ेस (यूआई) सुविधाओं को अपने काम में शामिल करने का मौका मिलेगा!

⇾ Chrome की यूज़र इंटरफ़ेस DevRel टीम,