मराठी

वापरकर्त्यांच्या पसंतीनुसार स्वयंचलित लाईट आणि डार्क थीम तयार करण्यासाठी CSS मीडिया क्वेरी आणि कस्टम प्रॉपर्टीजची शक्ती जाणून घ्या, ज्यामुळे जागतिक प्रेक्षकांसाठी सुलभता आणि व्हिज्युअल अपील वाढते.

CSS लाईट-डार्क फंक्शन: जागतिक वेबसाठी स्वयंचलित थीम अ‍ॅडाप्टेशन

आजच्या जागतिक स्तरावर जोडलेल्या जगात, वेबसाइट्स विविध पार्श्वभूमी आणि पसंतींच्या वापरकर्त्यांसाठी सुलभ आणि दिसायला आकर्षक असणे आवश्यक आहे. हे साध्य करण्याचा एक प्रभावी मार्ग म्हणजे स्वयंचलित थीम अ‍ॅडाप्टेशन, विशेषतः लाईट आणि डार्क थीम देणे जे वापरकर्त्याच्या सिस्टम सेटिंग्जनुसार समायोजित होतात. हा ब्लॉग पोस्ट तुम्हाला CSS मीडिया क्वेरी आणि कस्टम प्रॉपर्टीज वापरून ही कार्यक्षमता कशी लागू करायची याचे मार्गदर्शन करेल, ज्यामुळे तुमच्या आंतरराष्ट्रीय प्रेक्षकांसाठी एक अखंड आणि आरामदायक ब्राउझिंग अनुभव सुनिश्चित होईल.

स्वयंचलित लाईट आणि डार्क थीम्स का लागू कराव्यात?

तुमच्या वेब प्रोजेक्टमध्ये स्वयंचलित थीम अ‍ॅडाप्टेशन समाविष्ट करण्याची अनेक आकर्षक कारणे आहेत:

CSS सह स्वयंचलित थीम अ‍ॅडाप्टेशन कसे लागू करावे

स्वयंचलित थीम अ‍ॅडाप्टेशनचा गाभा prefers-color-scheme मीडिया क्वेरीमध्ये आहे. ही CSS मीडिया क्वेरी तुम्हाला वापरकर्त्याची पसंतीची कलर स्कीम (लाईट किंवा डार्क) ओळखण्याची आणि त्यानुसार स्टाईल्स लागू करण्याची परवानगी देते.

पायरी १: कस्टम प्रॉपर्टीज (CSS व्हेरिएबल्स) परिभाषित करा

तुमच्या लाईट आणि डार्क थीमसाठी रंगांचे मूल्य संग्रहित करण्यासाठी कस्टम प्रॉपर्टीज (CSS व्हेरिएबल्स) परिभाषित करून सुरुवात करा. यामुळे फक्त व्हेरिएबलचे मूल्य अपडेट करून थीम बदलणे सोपे होते.


: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) मीडिया क्वेरी या व्हेरिएबल्सना डार्क थीमच्या मूल्यांनी ओव्हरराइड करते.

पायरी २: तुमच्या स्टाईल्सवर कस्टम प्रॉपर्टीज लागू करा

पुढे, तुमच्या वेबसाइटच्या घटकांचे स्वरूप नियंत्रित करण्यासाठी या कस्टम प्रॉपर्टीज तुमच्या CSS स्टाईल्सवर लागू करा.


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 प्रॉपर्टी देखील जोडली आहे.

पायरी ३: चाचणी आणि सुधारणा

तुमच्या अंमलबजावणीची वेगवेगळ्या ब्राउझर आणि ऑपरेटिंग सिस्टमवर सखोल चाचणी करा. Chrome, Firefox, Safari आणि Edge सारखे आधुनिक ब्राउझर prefers-color-scheme मीडिया क्वेरीला पूर्णपणे समर्थन देतात. तुम्ही तुमच्या ऑपरेटिंग सिस्टम सेटिंग्जमध्ये लाईट आणि डार्क मोडमध्ये बदल करून तुमच्या वेबसाइटवरील बदल पाहू शकता.

प्रगत तंत्र आणि विचार

मॅन्युअल थीम स्विच प्रदान करणे

स्वयंचलित थीम अ‍ॅडाप्टेशन ही एक उत्तम सुरुवात असली तरी, काही वापरकर्ते त्यांच्या सिस्टम सेटिंग्ज मॅन्युअली ओव्हरराइड करणे पसंत करू शकतात. तुम्ही जावास्क्रिप्ट आणि लोकल स्टोरेज वापरून मॅन्युअल थीम स्विच प्रदान करू शकता.

HTML:



JavaScript:


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

let currentTheme = localStorage.getItem('theme') || 'auto'; // डीफॉल्ट '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 {
  //'auto' वर सेट केल्यास, prefers-color-scheme ला ठरवू द्या
}


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

