mirror of
				https://github.com/privacyguides/privacyguides.org.git
				synced 2025-10-31 03:26:35 +00:00 
			
		
		
		
	Reduce flickering with dark/light theme (#1241)
This commit is contained in:
		 Dawid Potocki
					Dawid Potocki
				
			
				
					committed by
					
						 nitrohorse
						nitrohorse
					
				
			
			
				
	
			
			
			 nitrohorse
						nitrohorse
					
				
			
						parent
						
							0276f52ed2
						
					
				
				
					commit
					24412dcf8f
				
			
							
								
								
									
										6
									
								
								assets/js/applytheme.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								assets/js/applytheme.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| if (localStorage.getItem("colorScheme") === "dark") { | ||||
|   document.querySelector("#dark-css").removeAttribute("media"); // Set dark theme | ||||
| } | ||||
| else if (localStorage.getItem("colorScheme") === "light") { | ||||
|   document.querySelector("#dark-css").setAttribute("media", "invalid"); // Set light theme | ||||
| } | ||||
| @@ -29,29 +29,31 @@ function navSectionsClose(event) { | ||||
|  | ||||
|  | ||||
| // Dark/Light color scheme switch button | ||||
| document.querySelector("#nav-switch-theme").style.display = "inline" | ||||
|  | ||||
| if (localStorage.getItem("colorScheme") === "dark") { | ||||
|   document.querySelector("#dark-css").removeAttribute("media"); // Set dark theme | ||||
| } | ||||
| else if (localStorage.getItem("colorScheme") === "light") { | ||||
|   document.querySelector("#dark-css").setAttribute("media", "invalid"); // Set light theme | ||||
| } | ||||
| document.querySelector("#nav-switch-theme").style.display = "inline"; | ||||
|  | ||||
| function changeColorScheme() { | ||||
|  | ||||
|   // Use whatever users want | ||||
|   if (localStorage.getItem("colorScheme") === "dark") { | ||||
|     // Change to light theme | ||||
|     // by setting invalid media it will just not apply CSS for anyone | ||||
|     document.querySelector("#dark-css").setAttribute("media", "invalid"); | ||||
|     localStorage.setItem("colorScheme", "light"); | ||||
|     if (window.matchMedia("(prefers-color-scheme: dark)").matches === false) { | ||||
|       document.querySelector("#dark-css").setAttribute("media", "(prefers-color-scheme: dark)"); | ||||
|       localStorage.removeItem("colorScheme"); | ||||
|     } else { | ||||
|       // by setting invalid media it will just not apply CSS for anyone | ||||
|       document.querySelector("#dark-css").setAttribute("media", "invalid"); | ||||
|       localStorage.setItem("colorScheme", "light"); | ||||
|     } | ||||
|   } | ||||
|   // Change to dark theme | ||||
|   else if (localStorage.getItem("colorScheme") === "light") { | ||||
|     // Change to dark theme | ||||
|     // media was set to prefers-color-scheme: dark | ||||
|     document.querySelector("#dark-css").removeAttribute("media"); | ||||
|     localStorage.setItem("colorScheme", "dark");; | ||||
|     if (window.matchMedia("(prefers-color-scheme: dark)").matches === true) { | ||||
|       document.querySelector("#dark-css").setAttribute("media", "(prefers-color-scheme: dark)"); | ||||
|       localStorage.removeItem("colorScheme"); | ||||
|     } else { | ||||
|       // media was set to prefers-color-scheme: dark | ||||
|       document.querySelector("#dark-css").removeAttribute("media"); | ||||
|       localStorage.setItem("colorScheme", "dark"); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // Just use whatever browsers want | ||||
| @@ -59,11 +61,10 @@ function changeColorScheme() { | ||||
|     // Change to light Theme | ||||
|     document.querySelector("#dark-css").setAttribute("media", "invalid"); | ||||
|     localStorage.setItem("colorScheme", "light"); | ||||
|   } | ||||
|   else { | ||||
|   } else { | ||||
|     // Change to dark theme | ||||
|     document.querySelector("#dark-css").removeAttribute("media"); | ||||
|     localStorage.setItem("colorScheme", "dark");; | ||||
|     localStorage.setItem("colorScheme", "dark"); | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user