মূল CSS ৰ নীতিসমূহ শিকিলে, ৰক্ষণাবেক্ষণযোগ্যতা নিশ্চিত কৰিবলৈ মডিউলাৰ, পুনৰ ব্যৱহাৰযোগ্য, আৰু বৰ্ণনাত্মক শৈলী লিখিবলৈ শিকোৱা হয়। কিন্তু যেতিয়া ডেভেলপাৰসকল বাস্তৱ-পৃথিৱীৰ এপ্লিকেচনসমূহৰ সৈতে জড়িত হয়, অনুপ্ৰাণিত অঞ্চললৈ শৈলীসমূহ লিক নোহোৱাকৈ UI বৈশিষ্ট্যসমূহ যোগ কৰাটো প্ৰায়ে অসম্ভৱ অনুভৱ হয়। এই বিষয়টো প্ৰায়ে স্নোবল হৈ এটা স্ব-পূৰ্ণতাপূৰ্ণ লুপলৈ পৰিণত হয়; তাত্ত্বিকভাৱে এটা উপাদান বা শ্ৰেণীৰ বাবে পৰিসৰ কৰা শৈলীসমূহ য’ত ইয়াৰ অন্তৰ্গত নহয় তাতেই দেখাবলৈ আৰম্ভ কৰে। ই ডেভেলপাৰক লিক কৰা শৈলীসমূহ অভাৰৰাইড কৰিবলে আৰু অধিক নিৰ্দিষ্ট নিৰ্বাচক সৃষ্টি কৰিবলৈ বাধ্য কৰে, যি তাৰ পিছত ভুলবশতঃ গোলকীয় শৈলীসমূহ অভাৰৰাইড কৰে, ইত্যাদি। কঠিন শ্ৰেণী নামৰ নিয়ম, যেনে BEM, এই সমস্যাৰ এটা তাত্ত্বিক সমাধান। BEM (ব্লক, উপাদান, পৰিবৰ্তক) পদ্ধতি হৈছে CSS নথিপত্ৰসমূহৰ ভিতৰত পুনৰ ব্যৱহাৰযোগ্যতা আৰু গঠন সুনিশ্চিত কৰিবলে CSS শ্ৰেণীসমূহৰ নামকৰণৰ এটা পদ্ধতিগত উপায়। এই ধৰণৰ নামকৰণ নিয়মসমূহে উপাদানসমূহ আৰু সিহতৰ অৱস্থা বৰ্ণনা কৰিবলে ডমেইন ভাষাৰ সহায় লৈ জ্ঞানমূলক লোড হ্ৰাস কৰিব পাৰে, আৰু যদি সঠিকভাৱে প্ৰণয়ন কৰা হয়, বৃহৎ এপ্লিকেচনসমূহৰ বাবে শৈলীসমূহ ৰক্ষণাবেক্ষণ কৰাটো সহজ কৰিব পাৰে। বাস্তৱ জগতত অৱশ্যে সদায় তেনেকুৱা নহয়। অগ্ৰাধিকাৰ সলনি হ’ব পাৰে, আৰু পৰিৱৰ্তনৰ লগে লগে কাৰ্যকৰীকৰণ অসামঞ্জস্যপূৰ্ণ হৈ পৰে। HTML গঠনৰ সৰু সৰু পৰিবৰ্তনৰ বাবে বহুতো CSS শ্ৰেণীৰ নাম পুনৰীক্ষণৰ প্ৰয়োজন হব পাৰে। অতি পাৰস্পৰিক ফ্ৰন্ট-এণ্ড এপ্লিকেচনসমূহৰ সৈতে, BEM আৰ্হি অনুসৰণ কৰা শ্ৰেণী নামসমূহ দীঘলীয়া আৰু অসহজ হ'ব পাৰে (যেনে, app-user-overview__status--is-authenticating), আৰু নামকৰণ নিয়মসমূহ সম্পূৰ্ণৰূপে মানি নচলে চিস্টেমৰ গঠন ভংগ কৰে, যাৰ ফলত ইয়াৰ সুবিধাসমূহ নস্যাৎ হয়। এই প্ৰত্যাহ্বানসমূহৰ প্ৰতি লক্ষ্য ৰাখি, ডেভেলপাৰসকলে ফ্ৰেমৱৰ্কৰ ফালে মুখ কৰাটো কোনো আচৰিত কথা নহয়, Tailwind হৈছে আটাইতকৈ জনপ্ৰিয় CSS ফ্ৰেমৱৰ্ক। শৈলীসমূহৰ মাজত এটা অবিজয়ী নিৰ্দিষ্টতা যুদ্ধৰ দৰে দেখা যোৱাটো যুঁজিবলৈ চেষ্টা কৰাৰ পৰিৱৰ্তে, CSS Cascade এৰি দিয়া আৰু সম্পূৰ্ণ পৃথকীকৰণৰ নিশ্চয়তা দিয়া সঁজুলিসমূহ ব্যৱহাৰ কৰাটো সহজ। ডেভেলপাৰসকলে ইউটিলিটিৰ ওপৰত অধিক হেলান দিয়ে আমি কেনেকৈ জানিম যে কিছুমান ডেভেলপাৰে কেছকেড শৈলী এৰাই চলিবলৈ আগ্ৰহী? ই হৈছে “আধুনিক” ফ্ৰন্ট-এণ্ড সঁজুলিৰ উত্থান — যেনে CSS-in-JS ফ্ৰেমৱৰ্ক — সেই উদ্দেশ্যে বিশেষভাৱে ডিজাইন কৰা হৈছে। নিৰ্দিষ্ট উপাদানসমূহৰ সৈতে টানকৈ পৰিসৰ কৰা বিচ্ছিন্ন শৈলীৰ সৈতে কাম কৰাটো শুদ্ধ বতাহৰ উশাহ যেন লাগিব পাৰে। ই বস্তুৰ নামকৰণৰ প্ৰয়োজনীয়তা আঁতৰায় — এতিয়াও আটাইতকৈ ঘৃণিত আৰু সময়সাপেক্ষ ফ্ৰন্ট-এণ্ড কামসমূহৰ ভিতৰত এটা — আৰু ডেভেলপাৰসকলক CSS উত্তৰাধিকাৰৰ সুবিধাসমূহ সম্পূৰ্ণৰূপে বুজি নোপোৱা বা লাভ নকৰাকৈ উৎপাদনশীল হ'বলৈ অনুমতি দিয়ে। কিন্তু চি এছ এছ কেছকেডক ডিচিং কৰিলে নিজস্ব সমস্যাও আছে। উদাহৰণস্বৰূপ, জাভাস্ক্রিপ্টত শৈলীসমূহ ৰচনা কৰাৰ বাবে গধুৰ নিৰ্মাণ সংৰূপসমূহৰ প্ৰয়োজন হয় আৰু প্ৰায়ে শৈলীসমূহক উপাদান মাৰ্কআপ বা HTML ৰ সৈতে অস্বস্তিকৰভাৱে মিহলি হোৱালৈ লৈ যায়। সযতনে বিবেচনা কৰা নামকৰণ নিয়মৰ পৰিবৰ্তে, আমি বিল্ড সঁজুলিসমূহক আমাৰ বাবে নিৰ্বাচক আৰু চিনাক্তকৰ্তাসমূহ স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰাৰ অনুমতি দিওঁ (যেনে, .jsx-3130221066), ডেভেলপাৰসকলক নিজৰ মাজতে আন এটা ছ্যুডো-ভাষাৰ সৈতে খোজ মিলাব লাগিব। (যেনেকৈ আপোনাৰ সকলো উপাদানৰ useEffects এ কি কৰে সেয়া বুজি পোৱাৰ জ্ঞানমূলক বোজা ইতিমধ্যে যথেষ্ট নাছিল!) ক্লাছসমূহক সঁজুলিলৈ নামকৰণ কৰাৰ কামক অধিক বিমূৰ্ত কৰাৰ অৰ্থ হ'ল যে মূল ডিবাগিং প্ৰায়ে বিকাশৰ বাবে কমপাইল কৰা নিৰ্দিষ্ট এপ্লিকেচন সংস্কৰণসমূহৰ বাবে বাধাপ্ৰাপ্ত হয়, স্থানীয় ব্ৰাউজাৰ বৈশিষ্ট্যসমূহ লিভাৰেজ কৰাৰ পৰিবৰ্তে যি লাইভ ডিবাগিং সমৰ্থন কৰে, যেনে ডেভেলপাৰ সঁজুলিসমূহ। ই প্ৰায় এনেকুৱা যেন আমি ৱেবে ইতিমধ্যে প্ৰদান কৰা বস্তুবোৰ বিমূৰ্ত কৰিবলৈ আমি ব্যৱহাৰ কৰা সঁজুলিসমূহ ডিবাগ কৰিবলৈ সঁজুলি বিকশিত কৰিব লাগিব — এই সকলোবোৰ প্ৰামাণিক CSS লিখাৰ “বেদনা”ৰ পৰা পলায়নৰ স্বাৰ্থত। ভাগ্য ভাল যে আধুনিক CSS বৈশিষ্ট্যসমূহে কেৱল প্ৰামাণিক CSS লিখাক অধিক নমনীয় কৰি তোলাই নহয় কিন্তু আমাৰ দৰে ডেভেলপাৰসকলক কেছকেড পৰিচালনা কৰিবলৈ আৰু ইয়াক আমাৰ বাবে কাম কৰিবলৈ বহু বেছি শক্তি প্ৰদান কৰে। CSS Cascade Layers এটা ভাল উদাহৰণ, কিন্তু আন এটা বৈশিষ্ট্য আছে যিয়ে আচৰিত ধৰণে মনোযোগৰ অভাৱ পায় — যদিও সেয়া এতিয়া সলনি হৈছে কাৰণ ই শেহতীয়াকৈ বেচলাইন সুসংগত হৈ পৰিছে। চিএছএছ @স্কোপ এট-ৰুল মই CSS @scope at-rule ক আমি সামৰি লোৱা শৈলী-লিক-প্ৰৰোচিত উদ্বেগৰ বাবে এটা সম্ভাৱ্য নিৰাময় বুলি বিবেচনা কৰোঁ, যিয়ে আমাক বিমূৰ্তকৰণ আৰু অতিৰিক্ত নিৰ্মাণ সঁজুলিৰ বাবে স্থানীয় ৱেব সুবিধাসমূহৰ সৈতে আপোচ কৰিবলৈ বাধ্য নকৰে। “@scope CSS at-rule এ আপোনাক নিৰ্দিষ্ট DOM উপবৃক্ষসমূহত উপাদানসমূহ নিৰ্ব্বাচন কৰিবলে সামৰ্থবান কৰে, অভাৰৰাইড কৰাটো কঠিন অতি-নিৰ্দিষ্ট নিৰ্বাচকসমূহ লিখা নোহোৱাকৈ, আৰু আপোনাৰ নিৰ্বাচকসমূহক DOM গঠনৰ সৈতে অতি টানকৈ সংযুক্ত নকৰাকৈ, উপাদানসমূহক নিখুঁতভাৱে লক্ষ্য কৰি।”— MDN

অৰ্থাৎ আমি উত্তৰাধিকাৰ, কেছকেডিং, আনকি চিন্তাৰ মৌলিক পৃথকীকৰণকো ত্যাগ নকৰাকৈয়ে নিৰ্দিষ্ট দৃষ্টান্তত পৃথক শৈলীৰ সৈতে কাম কৰিব পাৰোযিটো ফ্ৰন্ট-এণ্ড ডেভেলপমেণ্টৰ এটা দীৰ্ঘদিনীয়া পথ প্ৰদৰ্শক নীতি হৈ আহিছে। ইয়াৰ উপৰিও ইয়াৰ ব্ৰাউজাৰ কভাৰেজ অতি উত্তম। আচলতে, Firefox 146 এ ডিচেম্বৰ মাহত @scope ৰ বাবে সমৰ্থন যোগ কৰিছিল, যাৰ ফলত ইয়াক প্ৰথমবাৰৰ বাবে Baseline সুসংগত কৰি তোলা হৈছে। ইয়াত BEM আৰ্হি ব্যৱহাৰ কৰা এটা বুটামৰ মাজত এটা সৰল তুলনা কৰা হৈছে বনাম @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