بنیادی CSS کے اصول سیکھتے وقت، کسی کو ماڈیولر، دوبارہ قابل استعمال، اور وضاحتی طرزیں لکھنا سکھایا جاتا ہے تاکہ برقراری کو یقینی بنایا جا سکے۔ لیکن جب ڈویلپرز حقیقی دنیا کی ایپلی کیشنز میں شامل ہو جاتے ہیں، تو اکثر غیر ارادی علاقوں میں سٹائل کے لیک ہونے کے بغیر UI کی خصوصیات شامل کرنا ناممکن محسوس ہوتا ہے۔ یہ مسئلہ اکثر خود کو پورا کرنے والے لوپ میں snowballs; وہ طرزیں جو نظریاتی طور پر ایک عنصر یا طبقے تک محدود ہیں وہ ظاہر ہونا شروع ہو جاتی ہیں جہاں سے ان کا تعلق نہیں ہے۔ یہ ڈویلپر کو لیک شدہ اسٹائلز کو اوور رائیڈ کرنے کے لیے اور بھی زیادہ مخصوص سلیکٹرز بنانے پر مجبور کرتا ہے، جو پھر غلطی سے عالمی اسٹائلز کو اوور رائیڈ کر دیتے ہیں، وغیرہ۔ سخت طبقاتی نام کنونشنز، جیسے BEM، اس مسئلے کا ایک نظریاتی حل ہیں۔ BEM (بلاک، عنصر، موڈیفائر) طریقہ کار CSS کلاسز کو نام دینے کا ایک منظم طریقہ ہے تاکہ CSS فائلوں کے اندر دوبارہ استعمال اور ساخت کو یقینی بنایا جا سکے۔ اس طرح کے نام دینے والے کنونشن عناصر اور ان کی حالت کو بیان کرنے کے لیے ڈومین لینگویج کا فائدہ اٹھا کر علمی بوجھ کو کم کر سکتے ہیں، اور اگر صحیح طریقے سے لاگو کیا جائے تو بڑی ایپلی کیشنز کے لیے اسٹائل کو برقرار رکھنا آسان بنا سکتا ہے۔ حقیقی دنیا میں، تاہم، یہ ہمیشہ اس طرح کام نہیں کرتا ہے۔ ترجیحات بدل سکتی ہیں، اور تبدیلی کے ساتھ عمل درآمد متضاد ہو جاتا ہے۔ ایچ ٹی ایم ایل ڈھانچے میں چھوٹی تبدیلیوں کے لیے بہت سی سی ایس ایس کلاس کے نام پر نظر ثانی کی ضرورت پڑ سکتی ہے۔ انتہائی انٹرایکٹو فرنٹ اینڈ ایپلی کیشنز کے ساتھ، BEM پیٹرن کی پیروی کرنے والے کلاس کے نام طویل اور غیر مؤثر ہو سکتے ہیں (مثال کے طور پر، app-user-overview__status--is-authenticating)، اور نام دینے کے اصولوں پر پوری طرح عمل نہ کرنے سے سسٹم کا ڈھانچہ ٹوٹ جاتا ہے، اس طرح اس کے فوائد کی نفی ہوتی ہے۔ ان چیلنجوں کو دیکھتے ہوئے، یہ کوئی تعجب کی بات نہیں ہے کہ ڈویلپرز نے فریم ورک کی طرف رجوع کیا ہے، Tailwind سب سے زیادہ مقبول CSS فریم ورک ہے۔ سٹائل کے درمیان ایک ناقابل شکست مخصوص جنگ کی طرح لڑنے کی کوشش کرنے کے بجائے، CSS Cascade کو ترک کرنا اور ایسے ٹولز کا استعمال کرنا آسان ہے جو مکمل تنہائی کی ضمانت دیتے ہیں۔ ڈویلپرز افادیت پر زیادہ جھکاؤ رکھتے ہیں۔ ہم کیسے جانتے ہیں کہ کچھ ڈویلپرز جھرنے والی طرزوں سے بچنے کے خواہشمند ہیں؟ یہ "جدید" فرنٹ اینڈ ٹولنگ کا عروج ہے — جیسے CSS-in-JS فریم ورک — جو خاص طور پر اس مقصد کے لیے ڈیزائن کیا گیا ہے۔ الگ تھلگ طرزوں کے ساتھ کام کرنا جو مخصوص اجزاء تک مضبوطی سے دائرے میں ہیں تازہ ہوا کی سانس کی طرح لگ سکتے ہیں۔ یہ چیزوں کو نام دینے کی ضرورت کو دور کرتا ہے - جو اب بھی سب سے زیادہ نفرت انگیز اور وقت خرچ کرنے والے فرنٹ اینڈ کاموں میں سے ایک ہے - اور ڈیولپرز کو CSS وراثت کے فوائد کو مکمل طور پر سمجھے یا فائدہ اٹھائے بغیر نتیجہ خیز بننے کی اجازت دیتا ہے۔ لیکن سی ایس ایس کیسکیڈ کو کھودنا اس کے اپنے مسائل کے ساتھ آتا ہے۔ مثال کے طور پر، جاوا اسکرپٹ میں کمپوزنگ اسٹائلز کے لیے بھاری تعمیراتی کنفیگریشنز کی ضرورت ہوتی ہے اور یہ اکثر اسٹائلز کو اجزا کے مارک اپ یا ایچ ٹی ایم ایل کے ساتھ گھل مل جانے کی طرف لے جاتا ہے۔ نام دینے کے کنونشنوں پر غور سے غور کرنے کے بجائے، ہم اپنے لیے سلیکٹرز اور شناخت کنندگان کو خود کار طریقے سے تخلیق کرنے کی اجازت دیتے ہیں (مثال کے طور پر، .jsx-3130221066)، جس کے لیے ڈویلپرز کو اپنے اندر ایک اور سیوڈو زبان کو برقرار رکھنے کی ضرورت ہوتی ہے۔ (گویا یہ سمجھنے کا علمی بوجھ کہ آپ کے تمام اجزاء کے استعمال کے اثرات پہلے ہی کافی نہیں تھے!) کلاسوں کو ٹولنگ کے نام دینے کے کام کو مزید خلاصہ کرنے کا مطلب یہ ہے کہ بنیادی ڈیبگنگ اکثر ترقی کے لیے مرتب کردہ مخصوص ایپلیکیشن ورژنز تک محدود ہوتی ہے، بجائے اس کے کہ براؤزر کی مقامی خصوصیات جو لائیو ڈیبگنگ کو سپورٹ کرتی ہوں، جیسے ڈیولپر ٹولز۔ یہ تقریباً ایسا ہی ہے کہ ہمیں ان ٹولز کو ڈیبگ کرنے کے لیے ٹولز تیار کرنے کی ضرورت ہے جو ہم ویب پہلے سے فراہم کردہ چیزوں کو خلاصہ کرنے کے لیے استعمال کر رہے ہیں — یہ سب کچھ معیاری CSS لکھنے کے "درد" سے بچنے کی خاطر۔ خوش قسمتی سے، جدید CSS خصوصیات نہ صرف معیاری CSS لکھنے کو مزید لچکدار بناتی ہیں بلکہ ہم جیسے ڈویلپرز کو جھرن کو منظم کرنے اور اسے ہمارے لیے کام کرنے کے لیے بہت زیادہ طاقت فراہم کرتی ہیں۔ CSS Cascade Layers ایک بہترین مثال ہیں، لیکن ایک اور خصوصیت ہے جس پر توجہ کی حیرت انگیز کمی ہوتی ہے - حالانکہ یہ اب تبدیل ہو رہا ہے کہ یہ حال ہی میں بیس لائن سے مطابقت رکھتا ہے۔ CSS @scope At-Rule میں CSS @scope at-rule کو اس طرز کے لیک سے متاثر ہونے والی پریشانی کا ایک ممکنہ علاج سمجھتا ہوں جس کا ہم نے احاطہ کیا ہے، جو ہمیں تجریدات اور اضافی تعمیراتی ٹولنگ کے لیے مقامی ویب فوائد سے سمجھوتہ کرنے پر مجبور نہیں کرتا ہے۔ "@scope CSS at-rule آپ کو مخصوص DOM ذیلی درختوں میں عناصر کو منتخب کرنے کے قابل بناتا ہے، عناصر کو خاص طور پر ہدف بناتے ہوئے بغیر ضرورت سے زیادہ مخصوص سلیکٹرز لکھے جن کو اوور رائڈ کرنا مشکل ہے، اور آپ کے سلیکٹرز کو DOM ڈھانچے کے ساتھ بہت مضبوطی سے جوڑے بغیر۔"- MDN

دوسرے لفظوں میں، ہم وراثت، جھرن، یا یہاں تک کہ خدشات کی بنیادی علیحدگی کی قربانی کے بغیر مخصوص صورتوں میں الگ تھلگ طرزوں کے ساتھ کام کر سکتے ہیں۔یہ فرنٹ اینڈ ڈویلپمنٹ کا ایک طویل عرصے سے چلنے والا رہنما اصول رہا ہے۔ اس کے علاوہ، اس میں بہترین براؤزر کوریج ہے۔ درحقیقت، Firefox 146 نے دسمبر میں @scope کے لیے تعاون شامل کیا، جس سے یہ پہلی بار بیس لائن سے مطابقت رکھتا ہے۔ بی ای ایم پیٹرن بمقابلہ @ اسکوپ اصول کا استعمال کرتے ہوئے بٹن کے درمیان ایک سادہ موازنہ یہ ہے:

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free