Sass কি?
Sass (Syntactically Awesome Stylesheets) হল একটি CSS প্রিপ্রসেসর যা CSS কোডকে আরও শক্তিশালী এবং কার্যকরী করে তোলে। Sass এর মাধ্যমে আপনি ভেরিয়েবল, নেস্টেড রুলস, মিক্সিন্স, ইনহেরিটেন্স এবং অন্যান্য ফিচার ব্যবহার করতে পারেন যা CSS লেখার কাজ সহজ করে এবং কোড পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে।
একটি ভাল Sass প্রজেক্ট ফোল্ডার স্ট্রাকচার তৈরি করলে কোডটি পরিষ্কার, রক্ষণাবেক্ষণযোগ্য এবং স্কেলেবল হয়, বিশেষ করে যখন প্রজেক্টটি বড় এবং জটিল হয়ে ওঠে। নিচে Sass প্রজেক্ট ফোল্ডার স্ট্রাকচার তৈরির কিছু পরামর্শ দেওয়া হল।
সাধারণ Sass প্রজেক্ট ফোল্ডার স্ট্রাকচার
Sass প্রজেক্টের ফোল্ডার স্ট্রাকচারকে "7-1" স্ট্রাকচার বলা হয়, যা অত্যন্ত জনপ্রিয় এবং কার্যকরী। এই স্ট্রাকচারটি ৭টি প্রধান ফোল্ডার এবং ১টি ফাইল নিয়ে গঠিত:
/project
/node_modules
/src
/assets
/images
/fonts
/sass
/base
/components
/layout
/pages
/themes
/abstracts
main.scss
/dist
package.json
gulpfile.js / webpack.config.js
ফোল্ডার এবং ফাইল ব্যাখ্যা
/node_modules: এখানে আপনার প্রজেক্টের সমস্ত NPM প্যাকেজ থাকবে, যেমন Sass, Gulp, Webpack ইত্যাদি।/src: মূল সোর্স ফোল্ডার যেখানে আপনার সমস্ত সোর্স কোড থাকবে।/assets: এখানে সব রিসোর্স যেমন images, fonts, বা অন্যান্য মিডিয়া ফাইল থাকবে।/sass: এখানে সমস্ত Sass ফাইল থাকবে যা আপনার CSS কোড তৈরি করবে।/base: আপনার প্রজেক্টের বেস CSS ফাইল এখানে থাকবে, যেমন _reset.scss, _typography.scss, _colors.scss ইত্যাদি।/components: এখানে প্রজেক্টের সকল UI কম্পোনেন্টের জন্য স্টাইল থাকবে, যেমন বাটন, কার্ড, টেবিল ইত্যাদি।/layout: এই ফোল্ডারে লেআউট বা সাইজিং সম্পর্কিত ফাইল থাকবে, যেমন গ্রিড সিস্টেম, মেনু স্টাইল, হেডার, ফুটার ইত্যাদি।/pages: বিশেষ পেজের জন্য স্টাইল থাকবে, যেমন হোম পেজ, অ্যাবাউট পেজ ইত্যাদি।/themes: থিম সম্পর্কিত ফাইল, যেখানে আপনি রঙ, লেআউট ইত্যাদি কনফিগারেশন পাবেন।/abstracts: এখানে আপনার Sass এর সমস্ত মিক্সিন্স, ফাংশন, ভেরিয়েবল ইত্যাদি থাকবে, যা সারা প্রজেক্টে ব্যবহৃত হবে।main.scss: এটি প্রধান ফাইল যা অন্যান্য সমস্ত Sass ফাইলকে @import বা @use করবে এবং সমস্ত স্টাইল শিট তৈরি করবে।
/dist: এই ফোল্ডারটি পাবলিক ফোল্ডার যেখানে আপনি প্রোডাকশন কোড রাখবেন। এখানে কম্পাইল করা CSS এবং অন্যান্য প্রোডাকশন ফাইল থাকবে।package.json: NPM প্যাকেজের তথ্য এবং ডিপেন্ডেন্সি যেমন Sass, Gulp, Webpack ইত্যাদি থাকবে।gulpfile.js / webpack.config.js: আপনার বিল্ড টুল কনফিগারেশন ফাইল যেখানে আপনি বিভিন্ন টাস্ক যেমন Sass কম্পাইলেশন, ওয়াচার ইত্যাদি কনফিগার করবেন।
Sass ফোল্ডার স্ট্রাকচারের বিস্তারিত ব্যাখ্যা
/abstracts:- এই ফোল্ডারে আপনার সমস্ত mixins, functions, এবং variables থাকবে। এখানে এমন ফাইল থাকতে পারে:
- _variables.scss: যেখানে রঙ, ফন্ট সাইজ, মার্জিন/প্যাডিং ইত্যাদি স্টাইল ভেরিয়েবল গুলি রাখা হয়।
- _mixins.scss: যেখানে পুনরাবৃত্তি করা কোডের জন্য মিক্সিনস সংজ্ঞায়িত করা হয়, যেমন ফ্লেক্সবক্স মিক্সিন।
- _functions.scss: এখানে যে কোনো কাস্টম Sass ফাংশন থাকতে পারে যা পুনরায় ব্যবহার করা যেতে পারে।
- এই ফোল্ডারে আপনার সমস্ত mixins, functions, এবং variables থাকবে। এখানে এমন ফাইল থাকতে পারে:
/base:- এই ফোল্ডারটি প্রাথমিক সিএসএস রুলস ধারণ করে। যেমন:
- _reset.scss: ব্রাউজার ডিফল্ট স্টাইল রিসেট করার জন্য।
- _typography.scss: ফন্ট, লাইন-হাইট ইত্যাদি স্টাইলের জন্য।
- এই ফোল্ডারটি প্রাথমিক সিএসএস রুলস ধারণ করে। যেমন:
/components:- এখানে ছোট ছোট UI কম্পোনেন্টগুলির স্টাইল থাকবে, যেমন বাটন, টেবিল, ফর্ম, কার্ড ইত্যাদি। উদাহরণস্বরূপ:
- _buttons.scss: বাটন স্টাইল।
- _cards.scss: কার্ড স্টাইল।
- এখানে ছোট ছোট UI কম্পোনেন্টগুলির স্টাইল থাকবে, যেমন বাটন, টেবিল, ফর্ম, কার্ড ইত্যাদি। উদাহরণস্বরূপ:
/layout:- লেআউট সম্পর্কিত ফাইল। এই ফোল্ডারে সাধারণত গ্রিড সিস্টেম, সাইডবার, হেডার, ফুটার স্টাইল থাকে। উদাহরণস্বরূপ:
- _grid.scss: গ্রিড সিস্টেম।
- _header.scss: হেডার স্টাইল।
- _footer.scss: ফুটার স্টাইল।
- লেআউট সম্পর্কিত ফাইল। এই ফোল্ডারে সাধারণত গ্রিড সিস্টেম, সাইডবার, হেডার, ফুটার স্টাইল থাকে। উদাহরণস্বরূপ:
/pages:- পেজের নির্দিষ্ট স্টাইল। উদাহরণস্বরূপ:
- _home.scss: হোম পেজের জন্য স্টাইল।
- _about.scss: অ্যাবাউট পেজের জন্য স্টাইল।
- পেজের নির্দিষ্ট স্টাইল। উদাহরণস্বরূপ:
/themes:- এখানে সাইটের টপিক বা থিম সম্পর্কিত স্টাইল থাকতে পারে, যেমন ডার্ক/লাইট থিম।
- _theme.scss: থিমের জন্য স্টাইল।
main.scss:- এটি হলো মূল SCSS ফাইল যা সমস্ত অন্যান্য ফাইলগুলোকে @import বা @use করে। এখানে আপনার সমস্ত শীর্ষ স্তরের স্টাইল থাকবে এবং শেষ পর্যন্ত কম্পাইল হবে।
উদাহরণ: সাধারণ SCSS ফাইল
// _variables.scss
$primary-color: #3498db;
$font-stack: 'Helvetica', sans-serif;
// _buttons.scss
.button {
background-color: $primary-color;
font-family: $font-stack;
padding: 10px 20px;
border-radius: 5px;
}
// main.scss
@import 'abstracts/variables';
@import 'components/buttons';
এখানে, main.scss ফাইল সব SCSS ফাইলগুলোকে @import করে একত্রিত করছে। যখন এটি কম্পাইল হবে, তখন button এর জন্য CSS প্রস্তুত হবে।
সারাংশ
একটি ভাল Sass প্রজেক্ট ফোল্ডার স্ট্রাকচার তৈরি করার মাধ্যমে আপনার কোড আরও পরিষ্কার, রক্ষণাবেক্ষণযোগ্য এবং স্কেলেবল হয়ে ওঠে। "7-1 স্ট্রাকচার" একটি জনপ্রিয় এবং কার্যকরী পদ্ধতি যা Sass কোডিংয়ে ব্যবহৃত হয়। এই স্ট্রাকচারে প্রতিটি ফোল্ডার নির্দিষ্ট ভূমিকা পালন করে এবং ডেভেলপারদের জন্য কোড পরিচালনা আরও সহজ করে তোলে।
Read more