সাস (Sass) Functions: একটি পরিচিতি
Sass (Syntactically Awesome Stylesheets) হল CSS প্রিপ্রসেসর যা CSS-এর লেখার স্টাইলকে আরও কার্যকর এবং সহজ করে তোলে। Sass-এ functions ব্যবহার করা হয় কাস্টম স্টাইলস তৈরি করতে, যেখানে নির্দিষ্ট ইনপুটের ভিত্তিতে আউটপুট রিটার্ন করা হয়। এটা CSS কাস্টমাইজেশনে সহায়তা করে এবং কোডকে আরও পরিষ্কার এবং পুনঃব্যবহারযোগ্য করে তোলে।
Sass-এর ফাংশনগুলি আপনাকে গাণিতিক গণনা, রঙ পরিবর্তন, অথবা এমন কিছু কাজ করার সুযোগ দেয় যা সাধারন CSS দিয়ে করা সম্ভব নয়। নিচে Sass functions এর কিছু বাস্তব উদাহরণ দেওয়া হয়েছে।
১. গাণিতিক অপারেশন: দুটি মান যোগ করা
Sass-এ ফাংশন ব্যবহার করে গাণিতিক গণনা করা সম্ভব। আপনি রঙ বা সাইজের সাথে সম্পর্কিত গণনা করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে দুটি সংখ্যার যোগফল হিসাব করা হচ্ছে।
// Function to add two numbers
@function add($a, $b) {
@return $a + $b;
}
// Usage
.container {
width: add(100px, 50px); // Output: width: 150px;
}
এখানে, add() ফাংশন দুটি সংখ্যার যোগফল রিটার্ন করছে, যা .container ক্লাসের জন্য ব্যবহার করা হয়েছে।
২. রঙের সাথে কাজ করা: রঙের হালকা/গা dark ় করা
Sass রঙের সাথে কাজ করার জন্য ফাংশন ব্যবহার করা যায়, যেমন রঙের উজ্জ্বলতা পরিবর্তন করা বা হালকা/গা dark ় করা।
// Function to lighten a color
@function lighten-color($color, $amount) {
@return lighten($color, $amount);
}
// Usage
.button {
background-color: lighten-color(#ff6347, 20%); // Lightens the tomato color by 20%
}
এখানে, lighten-color() ফাংশন রঙের উজ্জ্বলতা পরিবর্তন করছে এবং .button ক্লাসের জন্য একটি হালকা টমেটো রঙ প্রদান করছে।
৩. প্রস্থ এবং উচ্চতা গণনা করা
একটি সাধারণ ব্যবহারিক পরিস্থিতিতে, আপনি কোনো ব্লকের প্রস্থ এবং উচ্চতা সমন্বয় করতে চাইতে পারেন। এই কাজটি ফাংশন ব্যবহার করে সহজভাবে করা যায়।
// Function to calculate padding
@function calculate-padding($width, $height) {
@return ($width + $height) / 2;
}
// Usage
.element {
padding: calculate-padding(20px, 30px); // Output: padding: 25px;
}
এখানে, calculate-padding() ফাংশনটি দুইটি মানের (প্রস্থ এবং উচ্চতা) যোগফল করে তাদের গড় বের করছে এবং .element ক্লাসের জন্য প্যাডিং সেট করছে।
৪. ফন্ট সাইজ গণনা
আপনি যদি responsive design তৈরি করেন, তবে ফন্ট সাইজের জন্য একটি ফাংশন তৈরি করতে পারেন যা নির্দিষ্ট স্ক্রীন সাইজের উপর ভিত্তি করে মান দেয়।
// Function to calculate font size based on viewport width
@function responsive-font-size($base-size, $factor) {
@return $base-size * $factor;
}
// Usage
.heading {
font-size: responsive-font-size(16px, 2); // Output: font-size: 32px;
}
এখানে, responsive-font-size() ফাংশনটি বেস ফন্ট সাইজ এবং ফ্যাক্টর দ্বারা গুণফল বের করছে, যা .heading ক্লাসের জন্য ফন্ট সাইজ তৈরি করছে।
৫. অবশ্যই ব্যবহারযোগ্য রঙের স্কিম তৈরি করা
আপনি যদি বিভিন্ন ধরনের রঙের স্কিম তৈরি করতে চান (যেমন, প্রধান রঙ, সেকেন্ডারি রঙ ইত্যাদি), তবে Sass ফাংশন ব্যবহার করে আপনি স্বয়ংক্রিয়ভাবে বিভিন্ন রঙ তৈরি করতে পারেন।
// Function to generate a color scheme
@function generate-scheme($base-color) {
$light: lighten($base-color, 20%);
$dark: darken($base-color, 20%);
@return ($light, $base-color, $dark);
}
// Usage
$colors: generate-scheme(#ff6347); // Generate a scheme from tomato color
.button {
background-color: nth($colors, 2); // Use the base color from the scheme
}
এখানে, generate-scheme() ফাংশনটি একটি বেস রঙ দিয়ে তিনটি রঙের স্কিম তৈরি করছে—একটি হালকা, একটি বেস, এবং একটি গা dark ় রঙ। এবং .button ক্লাসে মধ্যবর্তী রঙটি ব্যবহার করা হয়েছে।
৬. কাস্টম রিস্পন্সিভ রেঞ্জ নির্ধারণ
আপনি যদি ফন্ট সাইজ বা মার্জিনের জন্য রেসপনসিভ সিস্টেম তৈরি করতে চান, তবে এই ফাংশনটি সাহায্য করতে পারে।
// Function to create responsive margins
@function responsive-margin($base-margin, $factor) {
@return $base-margin * $factor;
}
// Usage
.container {
margin: responsive-margin(10px, 2); // Output: margin: 20px;
}
এখানে, responsive-margin() ফাংশনটি একটি বেস মার্জিন এবং একটি ফ্যাক্টর নিয়ে কাজ করছে, যা মার্জিনের মানের উপর ভিত্তি করে মান রিটার্ন করছে।
সারাংশ
Sass Functions CSS-এর কার্যকারিতা বাড়াতে সাহায্য করে এবং কোডকে আরও পুনঃব্যবহারযোগ্য, রিডেবল এবং কার্যকরী করে তোলে। আপনি গাণিতিক অপারেশন, রঙের সাথে কাজ, ফন্ট সাইজ গণনা, এবং রেসপনসিভ ডেটা এর জন্য ফাংশন তৈরি করতে পারেন যা CSS লেখার সময় আপনার প্রচেষ্টাকে সহজ করে দেয়। এই ফাংশনগুলোকে ব্যবহার করে সাস-এর ক্ষমতা আরও ব্যাপকভাবে সম্প্রসারিত করা যায়, এবং উন্নত ডিজাইন সিস্টেম তৈরি করা সম্ভব হয়।
Read more