0Pricing
CSS Academy · Ders

Otomatik ve Manuel Koyu Mod Geçişi

Varsayılan olarak sistem tercihini dikkate alan ve kullanıcıların tercihi manuel olarak değiştirmesine izin veren bir tema geçişi oluşturun.

Otomatik ve Manuel Koyu Mod Geçişi, CoddyKit'te ücretsiz bir CSS Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, CSS Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CSS Academy kursu toplamda 4 dersten oluşur.

Amaç

İdeal bir dark modu uygulaması, varsayılan olarak OS tercihini otomatik algılar ve kullanıcıların bu tercihi bağımsız olarak geçersiz kılmasını sağlayan bir geçiş düğmesi sunar; tercih sayfa yüklemeleri arasında kalıcı olur.

Mimariye Genel Bakış

Yönetilmesi gereken üç durum vardır:

  1. Sistem tercihi: CSS değişkenleriyle prefers-color-scheme kullanın
  2. Kullanıcı geçersiz kılması: dark: <html> üzerine bir sınıf veya veri özniteliği ayarlayın
  3. Kullanıcı geçersiz kılması: light: otomatik dark modunu önlemek için farklı bir sınıf ayarlayın

CSS Belirteç Kurulumu

Tüm durumlar için doğru şekilde kademelenen CSS değişkenlerini tanımlayın:

<div class="demo" data-theme="dark">Dark token demo</div>
<div class="demo" data-theme="light">Light token demo</div>

JavaScript Geçiş Mantığı

Kaydedilmiş tercihi okuyun, uygulayın ve geçişte güncelleyin:

<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>

Üç Durumlu Geçiş

Daha gelişmiş üç durumlu bir geçiş: Light | 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>

Yanlış Tema Flaşını Önleme

Kaydedilmiş temayı sayfa oluşturulmadan önce eşzamanlı olarak uygulayın:

<pre class="code-sample">&lt;!-- In &lt;head&gt;, before any styles --&gt;
&lt;script&gt;
  const t = localStorage.getItem("theme");
  if (t) document.documentElement.dataset.theme = t;
&lt;/script&gt;</pre>

Geçiş Düğmesinin Erişilebilirliği

Geçiş düğmesi, mevcut durumu ekran okuyuculara bildirmelidir. Geçiş yapıldığında erişilebilir etiketi güncelleyin:

<button id="theme-toggle" aria-label="Switch to dark mode">🌙</button>

Animasyonlu Tema Geçişi

Tema değiştiğinde yumuşak renk geçişleri sağlayın:

<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>

Sistem Değişikliğini Dinleme

Kullanıcı sayfa açıkken OS tercihini değiştirirse buna da tepki verin:

<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 Modu Simgeleri

Her mod için simgeleri değiştirin. Temaya duyarlı görseller için picture öğesini veya farklı simgeleri göstermek/gizlemek için CSS'i kullanın:

<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>

Özet: Uygulama Denetim Listesi

dark modu denetim listesi:

  • Tüm renk belirteçleri için CSS değişkenleri
  • Otomatik algılama için prefers-color-scheme medya sorgusu
  • Manuel geçersiz kılma için data-theme özniteliği
  • Kalıcı depolama için localStorage
  • Flaş görüntüsünü önlemek için head içinde satır içi betik
  • Dinamik aria-label içeren erişilebilir geçiş düğmesi

Hızlı Kontrol

Sayfa yüklenirken "yanlış tema flaşını" hangi teknik önler?

Özet

Eksiksiz bir dark modu geçişi; tema belirteçleri için CSS değişkenlerini, otomatik algılama için bir prefers-color-scheme sorgusunu, manuel geçersiz kılma için bir data-theme özniteliğini, kalıcılık için localStorage'ı ve flaş görüntüsünü önlemek için eşzamanlı bir head betiğini kullanır. En iyi kullanıcı deneyimi için erişilebilir, üç durumlu (light/system/dark) bir geçiş sunun.

Sıkça Sorulan Sorular

“Otomatik ve Manuel Koyu Mod Geçişi” dersi ücretsiz mi?

Evet — “Otomatik ve Manuel Koyu Mod Geçişi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve CSS Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CSS Academy kursu toplamda 4 dersten oluşur.

“Otomatik ve Manuel Koyu Mod Geçişi” dersinde ne öğreneceğim?

Varsayılan olarak sistem tercihini dikkate alan ve kullanıcıların tercihi manuel olarak değiştirmesine izin veren bir tema geçişi oluşturun. CSS Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

CSS Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te CSS Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Otomatik ve Manuel Koyu Mod Geçişi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu CSS Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her CSS Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. prefers-color-scheme Medya Sorgusu
  2. Tema İçin CSS Değişkenleri
  3. color-scheme Özelliği
  4. Otomatik ve Manuel Koyu Mod Geçişi
← CSS Academy Sayfasına Dön