„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie überschreibe ich die Einstellung des nativen Farbschemas für eine bessere Benutzererfahrung?

Wie überschreibe ich die Einstellung des nativen Farbschemas für eine bessere Benutzererfahrung?

Veröffentlicht am 10.11.2024
Durchsuche:963

How to Override the Native Color-Scheme Setting for a Better User Experience?

Überschreiben der nativen Farbschema-Einstellung

Die Implementierung dunkler Modi ist mit der weit verbreiteten Akzeptanz auf verschiedenen Betriebssystemen von entscheidender Bedeutung geworden. Obwohl native Browserunterstützung durch die CSS-Medienregel @media (prefers-color-scheme: dark) vorhanden ist, geht sie möglicherweise nicht vollständig auf Benutzerpräferenzen ein oder berücksichtigt nicht unterstützte Browser wie Microsoft Edge.

Entkopplung der Systemeinstellungen aus dem Website-Design

Um eine optimale Benutzerkontrolle zu gewährleisten, ist es wichtig, Benutzern die Möglichkeit zu geben, die Farbschemaeinstellungen des Systems zu überschreiben. Dadurch wird sichergestellt, dass sie das Thema auswählen können, das sie für eine bestimmte Website bevorzugen. Um dies zu erreichen, wird eine Kombination aus CSS-Variablen und JavaScript verwendet.

CSS-Konfiguration

CSS-Variablen definieren die Theme-Parameter:

:root {
  --font-color: #000;
  --link-color: #1C75B9;
  --link-white-color: #fff;
  --bg-color: rgb(243,243,243);
}

[data-theme="dark"] {
  --font-color: #c1bfbd;
  --link-color: #0a86da;
  --link-white-color: #c1bfbd;
  --bg-color: #333;
}

Variablen werden im gesamten Stylesheet verwendet, um Flexibilität zu gewährleisten:

body {
  color: #000;
  color: var(--font-color);
  background: rgb(243,243,243);
  background: var(--bg-color);
}

JavaScript-Implementierung

JavaScript spielt eine entscheidende Rolle bei der Erkennung von Benutzerpräferenzen und dem Umschalten zwischen Themen:

function detectColorScheme() {
  let theme = "light";

  if (localStorage.getItem("theme") == "dark") {
    theme = "dark";
  } else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
    theme = "dark";
  }

  if (theme == "dark") {
    document.documentElement.setAttribute("data-theme", "dark");
  }
}

detectColorScheme();

Die toggleTheme-Funktion übernimmt den Themenwechsel:

function switchTheme(e) {
  if (e.target.checked) {
    localStorage.setItem('theme', 'dark');
    document.documentElement.setAttribute('data-theme', 'dark');
  } else {
    localStorage.setItem('theme', 'light');
    document.documentElement.setAttribute('data-theme', 'light');
  }  
}

Dieses JavaScript gewährleistet die automatische Theme-Erkennung und ermöglicht es Benutzern, es mit einem Kontrollkästchen zu überschreiben:

Fazit

Durch die Kombination von CSS-Variablen und JavaScript geben wir Benutzern die Möglichkeit, das Farbschema einer Website unabhängig von ihren Systemeinstellungen zu steuern . Dieser Ansatz gewährleistet ein verbessertes Benutzererlebnis und geht auf individuelle Vorlieben und die Einschränkungen verschiedener Browser ein.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3