বাংলা

সিএসএস মিডিয়া কোয়েরি এবং কাস্টম প্রপার্টিজ ব্যবহার করে স্বয়ংক্রিয় লাইট ও ডার্ক থিম তৈরি করুন, যা ব্যবহারকারীর পছন্দ অনুযায়ী মানিয়ে নেয় এবং বিশ্বব্যাপী দর্শকদের জন্য অ্যাক্সেসিবিলিটি বাড়ায়।

সিএসএস লাইট-ডার্ক ফাংশন: একটি বিশ্বব্যাপী ওয়েবের জন্য স্বয়ংক্রিয় থিম অভিযোজন

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

কেন স্বয়ংক্রিয় লাইট এবং ডার্ক থিম প্রয়োগ করবেন?

আপনার ওয়েব প্রজেক্টে স্বয়ংক্রিয় থিম অভিযোজন অন্তর্ভুক্ত করার বেশ কয়েকটি জোরালো কারণ রয়েছে:

সিএসএস দিয়ে কীভাবে স্বয়ংক্রিয় থিম অভিযোজন প্রয়োগ করবেন

স্বয়ংক্রিয় থিম অভিযোজনের মূল ভিত্তি হল prefers-color-scheme মিডিয়া কোয়েরি। এই সিএসএস মিডিয়া কোয়েরি আপনাকে ব্যবহারকারীর পছন্দের রঙের স্কিম (লাইট বা ডার্ক) সনাক্ত করতে এবং সেই অনুযায়ী স্টাইল প্রয়োগ করতে দেয়।

ধাপ ১: কাস্টম প্রপার্টিজ (সিএসএস ভেরিয়েবল) নির্ধারণ করুন

আপনার লাইট এবং ডার্ক থিমের জন্য রঙের মান সংরক্ষণ করতে কাস্টম প্রপার্টিজ (সিএসএস ভেরিয়েবল) নির্ধারণ করে শুরু করুন। এটি কেবল ভেরিয়েবলের মান আপডেট করে থিমগুলির মধ্যে পরিবর্তন করা সহজ করে তোলে।


:root {
  --background-color: #ffffff; /* লাইট থিমের পটভূমি */
  --text-color: #000000; /* লাইট থিমের টেক্সট */
  --link-color: #007bff; /* লাইট থিমের লিঙ্ক */
  --button-background-color: #f0f0f0;
  --button-text-color: #000;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background-color: #121212; /* ডার্ক থিমের পটভূমি */
    --text-color: #ffffff; /* ডার্ক থিমের টেক্সট */
    --link-color: #66b3ff; /* ডার্ক থিমের লিঙ্ক */
    --button-background-color: #333;
    --button-text-color: #fff;
  }
}

এই উদাহরণে, আমরা ব্যাকগ্রাউন্ডের রঙ, টেক্সটের রঙ, লিঙ্কের রঙ এবং বাটনের রঙের জন্য ভেরিয়েবল নির্ধারণ করেছি। :root সিলেক্টর এই ভেরিয়েবলগুলি সম্পূর্ণ ডকুমেন্টে প্রয়োগ করে। এরপর @media (prefers-color-scheme: dark) মিডিয়া কোয়েরি ব্যবহারকারীর সিস্টেম ডার্ক মোডে সেট করা থাকলে এই ভেরিয়েবলগুলিকে ডার্ক থিমের মান দিয়ে ওভাররাইড করে।

ধাপ ২: আপনার স্টাইলগুলিতে কাস্টম প্রপার্টিজ প্রয়োগ করুন

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


body {
  background-color: var(--background-color);
  color: var(--text-color);
  transition: background-color 0.3s, color 0.3s; /* মসৃণ পরিবর্তন */
}

a {
  color: var(--link-color);
}

button {
  background-color: var(--button-background-color);
  color: var(--button-text-color);
  border: none;
  padding: 10px 20px;
  cursor: pointer;
}

এখানে, আমরা আমাদের কাস্টম প্রপার্টিজের মান অ্যাক্সেস করতে var() ফাংশনটি ব্যবহার করছি। আমরা থিমগুলির মধ্যে একটি মসৃণ পরিবর্তন তৈরি করতে body এলিমেন্টে একটি transition প্রপার্টিও যোগ করেছি।

ধাপ ৩: পরীক্ষা এবং পরিমার্জন

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

উন্নত কৌশল এবং বিবেচ্য বিষয়

একটি ম্যানুয়াল থিম সুইচ প্রদান করা

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

এইচটিএমএল (HTML):


<button id="theme-toggle">Toggle Theme</button>

জাভাস্ক্রিপ্ট (JavaScript):


const themeToggle = document.getElementById('theme-toggle');
const body = document.body;

let currentTheme = localStorage.getItem('theme') || 'auto'; // ডিফল্ট 'অটো'

function setTheme(theme) {
  if (theme === 'dark') {
    body.classList.add('dark-theme');
    body.classList.remove('light-theme');
  } else if (theme === 'light') {
    body.classList.add('light-theme');
    body.classList.remove('dark-theme');
  } else {
    body.classList.remove('light-theme', 'dark-theme');
  }
  localStorage.setItem('theme', theme);
  currentTheme = theme;
}

