থিমিং

এমনকি ব্র্যান্ডিংও রেসপন্সিভ হতে পারে। আপনি ব্যবহারকারীর পছন্দ অনুযায়ী আপনার ওয়েবসাইটের উপস্থাপনা সাজিয়ে নিতে পারেন। কিন্তু তার আগে, জেনে নিন কীভাবে আপনার ওয়েবসাইটের ব্র্যান্ডিংকে ব্রাউজার পর্যন্ত প্রসারিত করবেন।

ব্রাউজার ইন্টারফেস কাস্টমাইজ করুন

কিছু ব্রাউজার আপনার ওয়েবসাইটের প্যালেটের উপর ভিত্তি করে একটি থিম কালার সাজেস্ট করার সুযোগ দেয়। ব্রাউজারের ইন্টারফেস আপনার সাজেস্ট করা কালার অনুযায়ী মানিয়ে নেয়। আপনার পেজের head theme-color নামের একটি meta এলিমেন্টে কালারটি যোগ করুন।

<meta name="theme-color" content="#00D494">
ক্লিয়ারলেফট ডট কম ওয়েবসাইট।Resilient Web Design ডট কম ওয়েবসাইট।সেশন ডট অর্গ ওয়েবসাইট।
সাফারি ব্রাউজারে তিনটি ওয়েবসাইট দেখা যাচ্ছে। প্রত্যেকটির নিজস্ব থিম কালার রয়েছে যা ব্রাউজার ইন্টারফেস পর্যন্ত বিস্তৃত।

আপনি জাভাস্ক্রিপ্ট ব্যবহার করে theme-color মান আপডেট করতে পারেন। কিন্তু এই ক্ষমতাটি বিচক্ষণতার সাথে ব্যবহার করুন। ব্যবহারকারীদের ব্রাউজারের কালার স্কিম খুব ঘন ঘন পরিবর্তিত হলে তা তাদের জন্য বিরক্তিকর হতে পারে। থিম কালার সামঞ্জস্য করার জন্য সূক্ষ্ম উপায়গুলো নিয়ে ভাবুন। পরিবর্তনগুলো যদি খুব বেশি চোখে লাগার মতো হয়, তবে ব্যবহারকারীরা বিরক্ত হয়ে ব্রাউজার ছেড়ে চলে যাবে।

আপনি একটি ওয়েব অ্যাপ ম্যানিফেস্ট ফাইলে থিমের রঙও নির্দিষ্ট করে দিতে পারেন। এটি আপনার ওয়েবসাইট সম্পর্কিত মেটাডেটা সম্বলিত একটি JSON ফাইল।

