load-theme.js 934 B

12345678910111213141516171819202122232425262728293031
  1. function getThemeMode() {
  2. return parseInt(localStorage.getItem('dark_mode') || 2);
  3. }
  4. let currentThemeMode = getThemeMode();
  5. let isDarkTheme;
  6. switch (currentThemeMode) {
  7. case 0:
  8. isDarkTheme = false;
  9. break;
  10. case 1:
  11. isDarkTheme = true;
  12. break;
  13. default:
  14. if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
  15. // The visitor prefers dark themes and switching to the dark variation is allowed by admin.
  16. isDarkTheme = true;
  17. } else if (window.matchMedia('(prefers-color-scheme: light)').matches) {
  18. // The visitor prefers light themes and switching to the dark variation is allowed by admin.
  19. isDarkTheme = false;
  20. } else {
  21. // Use the site's default theme variation based on `light` in the theme file.
  22. isDarkTheme = isSiteThemeDark;
  23. }
  24. break;
  25. }
  26. if (isDarkTheme) {
  27. document.body.classList.add("dark");
  28. } else {
  29. document.body.classList.remove("dark");
  30. }