আধুনিক CSS ফাংশন এবং প্রপার্টি যোগ করেছে যা media-query এবং JavaScript হ্যাকের সম্পূর্ণ বিভাগকে প্রতিস্থাপন করে। সবচেয়ে উল্লেখযোগ্যগুলি:
clamp() — তরল, সীমাবদ্ধ মান
h1 { font-size: clamp(1.5rem, , ); }
আধুনিক CSS ফাংশন এবং প্রপার্টি যোগ করেছে যা media-query এবং JavaScript হ্যাকের সম্পূর্ণ বিভাগকে প্রতিস্থাপন করে। সবচেয়ে উল্লেখযোগ্যগুলি:
h1 { font-size: clamp(1.5rem, , ); }
clamp(min, preferred, max) তরল টাইপোগ্রাফি/স্পেসিং প্রদান করে যা viewport এর সাথে মসৃণভাবে স্কেল হয় কিন্তু সীমার মধ্যে থাকে — একাধিক ব্রেকপয়েন্ট মূল্যের font-size media প্রশ্নগুলি এক লাইন দিয়ে প্রতিস্থাপন করে।
.video { aspect-ratio: 16 / 9; width: 100%; } /* height auto-computed to keep 16:9 */
.avatar { aspect-ratio: 1; } /* perfect square at any width */
আগে, একটি responsive 16:9 বাক্স রাখা বদনাম padding-bottom: 56.25% হ্যাক প্রয়োজন ছিল। এখন এটি একটি ঘোষণা — এবং এটি স্থান সংরক্ষণ করে (CLS এর জন্য ভাল) চিত্র লোড হওয়ার আগে।
.container { width: min(90%, 1200px); } /* whichever is SMALLER → fluid but capped */
.box { padding: max(1rem, 3vw); } /* whichever is LARGER → a minimum floor */
min()/max() মান থেকে ছোট/বড় নির্বাচন করে, একটি প্রপার্টিকে media প্রশ্ন ছাড়াই responsive করতে দেয় (যেমন "90% প্রশস্ত, কিন্তু কখনও 1200px এর বেশি নয়")।
.card { display: grid; grid-template-rows: subgrid; grid-row: span 3; }
subgrid একটি নেস্টেড গ্রিডকে তার প্যারেন্টের ট্র্যাক লাইন উত্তরাধিকার করতে দেয়, তাই আইটেমগুলি আলাদা কার্ডে (শিরোনাম, বডি, বোতাম) নিখুঁতভাবে ভাগ করা সারিতে সারিবদ্ধ হয় — আগে স্থির উচ্চতা ছাড়া অসম্ভব ছিল।
.flex { display: flex; gap: 1rem; } /* gap now works in flexbox, not just grid */
এই বৈশিষ্ট্যগুলি দীর্ঘস্থায়ী হ্যাকগুলি দূর করে: clamp()/min()/max() তরল সাইজিংয়ের জন্য media প্রশ্নের স্ট্যাক প্রতিস্থাপন করে, aspect-ratio padding হ্যাক প্রতিস্থাপন করে এবং লেআউট শিফট থেকে রক্ষা করে, এবং subgrid ক্রস-কম্পোনেন্ট সারিবদ্ধতা সমাধান করে।
তারা responsive, আনুপাতিক লেআউটগুলিকে নাটকীয়ভাবে সহজ এবং আরও শক্তিশালী করে তোলে — আধুনিক CSS যা ঘোষণামূলকভাবে করে তা JS বা নাজুক কৌশল প্রয়োজন ছিল।