আপনার ডকুমেন্টের head থেকে ম্যানিফেস্ট ফাইলের সাথে লিঙ্ক করুন। manifest এর ` rel ভ্যালু সহ একটি link এলিমেন্ট ব্যবহার করুন।

<link rel="manifest" href="/manifest.json">

ম্যানিফেস্ট ফাইলে কী/ভ্যালু পেয়ার ব্যবহার করে আপনার মেটাডেটা তালিকাভুক্ত করুন।

{
  "short_name": "Clearleft",
  "name": "Clearleft design agency",
  "start_url": "/",
  "background_color": "#00D494",
  "theme_color": "#00D494",
  "display": "standalone"
}

যদি কোনো পরিদর্শক আপনার ওয়েবসাইটটি তাদের হোম স্ক্রিনে যুক্ত করার সিদ্ধান্ত নেন, তাহলে ব্রাউজারটি একটি উপযুক্ত শর্টকাট প্রদর্শনের জন্য আপনার ম্যানিফেস্ট ফাইলের তথ্য ব্যবহার করবে।

ডার্ক মোড প্রদান করুন

অনেক অপারেটিং সিস্টেম ব্যবহারকারীদের হালকা বা গাঢ় রঙের প্যালেট বেছে নেওয়ার সুযোগ দেয়, যা আপনার সাইটকে ব্যবহারকারীর থিমের পছন্দ অনুযায়ী অপ্টিমাইজ করার একটি ভালো উপায়। আপনি prefers-color-scheme নামক একটি মিডিয়া ফিচারের মাধ্যমে এই পছন্দটি অ্যাক্সেস করতে পারেন।

@media (prefers-color-scheme: dark) {
  // Styles for a dark theme.
}

meta এলিমেন্টের মধ্যে prefers-color-scheme মিডিয়া ফিচার ব্যবহার করে থিমের রং নির্দিষ্ট করুন।

<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">

আপনি SVG-এর ভিতরে prefers-color-scheme মিডিয়া ফিচারটিও ব্যবহার করতে পারেন। আপনি যদি আপনার ফ্যাভিকনের জন্য একটি SVG ফাইল ব্যবহার করেন, তবে এটিকে ডার্ক মোডের জন্য সামঞ্জস্য করা যেতে পারে। টমাস স্টেইনার ' SVG favicons for dark mode icons' বইতে prefers-color-scheme সম্পর্কে লিখেছেন।

কাস্টম বৈশিষ্ট্য সহ থিমিং

আপনার CSS-এর একাধিক জায়গায় যদি আপনি একই রঙের মান ব্যবহার করেন, তাহলে একটি prefers-color-scheme মিডিয়া কোয়েরির মধ্যে আপনার সমস্ত সিলেক্টরগুলির পুনরাবৃত্তি করা বেশ কষ্টসাধ্য হতে পারে।

body {
  background-color: white;
  color: black;
}
input {
  background-color: white;
  color: black;
  border-color: black;
}
button {
  background-color: black;
  color: white;
}
@media (prefers-color-scheme: dark) {
  body {
    background-color: black;
    color: white;
  }
  input {
    background-color: black;
    color: white;
    border-color: white;
  }
  button {
    background-color: white;
    color: black;
  }
}

আপনার রঙের মান সংরক্ষণ করতে CSS কাস্টম প্রোপার্টি ব্যবহার করুন। কাস্টম প্রোপার্টিগুলো প্রোগ্রামিং ভাষার ভেরিয়েবলের মতো কাজ করে। আপনি কোনো ভেরিয়েবলের নাম পরিবর্তন না করেই তার মান পরিবর্তন করতে পারেন।

যদি আপনি একটি prefers-color-scheme মিডিয়া কোয়েরির মধ্যে আপনার কাস্টম প্রপার্টিগুলোর মান আপডেট করেন, তাহলে আপনাকে আপনার সমস্ত সিলেক্টর দুবার লিখতে হবে না।

html {
  --page-color: white;
  --ink-color: black;
}
@media (prefers-color-scheme: dark) {
  html {
    --page-color: black;
    --ink-color: white;
  }
}
body {
  background-color: var(--page-color);
  color: var(--ink-color);
}
input {
  background-color: var(--page-color);
  color: var(--ink-color);
  border-color: var(--ink-color);
}
button {
  background-color: var(--ink-color);
  color: var(--page-color);
}

কাস্টম প্রোপার্টি ব্যবহার করে থিমিং-এর আরও উন্নত উদাহরণের জন্য কালার স্কিম তৈরি করা দেখুন।

ছবি

আপনি যদি আপনার HTML-এ SVG ব্যবহার করেন, তাহলে সেখানেও কাস্টম প্রোপার্টি প্রয়োগ করতে পারেন।

svg {
  stroke: var(--ink-color);
  fill: var(--page-color);
}

এখন আপনার পেজের অন্যান্য উপাদানের সাথে সাথে আপনার আইকনগুলোরও রঙ পরিবর্তন হবে।

ডার্ক মোডে প্রদর্শনের সময় আপনার তোলা ছবির উজ্জ্বলতা কমাতে চাইলে, আপনি CSS-এ একটি ফিল্টার প্রয়োগ করতে পারেন।

@media (prefers-color-scheme: dark) {
  img {
    filter: brightness(.8) contrast(1.2);
  }
}
স্বাভাবিক উজ্জ্বলতায় তোলা তিনটি ছবি।সামান্য কম উজ্জ্বলতার তিনটি ছবি।
এর প্রভাব সূক্ষ্ম, তবে আপনি ডার্ক মোডে ছবির উজ্জ্বলতা কমিয়ে আনতে পারেন।

কিছু ছবির ক্ষেত্রে, ডার্ক মোডে আপনি সেগুলোকে পুরোপুরি বদলে দিতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি একটি মানচিত্রকে আরও গাঢ় রঙের স্কিমে দেখাতে চাইতে পারেন। এর জন্য <picture> এলিমেন্টের ভেতরে <source> এলিমেন্ট এবং prefers-color-scheme মিডিয়া কোয়েরি ব্যবহার করুন।

<picture>
  <source srcset="darkimage.png" media="(prefers-color-scheme: dark)">
  <img src="lightimage.png" alt="A description of the image.">
</picture>
ব্রুকলিনের দুটি মানচিত্র, একটিতে হালকা রঙ এবং অন্যটিতে গাঢ় রঙ ব্যবহার করা হয়েছে।
একই ম্যাপের দুটি সংস্করণ, একটি লাইট মোডের জন্য এবং অন্যটি ডার্ক মোডের জন্য।

ফর্ম

ব্রাউজারগুলো ফর্ম ফিল্ডের জন্য একটি ডিফল্ট কালার প্যালেট প্রদান করে। ব্রাউজারকে জানিয়ে দিন যে আপনার সাইটে ডার্ক এবং লাইট উভয় মোডই রয়েছে। এর ফলে, ব্রাউজার ফর্মগুলোর জন্য উপযুক্ত ডিফল্ট স্টাইলিং প্রদান করতে পারবে।

আপনার CSS-এ এটি যোগ করুন:

html {
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  html {
    color-scheme: dark;
  }
}

আপনি HTML-ও ব্যবহার করতে পারেন। আপনার ডকুমেন্টের head এটি যোগ করুন:

<meta name="supported-color-schemes" content="light dark">

চেকবক্স, রেডিও বাটন এবং অন্যান্য কিছু ফর্ম ফিল্ড স্টাইল করতে CSS-এ accent-color প্রপার্টি ব্যবহার করুন।

html {
  accent-color: red;
}

ডার্ক থিমে ব্র্যান্ডের রঙগুলো অনুজ্জ্বল থাকাটা সাধারণ ব্যাপার। আপনি ডার্ক মোডের জন্য accent-color মান আপডেট করতে পারেন।

html {
  accent-color: red;
}
@media (prefers-color-scheme: dark) {
  html {
    accent-color: pink;
  }
}

এর জন্য একটি কাস্টম প্রপার্টি ব্যবহার করাই যুক্তিযুক্ত, যাতে আপনি আপনার সমস্ত রঙের ঘোষণা এক জায়গায় রাখতে পারেন।

html {
  color-scheme: light;
  --page-color: white;
  --ink-color: black;
  --highlight-color: red;
}
@media (prefers-color-scheme: dark) {
  html {
    color-scheme: dark;
    --page-color: black;
    --ink-color: white;
    --highlight-color: pink;
  }
}
html {
  accent-color: var(--highlight-color);
}
body {
  background-color: var(--page-color);
  color: var(--ink-color);
}

ব্যবহারকারীর পছন্দ অনুযায়ী আপনার সাইটকে মানিয়ে নেওয়ার একটি উদাহরণ হলো ডার্ক মোড প্রদান করা। এরপর আপনি শিখবেন কীভাবে আপনার সাইটকে সব ধরনের অ্যাক্সেসিবিলিটি সংক্রান্ত বিষয়গুলির সাথে খাপ খাইয়ে নেওয়া যায়।

আপনার বোধগম্যতা যাচাই করুন

থিমিং বিষয়ে আপনার জ্ঞান পরীক্ষা করুন

ওয়েবপেজের বাইরে ব্রাউজারে প্রভাব ফেলে এমন থিম কালার প্রদান করতে, ব্যবহার করুন:

সিএসএস
CSS থিমের তথ্যের কারণে সম্ভবত একটি সাধারণ রঙের ঝলকানি দেখা যাবে, যা ব্যবহারকারীর জন্য একটি অনাকাঙ্ক্ষিত অভিজ্ঞতা।
জাভাস্ক্রিপ্ট
শুধুমাত্র যদি আপনি এটি একটি 'theme-color' <meta> ট্যাগ আপডেট করতে ব্যবহার করেন।
একটি ওয়েব অ্যাপ ম্যানিফেস্ট
manifest.json ফাইলটি প্রদান করা যেতে পারে এবং এতে মোবাইল হোমস্ক্রিন থেকে অ্যাপটি খোলার সময় এর চেহারায় আভা বা টিন্টিং-এর জন্য থিম কালার নির্দিষ্ট করার ফিল্ড অন্তর্ভুক্ত থাকে।
একটি 'থিম-কালার' <meta> ট্যাগ
যত তাড়াতাড়ি সম্ভব একটি ব্রাউজার <head> ট্যাগে এই থিমের রঙটি লক্ষ্য করতে পারে, যার ফলে রঙের অনাকাঙ্ক্ষিত ঝলকানি এড়ানো যায়।

কোনো ব্যবহারকারীর লাইট বা ডার্ক থিম সংক্রান্ত সিস্টেম প্রেফারেন্সে প্রবেশ করতে, ব্যবহার করুন:

(prefers-color-scheme) মিডিয়া কোয়েরি
আপনি যে মানটি পরীক্ষা করতে চান, যেমন আলো বা অন্ধকার, তা পাস করলেই কাজ হয়ে যাবে।
জাভাস্ক্রিপ্ট
এরপর এটি প্রেফারেন্সটির বর্তমান অবস্থা জানতে CSS মিডিয়া কোয়েরি সিনট্যাক্স ব্যবহার করে।

আপনারা ডার্ক থিম সাপোর্ট করেন, কিন্তু ফর্মের সব ইনপুট এখনও লাইট থিমে রয়েছে। এ ব্যাপারে আপনারা কী করতে পারেন?

আপনার CSS-এ html { color-scheme: light dark; } যোগ করুন।
এটি CSS থেকে সংকেত দেয় যে ফর্মের ইনপুটগুলো সিস্টেমের কালার স্কিমের সাথে মিলতে হবে।
আপনার HTML <head> ট্যাগে <meta name="supported-color-schemes" content="light dark"> যোগ করুন।
এটি HTML থেকে সংকেত দেয় যে ফর্মের ইনপুটগুলো সিস্টেমের কালার স্কিমের সাথে মিলতে হবে।
ইনপুটের সমস্ত ডিফল্ট সেটিংস পরিবর্তন করার জন্য কিছু CSS কোড লিখুন।
এটাও কাজ করে, তবে একটু বেশি কঠিন।