// পৃষ্ঠা লোড হওয়ার সময় প্রাথমিক থিম প্রয়োগ করুন
if (currentTheme === 'dark') {
  setTheme('dark');
} else if (currentTheme === 'light') {
  setTheme('light');
} else {
  // যদি 'অটো' সেট করা থাকে, তাহলে prefers-color-scheme কে সিদ্ধান্ত নিতে দিন
}


themeToggle.addEventListener('click', () => {
    if (currentTheme === 'auto'){
        setTheme('light');
    } else if (currentTheme === 'light') {
        setTheme('dark');
    } else {
        setTheme('auto');
    }
});

সিএসএস (CSS): আগের সিএসএস-এর সাথে নিম্নলিখিত সিএসএস যোগ করুন। ম্যানুয়াল ওভাররাইডটি লক্ষ্য করুন:


body.light-theme {
  --background-color: #ffffff; /* লাইট থিমের পটভূমি */
  --text-color: #000000; /* লাইট থিমের টেক্সট */
  --link-color: #007bff; /* লাইট থিমের লিঙ্ক */
  --button-background-color: #f0f0f0;
  --button-text-color: #000;
}

body.dark-theme {
  --background-color: #121212; /* ডার্ক থিমের পটভূমি */
  --text-color: #ffffff; /* ডার্ক থিমের টেক্সট */
  --link-color: #66b3ff; /* ডার্ক থিমের লিঙ্ক */
  --button-background-color: #333;
  --button-text-color: #fff;
}

এই কোড স্নিপেটটি একটি বাটন যোগ করে যা ব্যবহারকারীদের লাইট, ডার্ক এবং স্বয়ংক্রিয় থিমগুলির মধ্যে পরিবর্তন করতে দেয়। নির্বাচিত থিমটি লোকাল স্টোরেজে সংরক্ষণ করা হয় যাতে এটি পৃষ্ঠা লোড করার পরেও অপরিবর্তিত থাকে।

ছবি এবং এসভিজি (SVG) পরিচালনা করা

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


img.light-mode {
  display: block;
}

img.dark-mode {
  display: none;
}

@media (prefers-color-scheme: dark) {
  img.light-mode {
    display: none;
  }

  img.dark-mode {
    display: block;
  }
}

এই কোড স্নিপেটটি লাইট মোডে একটি ছবি (light-mode ক্লাস সহ) এবং ডার্ক মোডে একটি ভিন্ন ছবি (dark-mode ক্লাস সহ) দেখায়।

আন্তর্জাতিক দর্শকদের জন্য রঙের প্যালেট বিবেচ্য বিষয়

আপনার লাইট এবং ডার্ক থিমের জন্য রঙের প্যালেট নির্বাচন করার সময়, সাংস্কৃতিক অনুষঙ্গ এবং অ্যাক্সেসিবিলিটি বিবেচ্য বিষয়গুলি মনে রাখবেন। এখানে কিছু সাধারণ নির্দেশিকা রয়েছে:

পারফরম্যান্স বিবেচ্য বিষয়

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

পারফরম্যান্স অপ্টিমাইজ করার জন্য এখানে কিছু সেরা অনুশীলন রয়েছে:

অ্যাক্সেসিবিলিটির সেরা অনুশীলন

নিশ্চিত করুন যে আপনার লাইট এবং ডার্ক থিমগুলি অ্যাক্সেসিবিলিটি নির্দেশিকা, যেমন WCAG (Web Content Accessibility Guidelines) পূরণ করে। এর মধ্যে পর্যাপ্ত রঙের কনট্রাস্ট প্রদান, সিমেন্টিক HTML ব্যবহার এবং সমস্ত ইন্টারেক্টিভ এলিমেন্ট কীবোর্ড দ্বারা অ্যাক্সেসযোগ্য তা নিশ্চিত করা অন্তর্ভুক্ত।

এখানে অনুসরণ করার জন্য কিছু নির্দিষ্ট অ্যাক্সেসিবিলিটি সেরা অনুশীলন রয়েছে:

বিভিন্ন অঞ্চল জুড়ে উদাহরণ

বিভিন্ন বিশ্বব্যাপী দর্শকদের জন্য লাইট এবং ডার্ক থিমগুলি কীভাবে তৈরি করা যেতে পারে তার এই উদাহরণগুলি বিবেচনা করুন:

উপসংহার

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

এই কৌশলগুলি গ্রহণ করে, আপনি আধুনিক ওয়েব ডিজাইন নীতির প্রতি আপনার প্রতিশ্রুতি প্রদর্শন করেন এবং আপনার আন্তর্জাতিক দর্শকদের বিভিন্ন চাহিদা পূরণ করেন, যা আপনার ওয়েবসাইটকে সকলের জন্য একটি স্বাগত এবং আরামদায়ক স্থান করে তোলে।