সাস (Sass) কি?
Sass (Syntactically Awesome Stylesheets) হল একটি CSS প্রিপ্রোসেসর যা CSS-এ নতুন ফিচার যোগ করতে সক্ষম। এটি ডেভেলপারদের ভ্যারিয়েবল, নেস্টিং, মিশনস, মিডিয়া কুয়েরি, এবং এনিমেশন সহ আরও অনেক শক্তিশালী ফিচার ব্যবহার করে দ্রুত এবং দক্ষভাবে স্টাইল শীট তৈরি করতে সাহায্য করে।
Sass এর সাহায্যে আপনি আরও জটিল এবং ডাইনামিক ওয়েব লেআউট তৈরি করতে পারেন, এবং এটি CSS এর উপর একটি উন্নত স্তরের অ্যাবস্ট্রাকশন প্রদান করে, যা আপনার কোডকে আরও কার্যকরী এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।
এই গাইডে, আমরা দেখব Sass এর মাধ্যমে কীভাবে জটিল লেআউট তৈরি করা যায়, সাস-এর কিছু শক্তিশালী ফিচার ব্যবহার করে।
১. নেস্টিং (Nesting) ব্যবহার করা
Sass এর অন্যতম গুরুত্বপূর্ণ ফিচার হল নেস্টিং। এতে আপনি CSS সিলেক্টরগুলিকে হায়ারার্কিতে রাখতে পারেন, যেমন HTML ডকুমেন্টের স্ট্রাকচার অনুসরণ করা। এটি কোডকে আরো পরিষ্কার এবং সহজে বুঝতে সাহায্য করে।
উদাহরণ:
.container {
width: 100%;
margin: 0 auto;
padding: 20px;
.header {
background-color: #333;
color: white;
padding: 10px;
.title {
font-size: 24px;
}
}
.content {
background-color: #f4f4f4;
padding: 20px;
margin-top: 10px;
}
}
এখানে, .header, .title, এবং .content সিলেক্টরগুলো .container এর ভেতরেই নেস্ট করা হয়েছে। এটি HTML স্ট্রাকচারের মতো একে অপরের মধ্যে সম্পর্ক তৈরি করে এবং কোডকে আরো সুসংগঠিত রাখে।
২. ভ্যারিয়েবল (Variables) ব্যবহার করা
Sass এ ভ্যারিয়েবল ব্যবহার করে আপনি স্টাইলিংয়ের রঙ, ফন্ট, মার্জিন এবং অন্যান্য CSS প্রোপার্টি গুলি পুনঃব্যবহারযোগ্য করে তুলতে পারেন। এটি কোডকে আরও কমপ্যাক্ট এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।
উদাহরণ:
$primary-color: #3498db;
$secondary-color: #2ecc71;
$font-stack: "Helvetica", sans-serif;
.container {
background-color: $primary-color;
color: $secondary-color;
font-family: $font-stack;
padding: 20px;
}
এখানে, আমরা $primary-color, $secondary-color, এবং $font-stack ভ্যারিয়েবলগুলো ব্যবহার করেছি যা কোডের বিভিন্ন জায়গায় পুনরায় ব্যবহৃত হয়েছে। এর ফলে কোডের মান উন্নত হয় এবং স্টাইল পরিবর্তন করা অনেক সহজ হয়ে যায়।
৩. মিশনস (Mixins) ব্যবহার করা
Sass-এ মিশিনস একটি শক্তিশালী ফিচার যা পুনরায় ব্যবহারযোগ্য কোড ব্লক তৈরি করতে সাহায্য করে। আপনি বিভিন্ন CSS প্রোপার্টি বা স্টাইলের সেট তৈরি করে, যেগুলো পরে মিশিনস হিসেবে ব্যবহার করতে পারেন।
উদাহরণ:
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
.button {
@include border-radius(5px);
background-color: #3498db;
padding: 10px 20px;
color: white;
}
এখানে, border-radius নামক একটি মিশিন তৈরি করা হয়েছে যা বিভিন্ন সেলেক্টরে পুনঃব্যবহার করা যায়। @include এর মাধ্যমে আমরা border-radius মিশিনটি .button ক্লাসে ব্যবহার করেছি।
৪. ইনহেরিটেন্স (Inheritance) ব্যবহার করা
Sass এর @extend ডিরেকটিভের মাধ্যমে একটি ক্লাসকে অন্য ক্লাসের স্টাইল হুবহু নকল (inherit) করতে দেওয়া যায়। এটি কোডকে আরও সংক্ষিপ্ত করে তোলে এবং পুনরায় ব্যবহারের সুবিধা প্রদান করে।
উদাহরণ:
.button {
padding: 10px 20px;
background-color: #3498db;
color: white;
}
.primary-button {
@extend .button;
font-size: 18px;
}
.secondary-button {
@extend .button;
background-color: #2ecc71;
}
এখানে, .primary-button এবং .secondary-button ক্লাসগুলো .button ক্লাসের সব স্টাইল @extend এর মাধ্যমে গ্রহণ করছে। এর ফলে কোড পুনরাবৃত্তি কমে যায়।
৫. মিডিয়া কুয়েরি (Media Queries) সহ জটিল লেআউট তৈরি করা
Sass এর মাধ্যমে মিডিয়া কুয়েরি খুবই সহজভাবে ব্যবহার করা যায়। আপনি যদি বিভিন্ন স্ক্রিন সাইজের জন্য বিভিন্ন লেআউট তৈরি করতে চান, তবে মিডিয়া কুয়েরি সাস-এ খুব সুবিধাজনকভাবে লেখা যায়।
উদাহরণ:
$breakpoint: 768px;
.container {
display: flex;
flex-wrap: wrap;
.item {
width: 100%;
padding: 10px;
@media (min-width: $breakpoint) {
width: 48%;
}
}
}
এখানে, .container এর .item ক্লাসের জন্য একটি মিডিয়া কুয়েরি ব্যবহার করা হয়েছে যাতে স্ক্রীনের সাইজ 768px বা তার বেশি হলে আইটেমের প্রস্থ 48% হবে, অন্যথায় তা 100% থাকবে।
৬. গ্রিড সিস্টেম তৈরি করা
Sass এর মাধ্যমে আপনি নিজস্ব গ্রিড সিস্টেম তৈরি করতে পারেন যা আপনার লেআউটকে আরো নমনীয় ও কাস্টমাইজযোগ্য করে তোলে। এটি CSS গ্রিড বা ফ্লেক্সবক্স ব্যবহার করে তৈরি করা যেতে পারে।
উদাহরণ:
$grid-columns: 12;
$gutter-width: 20px;
.container {
display: grid;
grid-template-columns: repeat($grid-columns, 1fr);
gap: $gutter-width;
.col {
grid-column: span 1;
}
.col-6 {
grid-column: span 6;
}
.col-12 {
grid-column: span 12;
}
}
এখানে, একটি কাস্টম গ্রিড সিস্টেম তৈরি করা হয়েছে, যেখানে .col-6 6টি কলাম এবং .col-12 12টি কলাম নিয়ে কাজ করবে। এটি বিভিন্ন লেআউট তৈরি করতে সহায়ক হবে।
সারাংশ
Sass একটি শক্তিশালী এবং কার্যকরী টুল যা জটিল ওয়েব লেআউট তৈরি করতে সাহায্য করে। এর নেস্টিং, ভ্যারিয়েবল, মিশিনস, ইনহেরিটেন্স, মিডিয়া কুয়েরি এবং গ্রিড সিস্টেম ব্যবহার করে আপনি খুব সহজে এবং দ্রুত জটিল লেআউট ডিজাইন করতে পারেন। Sass-এর মাধ্যমে CSS কোড লেখা আরও কার্যকরী, রক্ষণাবেক্ষণযোগ্য এবং পড়তে সুবিধাজনক হয়।
Read more