थीम बनाई जा रही है

यहां तक कि ब्रैंडिंग भी रिस्पॉन्सिव हो सकती है. उपयोगकर्ता की पसंद के हिसाब से, अपनी वेबसाइट के प्रज़ेंटेशन में बदलाव किया जा सकता है. लेकिन सबसे पहले, ब्राउज़र को शामिल करने के लिए अपनी वेबसाइट की ब्रैंडिंग को बढ़ाने का तरीका यहां बताया गया है.

ब्राउज़र इंटरफ़ेस को पसंद के मुताबिक बनाएं

कुछ ब्राउज़र आपको अपनी वेबसाइट के पैलेट के आधार पर, थीम के रंग का सुझाव देने की सुविधा देते हैं. ब्राउज़र का इंटरफ़ेस, आपके सुझाए गए रंग के हिसाब से काम करता है. अपने head पेजों में theme-color नाम के meta एलिमेंट में रंग जोड़ें.

<meta name="theme-color" content="#00D494">
पारदर्शी बिंदु com. Resilient Web Design डॉट कॉम. सेशन डॉट संगठन
Safari ब्राउज़र में तीन वेबसाइटें देखी जा रही हैं. हर थीम की अपनी थीम होती है, जो ब्राउज़र के इंटरफ़ेस पर भी लागू होती है.

JavaScript का इस्तेमाल करके, 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 फ़ेविकॉन में prefers-color-scheme के बारे में लिखा.

कस्टम प्रॉपर्टी के साथ थीम बनाना

अगर आप अपनी पूरी सीएसएस में कई जगहों पर एक ही रंग की वैल्यू का इस्तेमाल करते हैं, तो किसी 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;
  }
}

रंग की वैल्यू को सेव करने के लिए, सीएसएस की कस्टम प्रॉपर्टी का इस्तेमाल करें. कस्टम प्रॉपर्टी, किसी प्रोग्रामिंग भाषा में वैरिएबल की तरह काम करती हैं. किसी वैरिएबल का नाम अपडेट किए बिना, उसकी वैल्यू को अपडेट किया जा सकता है.

अगर 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);
}

कस्टम प्रॉपर्टी के साथ थीम सेट करने के ज़्यादा बेहतर उदाहरणों के लिए, कलर स्कीम बनाना देखें.

इमेज

अगर आपके एचटीएमएल में SVG का इस्तेमाल हो रहा है, तो वहां भी कस्टम प्रॉपर्टी लागू की जा सकती हैं.

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

अब आपके आइकॉन, पेज पर मौजूद अन्य एलिमेंट के साथ-साथ अपना रंग बदल देंगे.

अगर आपको गहरे रंग वाले मोड में अपनी फ़ोटो की इमेज की चमक कम करनी है, तो सीएसएस में फ़िल्टर का इस्तेमाल किया जा सकता है.

@media (prefers-color-scheme: dark) {
  img {
    filter: brightness(.8) contrast(1.2);
  }
}
सामान्य चमक के साथ तीन फ़ोटो. थोड़ी कम चमक वाली तीन फ़ोटोग्राफ़.
इफ़ेक्ट थोड़ा-बहुत हल्का होता है, लेकिन गहरे रंग वाले मोड में इमेज की चमक कम की जा सकती है.

कुछ इमेज के लिए, हो सकता है कि आप उन्हें गहरे रंग वाले मोड में पूरी तरह बदलना चाहें. उदाहरण के लिए, हो सकता है कि आप गहरे कलर स्कीम वाला मैप दिखाना चाहें. ऐसे <picture> एलिमेंट का इस्तेमाल करें जिसमें prefers-color-scheme मीडिया क्वेरी के साथ <source> एलिमेंट हो.

<picture>
  <source srcset="darkimage.png" media="(prefers-color-scheme: dark)">
  <img src="lightimage.png" alt="A description of the image.">
</picture>
ब्रूलिन के दो मैप, एक में हल्के रंगों और दूसरे में गहरे रंगों का इस्तेमाल किया गया है.
एक ही मैप के दो वर्शन हैं, एक हल्के रंग वाले मोड के लिए और दूसरा गहरे रंग वाले मोड के लिए.

फ़ॉर्म

ब्राउज़र, फ़ॉर्म फ़ील्ड के लिए डिफ़ॉल्ट रंग पटल उपलब्ध कराते हैं. ब्राउज़र को बताएं कि आपकी साइट, गहरे रंग और हल्के रंग वाले मोड, दोनों का इस्तेमाल करती है. इस तरह, ब्राउज़र फ़ॉर्म के लिए सही डिफ़ॉल्ट स्टाइल दे सकता है.

इसे अपनी सीएसएस में जोड़ें:

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

आपके पास एचटीएमएल का भी इस्तेमाल करने का विकल्प होता है. इसे अपने head दस्तावेज़ों में जोड़ें:

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

चेकबॉक्स, रेडियो बटन, और फ़ॉर्म के कुछ दूसरे फ़ील्ड को स्टाइल करने के लिए, सीएसएस में 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);
}

गहरे रंग वाला मोड देना, अपनी साइट को उपयोगकर्ताओं की पसंद के मुताबिक बनाने का सिर्फ़ एक उदाहरण है. इसके बाद, आप जानेंगे कि अपनी साइट को हर तरह की सुलभता सुविधा के हिसाब से कैसे बनाया जा सकता है.

आपने जो सीखा है उसकी जांच करें

थीम पर अपने ज्ञान को परखें

थीम के ऐसे रंग उपलब्ध कराने के लिए जो वेबपेज के बाहर ब्राउज़र पर असर डालते हैं, इनका इस्तेमाल करें:

सीएसएस
सीएसएस थीम की जानकारी से लोगों को सामान्य रंगों का फ़्लैश दिख सकता है. इसकी वजह से लोगों का अनुभव खराब हो सकता है.
JavaScript
सिर्फ़ तब, जब 'थीम-रंग' वाले <meta> टैग को अपडेट करने के लिए, इसका इस्तेमाल किया गया हो.
वेब ऐप्लिकेशन मेनिफ़ेस्ट
manifest.json दिया जा सकता है. साथ ही, इसमें फ़ील्ड शामिल हो सकते हैं, ताकि थीम के रंग तय किए जा सकें. इनकी मदद से, मोबाइल की होमस्क्रीन से किसी ऐप्लिकेशन को खोलने पर मिलने वाला रंग बदल सकता है.
'थीम-रंग' <meta> टैग
ब्राउज़र को जितनी जल्दी हो सके <head> टैग में, थीम के इस रंग का पता चलता है. इससे रंगों की अनचाही फ़्लैश से बचा जा सकता है.

हल्के या गहरे रंग वाली थीम को इस्तेमाल करने वाले व्यक्ति की, सिस्टम की सेटिंग को जोड़ने के लिए, इनका इस्तेमाल करें:

(prefers-color-scheme) मीडिया क्वेरी
अगर आपको हल्के या गहरे रंग जैसी कोई चीज़ देखनी है, तो उसे और भी बेहतर बनाएं.
JavaScript
इसके बाद, प्राथमिकता की मौजूदा स्थिति के बारे में पूछने के लिए, सीएसएस मीडिया क्वेरी सिंटैक्स का इस्तेमाल किया जाता है.

इसलिए, गहरे रंग वाली थीम काम करती है, लेकिन सभी फ़ॉर्म इनपुट अब भी हल्के रंग की थीम वाले हैं. आपको क्या करना चाहिए?

अपनी सीएसएस में html { color-scheme: light dark; } जोड़ें.
सीएसएस से मिलने वाले यह सिग्नल बताते हैं कि फ़ॉर्म इनपुट, सिस्टम की कलर स्कीम से मेल खाने चाहिए.
अपने एचटीएमएल <head> टैग में <meta name="supported-color-schemes" content="light dark"> जोड़ें.
एचटीएमएल से यह सिग्नल मिलता है कि फ़ॉर्म इनपुट, सिस्टम की कलर स्कीम से मेल खाने चाहिए.
इनपुट के सभी डिफ़ॉल्ट को बदलने के लिए सीएसएस का एक समूह लिखें.
यह भी काम करता है, लेकिन थोड़ा मुश्किल है.