Sass কি?
Sass (Syntactically Awesome Stylesheets) হল একটি শক্তিশালী CSS প্রিপ্রসেসর যা CSS এর এক্সটেনশন হিসেবে কাজ করে এবং আরও ডাইনামিক, মডুলার এবং রিয়ুজেবল স্টাইলশিট তৈরি করতে সাহায্য করে। Sass আপনাকে পরিবর্তনশীল, নেস্টিং, মিক্সিন্স এবং ফাংশন ব্যবহারের মাধ্যমে CSS কোড সহজ এবং আরও পরিচালনাযোগ্য করে তোলে।
Maps এবং Lists হল দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা Sass-এ ব্যবহৃত হয়। এগুলি ডেটা সংগ্রহের জন্য ব্যবহৃত হয় এবং সেগুলির মাধ্যমে CSS কোড আরও সংগঠিত ও শক্তিশালী করা যায়।
Sass এ Maps
Maps হল একটি ডেটা স্ট্রাকচার যা কী-ভ্যালু জোড়ে ডেটা সংরক্ষণ করে। আপনি Sass-এ কাস্টম স্টাইলস বা অন্যান্য ডেটা সংরক্ষণ করতে Maps ব্যবহার করতে পারেন। এটি CSS প্রপার্টি এবং মান সংরক্ষণের জন্য খুবই কার্যকরী।
Maps তৈরি এবং ব্যবহার
Sass-এ একটি Map তৈরি করতে আপনি {} ব্রেস ব্যবহার করেন এবং কী-ভ্যালু পেয়ার ব্যবহার করে মানগুলি সংরক্ষণ করেন।
$colors: (
"primary": #ff6347,
"secondary": #4caf50,
"tertiary": #3498db
);
// একটি মান অ্যাক্সেস করা
body {
background-color: map-get($colors, "primary");
}
এখানে, $colors নামক একটি Map তৈরি করা হয়েছে, যেখানে তিনটি কী-ভ্যালু পেয়ার রয়েছে। map-get() ফাংশন ব্যবহার করে আমরা primary কী এর মানটি অ্যাক্সেস করছি, যা হবে #ff6347।
Maps এ মান যোগ করা
Sass-এ আপনি একটি Map এ নতুন কী-ভ্যালু যোগ করতে পারেন map-merge() ফাংশন ব্যবহার করে।
$colors: (
"primary": #ff6347,
"secondary": #4caf50
);
$moreColors: (
"tertiary": #3498db,
"quaternary": #e74c3c
);
$colors: map-merge($colors, $moreColors);
// now $colors contains the merged maps
body {
background-color: map-get($colors, "tertiary");
}
এখানে, $moreColors নামক নতুন Map তৈরি করা হয়েছে এবং map-merge() ব্যবহার করে এটি $colors Map এর সাথে মার্জ করা হয়েছে।
Maps এ লুপ ব্যবহার করা
আপনি @each লুপ ব্যবহার করে Map এর মধ্যে থাকা সমস্ত কী-ভ্যালু পেয়ারেও লুপ করতে পারেন।
$colors: (
"primary": #ff6347,
"secondary": #4caf50,
"tertiary": #3498db
);
@each $name, $color in $colors {
.#{$name} {
background-color: $color;
}
}
এখানে, @each লুপের মাধ্যমে $colors Map থেকে প্রতিটি কী এবং মানকে ব্যবহার করে ক্লাস তৈরি করা হয়েছে।
Sass এ Lists
Lists হল একটি অর্ডারড ডেটা স্ট্রাকচার যা একাধিক মান একটি নির্দিষ্ট অর্ডারে রাখে। Sass-এ Lists সাধারণত স্টাইলশিটে বিভিন্ন মানকে সংগ্রহ করতে ব্যবহৃত হয়।
Lists তৈরি এবং ব্যবহার
Sass-এ List তৈরি করতে আপনি () ব্রেস ব্যবহার করেন এবং কমা দিয়ে মানগুলি আলাদা করেন।
$colors: #ff6347, #4caf50, #3498db;
body {
background-color: nth($colors, 1); // প্রথম মানটি অ্যাক্সেস করা
}
এখানে, $colors একটি List, এবং nth() ফাংশন ব্যবহার করে আমরা List থেকে প্রথম মানটি (#ff6347) অ্যাক্সেস করেছি।
Lists এ মান যোগ করা
Sass-এ আপনি append() ফাংশন ব্যবহার করে একটি List এ নতুন মান যোগ করতে পারেন।
$colors: #ff6347, #4caf50;
$colors: append($colors, #3498db); // নতুন মান যোগ করা
body {
background-color: nth($colors, 3); // তৃতীয় মানটি অ্যাক্সেস করা
}
এখানে, append() ফাংশন ব্যবহার করে একটি নতুন রঙ (#3498db) $colors List-এ যোগ করা হয়েছে।
Lists এ লুপ ব্যবহার করা
Sass-এ Lists এর মানগুলির ওপর লুপ চালাতে @each ব্যবহার করা হয়।
$colors: #ff6347, #4caf50, #3498db;
@each $color in $colors {
.color-#{$color} {
background-color: $color;
}
}
এখানে, @each লুপের মাধ্যমে $colors List এর প্রতিটি মান ব্যবহার করে CSS ক্লাস তৈরি করা হয়েছে।
Maps এবং Lists ব্যবহারের কিছু উদাহরণ
অন্তর্নিহিত তালিকা এবং ম্যাপ ব্যবহার
$themes: (
"dark": (
"background": #333,
"color": #fff
),
"light": (
"background": #fff,
"color": #333
)
);
@each $theme, $values in $themes {
.#{$theme}-theme {
background-color: map-get($values, "background");
color: map-get($values, "color");
}
}
এখানে, $themes একটি Map যেখানে প্রতিটি কী (theme) এর জন্য একটি sub-map রয়েছে যা background এবং color নির্ধারণ করে। map-get() ব্যবহার করে এই মানগুলি অ্যাক্সেস করা হয়েছে।
সারাংশ
Maps এবং Lists হল Sass এর দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা CSS কোডকে আরও মডুলার, পুনঃব্যবহারযোগ্য এবং পরিচালনাযোগ্য করে তোলে। Maps ব্যবহার করে আপনি কী-ভ্যালু পেয়ার সংরক্ষণ করতে পারেন, যখন Lists ব্যবহার করে আপনি একাধিক মান একটি নির্দিষ্ট অর্ডারে সংরক্ষণ করতে পারেন। এই ডেটা স্ট্রাকচারগুলি Sass এর লুপ, অ্যাক্সেস এবং ম্যানিপুলেশন ফিচারের মাধ্যমে CSS কোড লেখাকে আরও শক্তিশালী ও কার্যকরী করে তোলে।
Sass এ List এবং Map ডেটা টাইপ ব্যবস্থাপনা
Sass (Syntactically Awesome Stylesheets) হল একটি CSS প্রিপ্রসেসর যা CSS লেখার পদ্ধতিকে আরও শক্তিশালী এবং কার্যকরী করে তোলে। এটি ভেরিয়েবল, নেস্টিং, ফাংশন, লুপ, এবং আরও অনেক বৈশিষ্ট্য সরবরাহ করে যা কোডকে আরও পরিষ্কার এবং পুনঃব্যবহারযোগ্য করে তোলে।
Sass এর দুটি বিশেষ ডেটা টাইপ, List এবং Map, CSS স্টাইলগুলিকে আরও গতিশীল এবং প্যারামেট্রিকভাবে পরিচালনা করতে সাহায্য করে। এরা ডেটা সংরক্ষণ এবং পরিচালনার জন্য অত্যন্ত কার্যকরী টুল হতে পারে। নিচে এই দুটি ডেটা টাইপ কীভাবে ব্যবহার করতে হয় এবং তাদের কার্যকারিতা সম্পর্কে আলোচনা করা হলো।
১. Sass List
List হলো এক ধরনের ডেটা টাইপ যা একাধিক মান (values) ধরে রাখে এবং তাদের ক্রমানুসারে অ্যাক্সেস করা হয়। এটি একটি কমা দিয়ে পৃথক করা মানের একটি সিরিজ, যা সিএসএস প্রোপার্টির মধ্যে অনেক ধরনের মান (যেমন, রং, মার্জিন, প্যাডিং) সংরক্ষণ করতে ব্যবহার করা যায়।
List তৈরি করা
$colors: red, green, blue;
এখানে, $colors একটি List যার মধ্যে তিনটি রং রয়েছে: red, green, এবং blue।
List ব্যবহার করা
// List থেকে মান অ্যাক্সেস করা
ul {
list-style-type: nth($colors, 1); // red
}
li {
color: nth($colors, 2); // green
}
এখানে, nth($colors, 1) প্রথম মান red রিটার্ন করবে, এবং nth($colors, 2) দ্বিতীয় মান green রিটার্ন করবে।
List এর মাধ্যমে লুপ ব্যবহার করা
Sass এ @each ডিরেকটিভ ব্যবহার করে আপনি একটি List এর মধ্যে লুপ চালাতে পারেন। এটি CSS স্টাইলগুলির জন্য একাধিক রং বা অন্যান্য মান প্রয়োগ করতে সহায়ক।
$colors: red, green, blue;
ul {
@each $color in $colors {
li.#{$color} {
color: $color;
}
}
}
এই কোডটি প্রতিটি List উপাদানের জন্য একটি li তৈরি করবে যার ক্লাস এবং রঙ হবে।
List এর বৈশিষ্ট্য
- Order-sensitive: List এ মানগুলো একটি নির্দিষ্ট ক্রমে সংরক্ষিত থাকে।
- Index-based: List এর প্রতিটি মান একটি নির্দিষ্ট ইনডেক্সের মাধ্যমে অ্যাক্সেস করা হয়।
- Multiple Values: একাধিক মান একই সাথে একটি List এ থাকতে পারে।
২. Sass Map
Map হল একটি আরও শক্তিশালী ডেটা টাইপ যা কী (key) এবং মান (value) জোড়া সংরক্ষণ করে। এটি List এর তুলনায় আরও বেশি উপযোগী যখন আপনি কোনো ভ্যালুকে একটি নির্দিষ্ট কী এর মাধ্যমে অ্যাক্সেস করতে চান।
Map তৈরি করা
$colors: (
primary: red,
secondary: green,
tertiary: blue
);
এখানে, $colors একটি Map, যেখানে primary, secondary, এবং tertiary হল কী এবং তাদের সংশ্লিষ্ট মান হল red, green, এবং blue।
Map ব্যবহার করা
// Map থেকে মান অ্যাক্সেস করা
div {
color: map-get($colors, primary); // red
}
এখানে, map-get($colors, primary) red রিটার্ন করবে যেহেতু primary কী এর মান red।
Map এর মাধ্যমে লুপ ব্যবহার করা
Map এর মধ্যে লুপ চালাতে @each ডিরেকটিভ ব্যবহার করা যেতে পারে। আপনি সহজেই সমস্ত কী এবং মান একসাথে প্রক্রিয়া করতে পারবেন।
$colors: (
primary: red,
secondary: green,
tertiary: blue
);
ul {
@each $key, $value in $colors {
li.#{$key} {
color: $value;
}
}
}
এখানে, @each ডিরেকটিভ primary, secondary, এবং tertiary কী গুলোর জন্য ক্লাস তৈরি করবে এবং তাদের মান (যেমন, red, green, blue) রঙ হিসাবে প্রয়োগ করবে।
Map এর বৈশিষ্ট্য
- Key-Value Pairs: Map একটি কী এবং তার মানের জোড়া সংরক্ষণ করে।
- Flexible Access: আপনি কোনো কী এর মাধ্যমে মান অ্যাক্সেস করতে পারেন, যা List এর তুলনায় আরও বেশি কার্যকর।
- Complex Data Structure: Map এর মাধ্যমে আপনি জটিল ডেটা সঞ্চয় করতে পারেন, যেমন বিভিন্ন ধরনের সেটিংস, কনফিগারেশন ইত্যাদি।
৩. List এবং Map এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | List | Map |
|---|---|---|
| স্ট্রাকচার | ক্রম অনুসারে মানের তালিকা | কী এবং মানের জোড়া (key-value pair) |
| অ্যাক্সেস পদ্ধতি | ইনডেক্সের মাধ্যমে মান অ্যাক্সেস করা হয় | কী এর মাধ্যমে মান অ্যাক্সেস করা হয় |
| ডেটা টাইপ | সাধারণত একই ধরনের মান সংরক্ষণ | বিভিন্ন ধরনের মান এবং কী ধারণ করতে পারে |
| ইনডেক্সিং | সিকোয়েন্সিয়াল ইনডেক্সিং | কী এর মাধ্যমে অ্যাক্সেস করা হয় |
সারাংশ
Sass এর List এবং Map ডেটা টাইপগুলি ডেটা ম্যানিপুলেশন এবং সিএসএস কোডিংয়ে অনেক শক্তিশালী টুল হিসেবে কাজ করে। List ব্যবহার করে আপনি একাধিক মান সংরক্ষণ করতে পারেন এবং Map ব্যবহার করে কী এবং মানের ভিত্তিতে ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে পারেন। এই দুটি ডেটা টাইপ ব্যবহারের মাধ্যমে আপনি আপনার CSS কোডকে আরও কার্যকরী, পুনঃব্যবহারযোগ্য এবং সাশ্রয়ী করে তুলতে পারেন।
Sass কি?
Sass (Syntactically Awesome Stylesheets) হল একটি CSS প্রিপ্রসেসর যা CSS এর উপর অতিরিক্ত ফিচার এবং ফাংশনালিটি প্রদান করে। এটি স্টাইলশিট লেখার প্রক্রিয়াকে আরও সহজ, দ্রুত এবং পরিষ্কার করে তোলে। Sass এর সাহায্যে আপনি variables, nesting, mixins, inheritance, এবং partials ব্যবহার করতে পারেন, যা CSS এর সাধারণ কাঠামোকে আরও শক্তিশালী এবং কমপ্যাক্ট করে তোলে।
Lists এর মাধ্যমে পুনরাবৃত্তিমূলক স্টাইল তৈরি
Sass এ Lists একটি ডেটা স্ট্রাকচার যা একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয়, এবং সেগুলিকে সহজেই প্রক্রিয়া করা যায়। যখন আপনার অনেক অনুরূপ স্টাইল তৈরি করতে হয় (যেমন একাধিক রং বা সাইজের জন্য একই রকম স্টাইল), তখন Lists এর মাধ্যমে পুনরাবৃত্তিমূলক স্টাইল তৈরি করা সহজ হয়।
এখানে Lists ব্যবহার করে কিভাবে পুনরাবৃত্তিমূলক CSS স্টাইল তৈরি করা যায়, তা দেখানো হলো।
Lists তৈরি এবং পুনরাবৃত্তিমূলক স্টাইল প্রযোজ্য করা
ধরা যাক, আমাদের একটি button এর স্টাইল তৈরি করতে হবে, কিন্তু এই বাটনের জন্য বিভিন্ন color এবং size ব্যবহার করা হবে। আমরা একটি List ব্যবহার করে এই ভ্যালুগুলো পরিচালনা করতে পারি।
Step 1: List তৈরি করা
প্রথমে একটি List তৈরি করা হবে যা বিভিন্ন সাইজ এবং রং সংরক্ষণ করবে।
// List of button colors
$button-colors: (red, green, blue, orange);
// List of button sizes
$button-sizes: (small, medium, large);
এখানে, $button-colors এবং $button-sizes দুটি List তৈরি করা হয়েছে, যা বিভিন্ন বাটনের রং এবং সাইজ ধারণ করে।
Step 2: Lists এর মাধ্যমে পুনরাবৃত্তিমূলক স্টাইল তৈরি করা
এখন, আমরা @each লুপ ব্যবহার করে এই Lists এর ভ্যালুগুলো পুনরাবৃত্তি করে CSS স্টাইল তৈরি করব।
// Button styles for each color
@each $color in $button-colors {
.btn-#{$color} {
background-color: $color;
color: white;
}
}
// Button styles for each size
@each $size in $button-sizes {
.btn-#{$size} {
padding: if($size == small, 5px, if($size == medium, 10px, 15px));
font-size: if($size == small, 12px, if($size == medium, 16px, 20px));
}
}
এখানে, @each ডিরেকটিভ ব্যবহার করা হয়েছে যা একটি List এর প্রতিটি উপাদানের জন্য স্টাইল তৈরি করবে।
- প্রথমে $button-colors এর প্রতিটি উপাদান (যেমন: red, green, blue, orange) এর জন্য
.btn-#{$color}ক্লাস তৈরি করা হবে। - এরপর $button-sizes এর প্রতিটি উপাদান (যেমন: small, medium, large) এর জন্য
.btn-#{$size}ক্লাস তৈরি করা হবে।
Step 3: Generated CSS
উপরের SCSS কোডটি কম্পাইল হওয়ার পরে যেভাবে CSS তৈরি হবে তা নিচে দেখানো হল:
.btn-red {
background-color: red;
color: white;
}
.btn-green {
background-color: green;
color: white;
}
.btn-blue {
background-color: blue;
color: white;
}
.btn-orange {
background-color: orange;
color: white;
}
.btn-small {
padding: 5px;
font-size: 12px;
}
.btn-medium {
padding: 10px;
font-size: 16px;
}
.btn-large {
padding: 15px;
font-size: 20px;
}
এভাবে, Sass Lists ব্যবহার করে আপনি কোড পুনঃব্যবহারযোগ্য এবং সুশৃঙ্খল করতে পারেন। একাধিক স্টাইল তৈরি করার সময় এটি খুবই কার্যকরী হয় এবং কোড কমপ্যাক্ট রাখে।
Sass Lists এবং @each Loop এর সুবিধা
- কোডের পুনঃব্যবহারযোগ্যতা: Lists ব্যবহার করে একাধিক স্টাইল তৈরি করা যায় যা কোড পুনঃব্যবহারযোগ্য এবং পরিচালনা সহজ করে তোলে।
- কমপ্যাক্ট কোড: Lists এবং @each লুপের মাধ্যমে আপনি দীর্ঘ CSS কোডকে ছোট এবং পরিষ্কার করতে পারেন।
- স্টাইল ডাইনামিকভাবে তৈরি করা: Lists এর মাধ্যমে স্টাইলগুলি ডাইনামিকভাবে তৈরি করা যায়, যেমন একাধিক রং, সাইজ, বা অন্যান্য প্রোপার্টি অনুযায়ী।
- রক্ষণাবেক্ষণ সহজ: কোডের পুনরাবৃত্তি কমিয়ে এবং Lists ব্যবহার করে স্টাইল ম্যানেজমেন্ট সহজ এবং দ্রুত হয়।
সারাংশ
Sass এর Lists ব্যবহার করে পুনরাবৃত্তিমূলক স্টাইল তৈরি করা একটি শক্তিশালী পদ্ধতি, যা CSS কোডকে কমপ্যাক্ট এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। @each লুপ এবং Lists ব্যবহার করে একাধিক স্টাইলের জন্য কোড লেখার সময় খুব কম সময় ও পরিশ্রম লাগে। এই পদ্ধতিটি বিশেষভাবে উপকারী যখন আপনি একাধিক অনুরূপ স্টাইল তৈরি করতে চান, যেমন রং, সাইজ, অথবা অন্যান্য বৈশিষ্ট্যগুলির জন্য।
Sass এবং Map কি?
Sass (Syntactically Awesome Stylesheets) হল একটি CSS প্রিপ্রসেসর যা CSS-কে আরও কার্যকরী এবং পরিচালনাযোগ্য করার জন্য উন্নত বৈশিষ্ট্য প্রদান করে। Sass-এ আপনি ভেরিয়েবল, নেস্টিং, পার্টিয়ালস, মিক্সিন্স, ইম্পোর্ট এবং আরও অনেক কিছু ব্যবহার করতে পারেন।
Map হল একটি ডেটা স্ট্রাকচার যা key-value pair সঞ্চিত রাখে। এটা JavaScript-এ অবজেক্টের মতো কাজ করে, কিন্তু Sass-এর মধ্যে এটি আরও শক্তিশালী ফিচার হিসেবে কাজ করে, যেখানে আপনি কাস্টম key-value জোড়া পরিচালনা করতে পারেন।
Sass-এ Map ব্যবহার করে আপনি ডাইনামিক ভ্যালু সঞ্চয় এবং ম্যানিপুলেশন করতে পারবেন, যা কোড পুনঃব্যবহারযোগ্য এবং কমপ্যাক্ট করে তোলে।
Sass-এ Map ব্যবহার করা
Sass-এর মধ্যে Map তৈরি করতে এবং তার key-value pairs পরিচালনা করতে আপনি map-get(), map-merge(), map-remove(), map-keys(), map-values() ইত্যাদি ফাংশন ব্যবহার করতে পারেন।
১. Map তৈরি করা
Sass-এ একটি Map তৈরি করতে আপনি সাধারণভাবে {} চিহ্ন ব্যবহার করে key-value জোড়া লিখে থাকেন।
$colors: (
"primary": #3498db,
"secondary": #2ecc71,
"tertiary": #e74c3c
);
এখানে $colors নামক একটি Map তৈরি করা হয়েছে, যেখানে ৩টি key-value পেয়ার আছে।
২. Map থেকে ভ্যালু পাওয়া
map-get() ফাংশন ব্যবহার করে আপনি একটি নির্দিষ্ট key-এর মান বের করতে পারেন।
$primary-color: map-get($colors, "primary");
এখানে, map-get() ফাংশনটি $colors Map থেকে "primary" key-এর মান বের করবে, এবং সেটি $primary-color এ সঞ্চিত হবে।
৩. Map-এ নতুন key-value পেয়ার যোগ করা
map-merge() ফাংশন ব্যবহার করে আপনি একটি Map এ নতুন key-value পেয়ার যুক্ত করতে পারেন।
$colors: map-merge($colors, ("quaternary": #f39c12));
এখানে, map-merge() ফাংশনটি $colors Map এর সাথে নতুন key-value পেয়ার যোগ করছে: "quaternary": #f39c12।
৪. Map থেকে key-value পেয়ার মুছে ফেলা
map-remove() ফাংশন ব্যবহার করে আপনি একটি নির্দিষ্ট key-value পেয়ার Map থেকে মুছে ফেলতে পারেন।
$colors: map-remove($colors, "tertiary");
এখানে, map-remove() ফাংশনটি $colors থেকে "tertiary" key-value পেয়ারটি মুছে ফেলবে।
৫. Map থেকে সব keys পাওয়া
map-keys() ফাংশন ব্যবহার করে আপনি একটি Map এর সব keys বের করতে পারেন।
$color-keys: map-keys($colors);
এখানে, map-keys() ফাংশনটি $colors Map এর সব keys রিটার্ন করবে, যেমন "primary", "secondary", "quaternary" ইত্যাদি।
৬. Map থেকে সব values পাওয়া
map-values() ফাংশন ব্যবহার করে আপনি একটি Map এর সব values বের করতে পারেন।
$color-values: map-values($colors);
এখানে, map-values() ফাংশনটি $colors Map এর সব values রিটার্ন করবে, যেমন #3498db, #2ecc71, #f39c12 ইত্যাদি।
একাধিক Map একত্রে মিশ্রণ
আপনি একাধিক Map কে map-merge() ফাংশন ব্যবহার করে একত্রে মিশ্রিত (merge) করতে পারেন।
$primary-colors: (
"primary": #3498db,
"secondary": #2ecc71
);
$additional-colors: (
"tertiary": #e74c3c,
"quaternary": #f39c12
);
$all-colors: map-merge($primary-colors, $additional-colors);
এখানে, $primary-colors এবং $additional-colors দুটি আলাদা Map মিশিয়ে একটি নতুন Map $all-colors তৈরি করা হয়েছে।
ব্যবহারিক উদাহরণ
ধরা যাক, আপনি একটি CSS ফাইল তৈরি করতে চান যেখানে বিভিন্ন button colors কে Map ব্যবহার করে পরিচালনা করবেন:
$button-colors: (
"default": #3498db,
"hover": #2980b9,
"active": #1f6a8c
);
.button {
background-color: map-get($button-colors, "default");
&:hover {
background-color: map-get($button-colors, "hover");
}
&:active {
background-color: map-get($button-colors, "active");
}
}
এখানে, $button-colors Map তৈরি করে বিভিন্ন button states (default, hover, active) এর জন্য আলাদা রং সংরক্ষণ করা হয়েছে এবং map-get() ব্যবহার করে সেগুলি প্রয়োগ করা হয়েছে।
সারাংশ
Sass Map একটি শক্তিশালী ডেটা স্ট্রাকচার যা key-value pairs পরিচালনা করতে সাহায্য করে। এটি CSS-এ রঙ, সাইজ, টেক্সট স্টাইল এবং অন্যান্য প্রোপার্টি গুলি খুব সহজে এবং ডাইনামিকভাবে সংরক্ষণ করতে সহায়তা করে। map-get(), map-merge(), map-remove(), map-keys(), এবং map-values() ফাংশনগুলো ব্যবহার করে আপনি Map এর মধ্যে ডেটা সহজেই প্রবাহিত এবং পরিচালনা করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা এবং পরিচালনক্ষমতা বাড়ায়।
Sass (Syntactically Awesome Stylesheets) কি?
Sass (Syntactically Awesome Stylesheets) একটি প্রিসপ্রোসেসর যা CSS (Cascading Style Sheets) এর উপর ভিত্তি করে তৈরি হয়েছে এবং এর মাধ্যমে CSS কোড লেখা আরও কার্যকরী ও সংগঠিত করা সম্ভব হয়। Sass আপনাকে variables, nested rules, mixins, functions এবং loops এর মত শক্তিশালী বৈশিষ্ট্য প্রদান করে, যা CSS কোডকে আরও সহজ এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।
List এবং Map হল Sass এর দুইটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার। List হল একটি অর্ডারড ডেটা স্ট্রাকচার, যেখানে আইটেমগুলো সিকোয়েন্স অনুযায়ী থাকে। Map হল একটি কাস্টম কীগুলির সাথে মানের সেট, যেখানে আপনি কীগুলির মাধ্যমে মান অ্যাক্সেস করতে পারেন।
এই গাইডে আমরা দেখব কীভাবে List এবং Map এর মধ্যে loops এবং functions ব্যবহার করা যায়, যাতে সাস কোড আরও কার্যকরী হয়।
১. List এর মধ্যে লুপ ব্যবহার করা
List হলো একটি অর্ডারড ডেটা স্ট্রাকচার যেখানে একাধিক মান রাখা হয়। Sass এ, আপনি @for অথবা @each লুপ ব্যবহার করে লিস্টের উপর অপারেশন করতে পারেন।
List এর মধ্যে লুপ উদাহরণ:
$colors: red, green, blue, yellow;
@each $color in $colors {
.color-#{$color} {
color: $color;
}
}
এখানে, @each লুপটি $colors লিস্টের প্রতিটি মানে একটি CSS ক্লাস তৈরি করবে, যার নাম হবে color-red, color-green, color-blue, এবং color-yellow, এবং প্রতিটি ক্লাসে সংশ্লিষ্ট রঙ সেট করা হবে।
আউটপুট:
.color-red {
color: red;
}
.color-green {
color: green;
}
.color-blue {
color: blue;
}
.color-yellow {
color: yellow;
}
এটি List এর মধ্যে লুপ ব্যবহার করে কাস্টম ক্লাস তৈরি করার একটি উদাহরণ।
২. Map এর মধ্যে লুপ ব্যবহার করা
Map হল একটি কাস্টম কীগুলির সাথে মানের সেট, যেখানে আপনি কীগুলির মাধ্যমে মান অ্যাক্সেস করতে পারেন। Sass এ @each লুপ ব্যবহার করে আপনি Map এর কীগুলোর উপর কাজ করতে পারেন।
Map এর মধ্যে লুপ উদাহরণ:
$font-sizes: (
small: 12px,
medium: 16px,
large: 20px
);
@each $size, $value in $font-sizes {
.text-#{$size} {
font-size: $value;
}
}
এখানে, $font-sizes একটি Map যা বিভিন্ন সাইজের জন্য মান ধারন করে। @each লুপের মাধ্যমে আমরা প্রতিটি সাইজের জন্য CSS ক্লাস তৈরি করেছি, যেমন text-small, text-medium, এবং text-large, এবং প্রতিটি ক্লাসে সংশ্লিষ্ট ফন্ট সাইজ সেট করেছি।
আউটপুট:
.text-small {
font-size: 12px;
}
.text-medium {
font-size: 16px;
}
.text-large {
font-size: 20px;
}
এটি Map এর মধ্যে লুপ ব্যবহার করে কাস্টম CSS ক্লাস তৈরি করার একটি উদাহরণ।
৩. Functions এর মধ্যে লুপ ব্যবহার করা
Functions ব্যবহার করে আপনি কিছু কাস্টম অপারেশন বা গণনা করতে পারেন এবং সেই ফলাফলকে প্রোপারলি CSS কোডে ব্যবহার করতে পারেন। Sass এ, আপনি @each বা @for লুপের সাথে functions ব্যবহার করতে পারেন।
Function এর মধ্যে লুপ উদাহরণ:
$colors: red, green, blue, yellow;
@function generate-color-classes($colors) {
$result: ();
@each $color in $colors {
$result: append($result, .color-#{$color} { color: $color; });
}
@return $result;
}
@include generate-color-classes($colors);
এখানে, generate-color-classes নামক একটি ফাংশন ব্যবহার করে লিস্টের প্রতিটি মানের জন্য CSS ক্লাস তৈরি করা হয়েছে। এই ফাংশনটি একটি সিএসএস স্টেটমেন্টের সংগ্রহ তৈরি করে এবং সেই স্টেটমেন্টগুলি ফেরত দেয়।
আউটপুট:
.color-red {
color: red;
}
.color-green {
color: green;
}
.color-blue {
color: blue;
}
.color-yellow {
color: yellow;
}
এটি Functions এর মধ্যে লুপ ব্যবহার করে একটি কাস্টম CSS কোড সিস্টেম তৈরি করার উদাহরণ।
৪. List এবং Map এর মধ্যে Conditional Logic ব্যবহার
Sass-এ, আপনি List এবং Map এর উপাদানগুলোর মধ্যে conditional logic প্রয়োগ করতে পারেন। এটি ডেটা প্রক্রিয়াকরণের সময় কিছু শর্ত নির্ধারণ করতে সাহায্য করে।
Conditional Logic উদাহরণ:
$colors: red, green, blue, yellow;
$primary-color: green;
@each $color in $colors {
@if $color == $primary-color {
.primary-color {
background-color: $color;
}
} @else {
.secondary-color {
background-color: $color;
}
}
}
এখানে, @if শর্ত ব্যবহার করে আমরা যাচাই করেছি যে, যদি color মানটি primary-color এর সমান হয়, তবে .primary-color ক্লাসের ব্যাকগ্রাউন্ড সেট করা হবে, অন্যথায় .secondary-color ক্লাসে সেট করা হবে।
আউটপুট:
.primary-color {
background-color: green;
}
.secondary-color {
background-color: red;
}
.secondary-color {
background-color: blue;
}
.secondary-color {
background-color: yellow;
}
এটি List এবং Map এর মধ্যে conditional logic প্রয়োগ করার একটি উদাহরণ।
সারাংশ
Sass আপনাকে List এবং Map ডেটা স্ট্রাকচারের মধ্যে loops এবং functions ব্যবহারের মাধ্যমে শক্তিশালী স্টাইলসheets তৈরি করতে সাহায্য করে। List এবং Map এর মধ্যে @each, @for এবং @function ব্যবহার করে আপনি ডেটার উপর কার্যকরী অপারেশন করতে পারেন, যা CSS কোডের রিডেবিলিটি এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করে। এছাড়া conditional logic এর মাধ্যমে আপনি ডেটার ওপর শর্ত নির্ধারণ করতে পারেন, যা কোডের ফ্লেক্সিবিলিটি আরও বাড়ায়।
Read more