CSS: मागील CSS सोबत खालील 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;
}

हा कोड स्निपेट एक बटन जोडतो जो वापरकर्त्यांना लाईट, डार्क आणि स्वयंचलित थीममध्ये टॉगल करण्याची परवानगी देतो. निवडलेली थीम लोकल स्टोरेजमध्ये संग्रहित केली जाते जेणेकरून ती पेज लोड झाल्यावरही कायम राहील.

इमेजेस आणि SVGs हाताळणे

काही इमेजेस आणि SVGs लाईट आणि डार्क दोन्ही थीममध्ये चांगले दिसणार नाहीत. तुम्ही या मालमत्तांच्या (assets) वेगवेगळ्या आवृत्त्या सशर्त प्रदर्शित करण्यासाठी CSS मीडिया क्वेरी वापरू शकता.


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 क्लाससह) दर्शवतो.

आंतरराष्ट्रीय प्रेक्षकांसाठी कलर पॅलेट संबंधित विचार

तुमच्या लाईट आणि डार्क थीमसाठी कलर पॅलेट निवडताना, सांस्कृतिक संबंध आणि सुलभतेच्या विचारांबद्दल जागरूक रहा. येथे काही सामान्य मार्गदर्शक तत्त्वे आहेत:

कार्यप्रदर्शन संबंधित विचार

स्वयंचलित थीम अ‍ॅडाप्टेशन लागू करणे तुलनेने सोपे असले तरी, कार्यप्रदर्शनावरील संभाव्य परिणामाचा विचार करणे महत्त्वाचे आहे. अत्यंत गुंतागुंतीचे CSS सिलेक्टर किंवा अ‍ॅनिमेशन वापरणे टाळा जे रेंडरिंगची गती कमी करू शकतात. तसेच, व्हेरिएबल लुकअपचा ओव्हरहेड कमी करण्यासाठी तुमच्या कस्टम प्रॉपर्टीज कार्यक्षमतेने परिभाषित केल्या आहेत याची खात्री करा.

कार्यप्रदर्शन ऑप्टिमाइझ करण्यासाठी येथे काही सर्वोत्तम पद्धती आहेत:

अ‍ॅक्सेसिबिलिटीसाठी सर्वोत्तम पद्धती

तुमच्या लाईट आणि डार्क थीम WCAG (Web Content Accessibility Guidelines) सारख्या अ‍ॅक्सेसिबिलिटी मार्गदर्शक तत्त्वांचे पालन करतात याची खात्री करा. यामध्ये पुरेसा कलर कॉन्ट्रास्ट प्रदान करणे, सिमेंटिक HTML वापरणे आणि सर्व इंटरॅक्टिव्ह घटक कीबोर्डद्वारे अ‍ॅक्सेसिबल असल्याची खात्री करणे समाविष्ट आहे.

अनुसरण करण्यासाठी येथे काही विशिष्ट अ‍ॅक्सेसिबिलिटी सर्वोत्तम पद्धती आहेत:

विविध प्रदेशांमधील उदाहरणे

लाईट आणि डार्क थीम विविध जागतिक प्रेक्षकांसाठी कशा तयार केल्या जाऊ शकतात याची ही उदाहरणे विचारात घ्या:

निष्कर्ष

जागतिक प्रेक्षकांसाठी अधिक सुलभ आणि वापरकर्ता-अनुकूल वेब अनुभव तयार करण्याच्या दिशेने स्वयंचलित लाईट आणि डार्क थीम लागू करणे हे एक महत्त्वाचे पाऊल आहे. CSS मीडिया क्वेरी आणि कस्टम प्रॉपर्टीजचा फायदा घेऊन, तुम्ही तुमच्या वेबसाइटचे स्वरूप वापरकर्त्यांच्या पसंतीनुसार सहजपणे जुळवून घेऊ शकता, डोळ्यांवरील ताण कमी करू शकता आणि दृष्य कमजोरी असलेल्या वापरकर्त्यांसाठी सुलभता सुधारू शकता. प्रत्येकासाठी एक अखंड आणि सर्वसमावेशक ब्राउझिंग अनुभव सुनिश्चित करण्यासाठी सांस्कृतिक संबंध, अ‍ॅक्सेसिबिलिटी मार्गदर्शक तत्त्वे आणि कार्यप्रदर्शन विचारात घेण्याचे लक्षात ठेवा.

ही तंत्रे अवलंबून, तुम्ही आधुनिक वेब डिझाइन तत्त्वांशी वचनबद्धता दर्शवता आणि तुमच्या आंतरराष्ट्रीय प्रेक्षकांच्या विविध गरजा पूर्ण करता, ज्यामुळे तुमची वेबसाइट सर्वांसाठी एक स्वागतार्ह आणि आरामदायक जागा बनते.