Quellcode durchsuchen

PEed the themer

Heydon Pickering vor 8 Jahren
Ursprung
Commit
5c07e6d1a4

+ 4 - 0
docs/css/styles.css

@@ -71,6 +71,10 @@ figure p img {
 div:not([tabindex]):focus {
     outline: none;
 }
+[hidden] {
+  display: none;
+}
+
 /* skip link */
 
 [href="#main"] {

+ 12 - 5
docs/js/dom-scripts.js

@@ -128,11 +128,16 @@
 /* Switch and persist theme */
 (function () {
   var checkbox = document.getElementById('themer');
-  var invertor = document.getElementById('inverter');
+  var inverter = document.getElementById('inverter');
 
   function darkTheme(media) {
-    invertor.setAttribute('media', media);
-    invertor.textContent = invertor.textContent.trim();
+    if (!('filter' in document.body.style)) {
+      checkbox.parentNode.hidden = true;
+      return;
+    }
+
+    inverter.setAttribute('media', media);
+    inverter.textContent = inverter.textContent.trim();
     localStorage.setItem('darkTheme', media);
   }
 
@@ -141,8 +146,10 @@
   });
 
   window.addEventListener('DOMContentLoaded', function () {
-    if (localStorage.getItem('darkTheme') === 'screen') {
-      checkbox.click();
+    if ('filter' in document.body.style) {
+      if (localStorage.getItem('darkTheme') === 'screen') {
+        checkbox.click();
+      }
     }
   });
 }());

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
docs/service-worker.js


+ 4 - 0
themes/infusion/static/css/styles.css

@@ -71,6 +71,10 @@ figure p img {
 div:not([tabindex]):focus {
     outline: none;
 }
+[hidden] {
+  display: none;
+}
+
 /* skip link */
 
 [href="#main"] {

+ 12 - 5
themes/infusion/static/js/dom-scripts.js

@@ -128,11 +128,16 @@
 /* Switch and persist theme */
 (function () {
   var checkbox = document.getElementById('themer');
-  var invertor = document.getElementById('inverter');
+  var inverter = document.getElementById('inverter');
 
   function darkTheme(media) {
-    invertor.setAttribute('media', media);
-    invertor.textContent = invertor.textContent.trim();
+    if (!('filter' in document.body.style)) {
+      checkbox.parentNode.hidden = true;
+      return;
+    }
+
+    inverter.setAttribute('media', media);
+    inverter.textContent = inverter.textContent.trim();
     localStorage.setItem('darkTheme', media);
   }
 
@@ -141,8 +146,10 @@
   });
 
   window.addEventListener('DOMContentLoaded', function () {
-    if (localStorage.getItem('darkTheme') === 'screen') {
-      checkbox.click();
+    if ('filter' in document.body.style) {
+      if (localStorage.getItem('darkTheme') === 'screen') {
+        checkbox.click();
+      }
     }
   });
 }());

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.