থিমিং বুটস্ট্র্যাপ
সহজ থিমিং এবং উপাদান পরিবর্তনের জন্য বিশ্বব্যাপী শৈলী পছন্দের জন্য আমাদের নতুন অন্তর্নির্মিত Sass ভেরিয়েবলের সাথে বুটস্ট্র্যাপ 4 কাস্টমাইজ করুন।
বুটস্ট্র্যাপ 3-এ, থিমিং মূলত কম, কাস্টম CSS, এবং একটি পৃথক থিম স্টাইলশীটে পরিবর্তনশীল ওভাররাইড দ্বারা চালিত হয়েছিল যা আমরা আমাদের dist
ফাইলগুলিতে অন্তর্ভুক্ত করেছি। কিছু প্রচেষ্টার সাথে, কেউ মূল ফাইলগুলি স্পর্শ না করেই বুটস্ট্র্যাপ 3 এর চেহারা সম্পূর্ণরূপে পুনরায় ডিজাইন করতে পারে। বুটস্ট্র্যাপ 4 একটি পরিচিত, কিন্তু সামান্য ভিন্ন পদ্ধতি প্রদান করে।
এখন, থিমিং Sass ভেরিয়েবল, Sass মানচিত্র এবং কাস্টম CSS দ্বারা সম্পন্ন হয়। আর কোন ডেডিকেটেড থিম স্টাইলশীট নেই; পরিবর্তে, আপনি গ্রেডিয়েন্ট, ছায়া এবং আরও অনেক কিছু যোগ করতে অন্তর্নির্মিত থিম সক্ষম করতে পারেন।
ভেরিয়েবল, ম্যাপ, মিক্সিন এবং আরও অনেক কিছুর সুবিধা নিতে আমাদের সোর্স Sass ফাইলগুলি ব্যবহার করুন।
যখনই সম্ভব, বুটস্ট্র্যাপের মূল ফাইলগুলি পরিবর্তন করা এড়িয়ে চলুন। Sass এর জন্য, এর অর্থ হল আপনার নিজস্ব স্টাইলশীট তৈরি করা যা বুটস্ট্র্যাপ আমদানি করে যাতে আপনি এটিকে সংশোধন এবং প্রসারিত করতে পারেন। ধরে নিচ্ছি যে আপনি npm এর মতো একটি প্যাকেজ ম্যানেজার ব্যবহার করছেন, আপনার কাছে একটি ফাইল কাঠামো থাকবে যা দেখতে এইরকম:
আপনি যদি আমাদের সোর্স ফাইলগুলি ডাউনলোড করে থাকেন এবং প্যাকেজ ম্যানেজার ব্যবহার না করেন, তাহলে বুটস্ট্র্যাপের সোর্স ফাইলগুলিকে নিজের থেকে আলাদা রেখে আপনি সেই কাঠামোর মতো কিছু ম্যানুয়ালি সেটআপ করতে চাইবেন৷
আপনার custom.scss
, আপনি বুটস্ট্র্যাপের উৎস Sass ফাইল আমদানি করবেন। আপনার কাছে দুটি বিকল্প রয়েছে: সমস্ত বুটস্ট্র্যাপ অন্তর্ভুক্ত করুন বা আপনার প্রয়োজনীয় অংশগুলি বেছে নিন। আমরা পরেরটিকে উত্সাহিত করি, যদিও আমাদের উপাদান জুড়ে কিছু প্রয়োজনীয়তা এবং নির্ভরতা রয়েছে তা সচেতন থাকুন। আমাদের প্লাগইনগুলির জন্য আপনাকে কিছু জাভাস্ক্রিপ্টও অন্তর্ভুক্ত করতে হবে।
সেই সেটআপের সাথে, আপনি আপনার Sass ভেরিয়েবল এবং মানচিত্রগুলির যেকোন পরিবর্তন করতে শুরু করতে পারেন custom.scss
। // Optional
আপনি প্রয়োজন অনুযায়ী বিভাগের অধীনে বুটস্ট্র্যাপের অংশ যোগ করা শুরু করতে পারেন । bootstrap.scss
আমরা আপনাকে সূচনা পয়েন্ট হিসাবে আমাদের ফাইল থেকে সম্পূর্ণ আমদানি স্ট্যাক ব্যবহার করার পরামর্শ দিই ।
বুটস্ট্র্যাপ 4-এর প্রতিটি Sass ভেরিয়েবলের মধ্যে !default
পতাকা রয়েছে যা আপনাকে বুটস্ট্র্যাপের সোর্স কোড পরিবর্তন না করে আপনার নিজস্ব Sass-এ ভেরিয়েবলের ডিফল্ট মান ওভাররাইড করতে দেয়। প্রয়োজন অনুযায়ী ভেরিয়েবল কপি এবং পেস্ট করুন, তাদের মান পরিবর্তন করুন এবং !default
পতাকাটি সরিয়ে দিন। যদি একটি ভেরিয়েবল ইতিমধ্যেই বরাদ্দ করা হয়ে থাকে, তাহলে বুটস্ট্র্যাপের ডিফল্ট মান দ্বারা এটি পুনরায় বরাদ্দ করা হবে না।
আপনি বুটস্ট্র্যাপের ভেরিয়েবলের সম্পূর্ণ তালিকা পাবেন scss/_variables.scss
।
একই Sass ফাইলের মধ্যে পরিবর্তনশীল ওভাররাইডগুলি ডিফল্ট ভেরিয়েবলের আগে বা পরে আসতে পারে। যাইহোক, Sass ফাইল জুড়ে ওভাররাইড করার সময়, বুটস্ট্র্যাপের Sass ফাইল ইম্পোর্ট করার আগে আপনার ওভাররাইডগুলি অবশ্যই আসবে।
এখানে একটি উদাহরণ রয়েছে যা npm এর মাধ্যমে বুটস্ট্র্যাপ আমদানি এবং কম্পাইল করার সময় background-color
এবং color
এর জন্য পরিবর্তন করে:<body>
বুটস্ট্র্যাপের যেকোনো ভেরিয়েবলের জন্য প্রয়োজন অনুযায়ী পুনরাবৃত্তি করুন, নীচের বিশ্বব্যাপী বিকল্পগুলি সহ।
বুটস্ট্র্যাপ 4-এ রয়েছে মুষ্টিমেয় Sass ম্যাপ, মূল মান জোড়া যা সম্পর্কিত CSS-এর পরিবার তৈরি করা সহজ করে। আমরা আমাদের রঙ, গ্রিড ব্রেকপয়েন্ট এবং আরও অনেক কিছুর জন্য Sass মানচিত্র ব্যবহার করি। Sass ভেরিয়েবলের মতই, সমস্ত Sass মানচিত্রে !default
পতাকা অন্তর্ভুক্ত এবং ওভাররাইড এবং প্রসারিত করা যেতে পারে।
আমাদের কিছু Sass মানচিত্র ডিফল্টরূপে খালিতে একত্রিত হয়। এটি একটি প্রদত্ত Sass মানচিত্রের সহজ প্রসারণের অনুমতি দেওয়ার জন্য করা হয়, তবে একটি মানচিত্র থেকে আইটেমগুলিকে কিছুটা কঠিন করে তোলার খরচে আসে ।
আমাদের মানচিত্রে একটি বিদ্যমান রঙ পরিবর্তন করতে $theme-colors
, আপনার কাস্টম Sass ফাইলে নিম্নলিখিত যোগ করুন:
একটি নতুন রঙ $theme-colors
যোগ করতে, নতুন কী এবং মান যোগ করুন:
বা অন্য কোনো মানচিত্র থেকে রং অপসারণ করতে $theme-colors
, ব্যবহার করুন map-remove
। আমাদের প্রয়োজনীয়তা এবং বিকল্পগুলির মধ্যে আপনাকে অবশ্যই এটি সন্নিবেশ করতে হবে সচেতন থাকুন:
বুটস্ট্র্যাপ Sass মানচিত্রের মধ্যে কিছু নির্দিষ্ট কীগুলির উপস্থিতি অনুমান করে যেভাবে আমরা এইগুলি ব্যবহার করি এবং প্রসারিত করি। আপনি অন্তর্ভুক্ত মানচিত্র কাস্টমাইজ করার সাথে সাথে, আপনি ত্রুটির সম্মুখীন হতে পারেন যেখানে একটি নির্দিষ্ট Sass মানচিত্রের কী ব্যবহার করা হচ্ছে।
উদাহরণস্বরূপ, আমরা লিঙ্ক, বোতাম এবং ফর্ম স্টেটের জন্য primary
, success
, এবং danger
কী ব্যবহার করি। $theme-colors
এই কীগুলির মান প্রতিস্থাপন করলে কোনো সমস্যা হবে না, তবে সেগুলি সরানোর ফলে Sass সংকলন সমস্যা হতে পারে। এই ক্ষেত্রে, আপনাকে Sass কোড পরিবর্তন করতে হবে যা সেই মানগুলি ব্যবহার করে।
বুটস্ট্র্যাপ বেশ কয়েকটি Sass ফাংশন ব্যবহার করে, কিন্তু শুধুমাত্র একটি উপসেট সাধারণ থিমিংয়ের জন্য প্রযোজ্য। আমরা রঙ মানচিত্র থেকে মান পাওয়ার জন্য তিনটি ফাংশন অন্তর্ভুক্ত করেছি:
এগুলি আপনাকে একটি Sass মানচিত্র থেকে একটি রঙ বাছাই করতে দেয় যেমন আপনি v3 থেকে একটি রঙ পরিবর্তনশীল ব্যবহার করবেন।
মানচিত্র থেকে একটি নির্দিষ্ট স্তরের রঙ পাওয়ার জন্য আমাদের আরও একটি ফাংশন রয়েছে। $theme-colors
নেতিবাচক স্তরের মানগুলি রঙকে হালকা করবে, যখন উচ্চ স্তরগুলি অন্ধকার করবে।
অনুশীলনে, আপনি ফাংশনটিকে কল করবেন এবং দুটি প্যারামিটারে পাস করবেন: রঙের নাম $theme-colors
(যেমন, প্রাথমিক বা বিপদ) এবং একটি সংখ্যাসূচক স্তর।
অতিরিক্ত ফাংশন ভবিষ্যতে যোগ করা যেতে পারে বা আপনার নিজস্ব কাস্টম Sass অতিরিক্ত Sass মানচিত্রের জন্য স্তরের ফাংশন তৈরি করতে, অথবা এমনকি একটি সাধারণ একটি যদি আপনি আরও ভার্বস হতে চান।
আমরা বুটস্ট্র্যাপে অন্তর্ভুক্ত একটি অতিরিক্ত ফাংশন হল কালার কনট্রাস্ট ফাংশন color-yiq
,। এটি নির্দিষ্ট বেস রঙের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে একটি হালকা ( ) বা গাঢ় ( ) বৈসাদৃশ্য রঙ ফেরাতে YIQ রঙের স্থান ব্যবহার করে । এই ফাংশনটি মিক্সিন বা লুপগুলির জন্য বিশেষভাবে উপযোগী যেখানে আপনি একাধিক ক্লাস তৈরি করছেন।#fff
#111
উদাহরণস্বরূপ, আমাদের $theme-colors
মানচিত্র থেকে রঙের সোয়াচ তৈরি করতে:
এটি এক-অফ কনট্রাস্ট প্রয়োজনের জন্যও ব্যবহার করা যেতে পারে:
আপনি আমাদের রঙ মানচিত্র ফাংশনগুলির সাথে একটি বেস রঙ নির্দিষ্ট করতে পারেন:
আমাদের অন্তর্নির্মিত কাস্টম ভেরিয়েবল ফাইলের সাথে বুটস্ট্র্যাপ 4 কাস্টমাইজ করুন এবং নতুন $enable-*
Sass ভেরিয়েবলের সাথে বিশ্বব্যাপী CSS পছন্দগুলি সহজেই টগল করুন। একটি ভেরিয়েবলের মান ওভাররাইড করুন এবং npm run test
প্রয়োজন অনুসারে পুনরায় কম্পাইল করুন।
আপনি বুটস্ট্র্যাপের scss/_variables.scss
ফাইলে মূল বৈশ্বিক বিকল্পগুলির জন্য এই ভেরিয়েবলগুলি খুঁজে পেতে এবং কাস্টমাইজ করতে পারেন।
পরিবর্তনশীল | মূল্যবোধ | বর্ণনা |
---|---|---|
$spacer |
1rem (ডিফল্ট), বা যেকোনো মান > 0 |
প্রোগ্রাম্যাটিকভাবে আমাদের স্পেসার ইউটিলিটি তৈরি করতে ডিফল্ট স্পেসার মান নির্দিষ্ট করে । |
$enable-rounded |
true (ডিফল্ট) বাfalse |
border-radius বিভিন্ন উপাদানে পূর্বনির্ধারিত শৈলী সক্ষম করে। |
$enable-shadows |
true বা false (ডিফল্ট) |
box-shadow বিভিন্ন উপাদানে পূর্বনির্ধারিত শৈলী সক্ষম করে। |
$enable-gradients |
true বা false (ডিফল্ট) |
background-image বিভিন্ন উপাদানে শৈলীর মাধ্যমে পূর্বনির্ধারিত গ্রেডিয়েন্ট সক্ষম করে। |
$enable-transitions |
true (ডিফল্ট) বাfalse |
transition বিভিন্ন উপাদানে পূর্বনির্ধারিত s সক্ষম করে। |
$enable-hover-media-query |
true বা false (ডিফল্ট) |
অবচয় |
$enable-grid-classes |
true (ডিফল্ট) বাfalse |
.container গ্রিড সিস্টেমের (যেমন, , .row , .col-md-1 , ইত্যাদি) জন্য CSS ক্লাস তৈরি করতে সক্ষম করে । |
$enable-caret |
true (ডিফল্ট) বাfalse |
সিউডো এলিমেন্ট ক্যারেট চালু করে .dropdown-toggle । |
$enable-print-styles |
true (ডিফল্ট) বাfalse |
মুদ্রণ অপ্টিমাইজ করার জন্য শৈলী সক্ষম করে। |
বুটস্ট্র্যাপের অনেকগুলি বিভিন্ন উপাদান এবং ইউটিলিটি একটি Sass মানচিত্রে সংজ্ঞায়িত রঙের একটি সিরিজের মাধ্যমে তৈরি করা হয়। এই মানচিত্রটি Sass-এ লুপ করা যেতে পারে দ্রুত নিয়মের একটি সিরিজ তৈরি করতে।
বুটস্ট্র্যাপ 4-এ উপলব্ধ সমস্ত রঙ Sass ভেরিয়েবল এবং scss/_variables.scss
ফাইলে একটি Sass মানচিত্র হিসাবে উপলব্ধ। এটি অতিরিক্ত শেড যোগ করার জন্য পরবর্তী ছোট রিলিজে সম্প্রসারিত করা হবে, অনেকটা গ্রেস্কেল প্যালেটের মতো যা আমরা ইতিমধ্যেই অন্তর্ভুক্ত করেছি।
এখানে আপনি কিভাবে আপনার Sass এ ব্যবহার করতে পারেন:
কালার ইউটিলিটি ক্লাসcolor
সেটিং এবং এর জন্যও উপলব্ধ background-color
।
ভবিষ্যতে, আমরা নিচের গ্রেস্কেল রঙের মতো করে প্রতিটি রঙের শেডের জন্য Sass মানচিত্র এবং ভেরিয়েবল প্রদান করার লক্ষ্য রাখব।
scss/_variables.scss
আমরা রঙের স্কিম তৈরি করার জন্য একটি ছোট রঙের প্যালেট তৈরি করতে সমস্ত রঙের একটি উপসেট ব্যবহার করি, এটি Sass ভেরিয়েবল এবং বুটস্ট্র্যাপের ফাইলে একটি Sass মানচিত্র হিসাবেও উপলব্ধ ।
ধূসর ভেরিয়েবলের একটি বিস্তৃত সেট এবং scss/_variables.scss
আপনার প্রকল্প জুড়ে ধূসর রঙের ধারাবাহিক শেডগুলির জন্য একটি Sass মানচিত্র।
এর মধ্যে scss/_variables.scss
, আপনি বুটস্ট্র্যাপের রঙের ভেরিয়েবল এবং Sass মানচিত্র খুঁজে পাবেন। এখানে $colors
Sass মানচিত্রের একটি উদাহরণ:
অন্য অনেক উপাদানে কীভাবে ব্যবহার করা হয় তা আপডেট করতে মানচিত্রের মধ্যে মানগুলি যোগ করুন, সরান বা সংশোধন করুন। দুর্ভাগ্যবশত এই সময়ে, প্রতিটি উপাদান এই Sass মানচিত্রটি ব্যবহার করে না। ভবিষ্যতের আপডেটগুলি এটির উন্নতি করার চেষ্টা করবে। ততক্ষণ পর্যন্ত, ${color}
ভেরিয়েবল এবং এই Sass মানচিত্র ব্যবহার করার পরিকল্পনা করুন।
বুটস্ট্র্যাপের অনেক উপাদান এবং ইউটিলিটি @each
লুপ দিয়ে তৈরি করা হয় যা একটি Sass মানচিত্রের উপর পুনরাবৃত্তি করে। $theme-colors
এটি আমাদের দ্বারা একটি কম্পোনেন্টের ভেরিয়েন্ট তৈরি করতে এবং প্রতিটি ব্রেকপয়েন্টের জন্য প্রতিক্রিয়াশীল ভেরিয়েন্ট তৈরি করার জন্য বিশেষভাবে সহায়ক । আপনি যখন এই Sass মানচিত্রগুলি কাস্টমাইজ করবেন এবং পুনরায় কম্পাইল করবেন, আপনি স্বয়ংক্রিয়ভাবে এই লুপগুলিতে আপনার পরিবর্তনগুলি প্রতিফলিত দেখতে পাবেন।
বুটস্ট্র্যাপের অনেক উপাদান একটি বেস-মোডিফায়ার ক্লাস পদ্ধতির সাথে নির্মিত। এর মানে হল স্টাইলিংয়ের বেশিরভাগ অংশ একটি বেস ক্লাসে (যেমন, .btn
) রয়েছে যখন শৈলীর বৈচিত্রগুলি সংশোধক শ্রেণিতে সীমাবদ্ধ (যেমন, .btn-danger
)। $theme-colors
আমাদের সংশোধক ক্লাসের সংখ্যা এবং নাম কাস্টমাইজ করার জন্য এই মডিফায়ার ক্লাসগুলি মানচিত্র থেকে তৈরি করা হয়েছে ৷
উপাদান এবং আমাদের সমস্ত ব্যাকগ্রাউন্ড ইউটিলিটিগুলিতে $theme-colors
সংশোধক তৈরি করতে আমরা কীভাবে মানচিত্রের উপর লুপ করি তার দুটি উদাহরণ এখানে রয়েছে ।.alert
.bg-*
এই Sass লুপগুলি রঙের মানচিত্রে সীমাবদ্ধ নয়। আপনি আপনার উপাদান বা ইউটিলিটিগুলির প্রতিক্রিয়াশীল বৈচিত্রও তৈরি করতে পারেন। উদাহরণস্বরূপ আমাদের প্রতিক্রিয়াশীল পাঠ্য সারিবদ্ধকরণ ইউটিলিটিগুলি নিন যেখানে আমরা একটি মিডিয়া ক্যোয়ারী অন্তর্ভুক্ত সহ Sass মানচিত্রের @each
জন্য একটি লুপ মিশ্রিত করি।$grid-breakpoints
আপনি যদি আপনার পরিবর্তন করতে $grid-breakpoints
চান, আপনার পরিবর্তনগুলি সেই মানচিত্রের উপর পুনরাবৃত্তি করা সমস্ত লুপের ক্ষেত্রে প্রযোজ্য হবে।
বুটস্ট্র্যাপ 4 এর সংকলিত CSS-এ প্রায় দুই ডজন CSS কাস্টম বৈশিষ্ট্য (ভেরিয়েবল) অন্তর্ভুক্ত করে। আপনার ব্রাউজারের ইন্সপেক্টর, একটি কোড স্যান্ডবক্স, বা সাধারণ প্রোটোটাইপিং-এ কাজ করার সময় এগুলি আমাদের থিমের রঙ, ব্রেকপয়েন্ট এবং প্রাথমিক ফন্ট স্ট্যাকগুলির মতো সাধারণভাবে ব্যবহৃত মানগুলিতে সহজ অ্যাক্সেস সরবরাহ করে।
এখানে আমরা যে ভেরিয়েবলগুলি অন্তর্ভুক্ত করি (মনে রাখবেন যে এটি :root
প্রয়োজনীয়)। তারা আমাদের _root.scss
ফাইলে অবস্থিত.
CSS ভেরিয়েবলগুলি Sass এর ভেরিয়েবলের অনুরূপ নমনীয়তা প্রদান করে, কিন্তু ব্রাউজারে পরিবেশন করার আগে সংকলনের প্রয়োজন ছাড়াই। উদাহরণস্বরূপ, এখানে আমরা CSS ভেরিয়েবলের সাথে আমাদের পৃষ্ঠার ফন্ট এবং লিঙ্ক শৈলী রিসেট করছি।
যদিও আমরা মূলত আমাদের CSS ভেরিয়েবলে ব্রেকপয়েন্ট অন্তর্ভুক্ত করেছিলাম (যেমন, --breakpoint-md
), এগুলি মিডিয়া কোয়েরিতে সমর্থিত নয় , তবে সেগুলি এখনও মিডিয়া কোয়েরির নিয়মের মধ্যে ব্যবহার করা যেতে পারে। এই ব্রেকপয়েন্ট ভেরিয়েবলগুলি জাভাস্ক্রিপ্ট দ্বারা ব্যবহার করা যেতে পারে প্রদত্ত ব্যাকওয়ার্ড সামঞ্জস্যের জন্য কম্পাইল করা CSS-এ থাকে। স্পেক আরো জানুন.
এখানে যা সমর্থিত নয় তার একটি উদাহরণ:
এবং এখানে যা সমর্থিত তার একটি উদাহরণ: