स्वचालित और मैनुअल डार्क मोड टॉगल
ऐसा थीम टॉगल बनाएँ जो डिफ़ॉल्ट रूप से प्रणाली की पसंद का सम्मान करे और उपयोगकर्ताओं को इसे मैनुअल रूप से बदलने दे।
स्वचालित और मैनुअल डार्क मोड टॉगल, CoddyKit पर CSS Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CSS Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CSS Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
लक्ष्य
आदर्श dark मोड कार्यान्वयन डिफ़ॉल्ट रूप से OS की पसंद का स्वतः पता लगाता है और एक toggle बटन देता है, जिससे उपयोगकर्ता इसे स्वतंत्र रूप से बदल सकें तथा उनकी पसंद पेज लोड होने के बाद भी सुरक्षित रहे।
आर्किटेक्चर का अवलोकन
संभालने के लिए तीन states हैं:
- सिस्टम की पसंद: CSS वेरिएबल्स के साथ
prefers-color-schemeका उपयोग करें - उपयोगकर्ता का ओवरराइड: dark:
<html>पर क्लास या डेटा एट्रिब्यूट सेट करें - उपयोगकर्ता का ओवरराइड: हल्का: स्वचालित dark को रोकने के लिए अलग क्लास सेट करें
CSS टोकन सेटअप
ऐसे CSS वेरिएबल्स परिभाषित करें जो सभी states के लिए सही ढंग से कैस्केड हों:
<div class="demo" data-theme="dark">Dark token demo</div>
<div class="demo" data-theme="light">Light token demo</div>
JavaScript toggle लॉजिक
सहेजी गई पसंद पढ़ें, उसे लागू करें और toggle होने पर अपडेट करें:
<div class="demo" id="theme-demo">Toggle my theme</div>
<div class="demo" data-theme="dark">Dark override example</div>
<button id="toggle-btn">Toggle Theme</button>
<script>
function toggleTheme() {
const current = document.getElementById('theme-demo').dataset.theme;
const system = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
if (!current) {
const next = system === 'dark' ? 'light' : 'dark';
document.getElementById('theme-demo').dataset.theme = next;
} else {
delete document.getElementById('theme-demo').dataset.theme;
}
}
document.getElementById('toggle-btn').addEventListener('click', toggleTheme);
</script>
तीन-स्थिति वाला toggle
अधिक परिष्कृत तीन-स्थिति वाला toggle: हल्का | system | dark:
<div class="demo" id="theme-demo">Cycles: light → system → dark</div>
<div class="demo" data-theme="dark">Dark state example</div>
<p id="state-label">system</p>
<button id="cycle-btn">Cycle Theme</button>
<script>
const states = ['light', 'system', 'dark'];
let current = 'system';
const demo = document.getElementById('theme-demo');
const label = document.getElementById('state-label');
document.getElementById('cycle-btn').addEventListener('click', () => {
current = states[(states.indexOf(current) + 1) % states.length];
label.textContent = current;
if (current === 'system') { delete demo.dataset.theme; } else { demo.dataset.theme = current; }
});
</script>
गलत थीम के फ़्लैश से बचाव
पेज रेंडर होने से पहले सहेजी गई थीम को समकालिक रूप से लागू करें:
<pre class="code-sample"><!-- In <head>, before any styles -->
<script>
const t = localStorage.getItem("theme");
if (t) document.documentElement.dataset.theme = t;
</script></pre>
toggle बटन की सुलभता
toggle बटन को स्क्रीन रीडर के लिए वर्तमान स्थिति स्पष्ट करनी चाहिए। toggle होने पर सुलभ label अपडेट करें:
<button id="theme-toggle" aria-label="Switch to dark mode">🌙</button>
एनिमेटेड थीम संक्रमण
थीम बदलने पर रंगों का सहज संक्रमण:
<div class="demo" id="at-demo">Smooth theme transition</div>
<button onclick="document.documentElement.classList.add('theme-transitioning'); const d=document.getElementById('at-demo'); const dark = d.style.background==='rgb(17, 17, 17)'; d.style.background = dark ? '#fff' : '#111'; d.style.color = dark ? '#111' : '#fff'; setTimeout(()=>document.documentElement.classList.remove('theme-transitioning'),250);">Toggle</button>
सिस्टम बदलाव सुनना
यदि पेज खुला हो और उपयोगकर्ता अपनी OS पसंद बदल दे, तो उस बदलाव पर भी प्रतिक्रिया दें:
<p id="status">Listening for system theme changes…</p>
<script>
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
document.getElementById('status').textContent = 'System changed to ' + (e.matches ? 'dark' : 'light');
});
</script>
dark मोड के आइकन
हर मोड के लिए आइकन बदलें। थीम-अनुकूल चित्रों के लिए picture तत्व का उपयोग करें, या अलग-अलग आइकन दिखाने/छिपाने के लिए CSS का उपयोग करें:
<div>Light: <span class="icon-sun">☀️</span><span class="icon-moon">🌙</span></div>
<div data-theme="dark">Dark: <span class="icon-sun">☀️</span><span class="icon-moon">🌙</span></div>
सारांश: कार्यान्वयन जाँच-सूची
dark मोड जाँच-सूची:
- सभी रंग टोकन के लिए CSS वेरिएबल्स
- स्वचालित पहचान के लिए prefers-color-scheme मीडिया क्वेरी
- मैन्युअल ओवरराइड के लिए डेटा-थीम एट्रिब्यूट
- स्थायित्व के लिए localStorage
- फ़्लैश रोकने के लिए head में इनलाइन स्क्रिप्ट
- गतिशील aria-label वाला सुलभ toggle बटन
त्वरित जाँच
पेज लोड होने पर “गलत थीम के फ़्लैश” को कौन-सी तकनीक रोकती है?
पुनरावलोकन
एक पूर्ण dark मोड toggle में थीम टोकन के लिए CSS वेरिएबल्स, स्वचालित पहचान के लिए prefers-color-scheme क्वेरी, मैन्युअल ओवरराइड के लिए data-theme एट्रिब्यूट, स्थायित्व के लिए localStorage और फ़्लैश रोकने के लिए हेड में समकालिक स्क्रिप्ट का उपयोग होता है। सर्वोत्तम उपयोगकर्ता अनुभव के लिए सुलभ तीन-स्थिति वाला toggle (हल्का/system/dark) दें।
एआई शिक्षक के साथ CSS सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 40
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “स्वचालित और मैनुअल डार्क मोड टॉगल” पाठ निःशुल्क है?
हाँ—“स्वचालित और मैनुअल डार्क मोड टॉगल” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CSS Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CSS Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“स्वचालित और मैनुअल डार्क मोड टॉगल” में मैं क्या सीखूँगा?
ऐसा थीम टॉगल बनाएँ जो डिफ़ॉल्ट रूप से प्रणाली की पसंद का सम्मान करे और उपयोगकर्ताओं को इसे मैनुअल रूप से बदलने दे। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CSS Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या CSS Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CSS Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“स्वचालित और मैनुअल डार्क मोड टॉगल” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस CSS Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर CSS Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- prefers-color-scheme मीडिया क्वेरी
- थीम के लिए CSS वेरिएबल
- color-scheme प्रॉपर्टी
- स्वचालित और मैनुअल डार्क मोड टॉगल