Auto darkmode fix

This commit is contained in:
gurusabarish
2022-01-25 23:08:26 +05:30
parent 5cc0bc0a46
commit bbcf135e17
5 changed files with 88 additions and 75 deletions
+15 -1
View File
@@ -1,5 +1,19 @@
/public
/config.yaml /config.yaml
/content /content
/static/images /static/images
.vscode .vscode
### Hugo ###
# Generated files by hugo
/public/
/resources/_gen/
/assets/jsconfig.json
hugo_stats.json
# Executable may be added to repository
hugo.exe
hugo.darwin
hugo.linux
# Temporary lock file while building
/.hugo_build.lock
+18 -17
View File
@@ -56,6 +56,20 @@
$('[data-toggle="tooltip"]').tooltip() $('[data-toggle="tooltip"]').tooltip()
}) })
</script> </script>
<!-- Darkmode -->
<script>
function autoDarkMode() {
$("body").toggleClass("darkmode");
$(".fa-moon").addClass("d-none");
$(".fa-sun").removeClass("d-none");
$("nav").toggleClass("navbar-dark");
$("nav").toggleClass("navbar-light");
$('.text-dark').toggleClass('darkmode-text-dark');
$('.text-muted').toggleClass('darkmode-text-muted');
};
</script>
<script src="/js/auto_darkmode.js"></script>
<script> <script>
$('.darkmode-label').click(function () { $('.darkmode-label').click(function () {
$("body").toggleClass("darkmode"); $("body").toggleClass("darkmode");
@@ -63,26 +77,13 @@
$(".fa-sun").toggleClass("d-none"); $(".fa-sun").toggleClass("d-none");
$("nav").toggleClass("navbar-dark"); $("nav").toggleClass("navbar-dark");
$("nav").toggleClass("navbar-light"); $("nav").toggleClass("navbar-light");
$('.text-dark').addClass('darkmode-text-dark').removeClass('text-dark'); $('.text-dark').toggleClass('darkmode-text-dark');
$('.text-muted').addClass('darkmode-text-muted').removeClass('text-muted'); $('.text-muted').toggleClass('darkmode-text-muted');
if ($('input.custom-control-input').is(':checked')) {
$('.darkmode-text-dark').addClass('text-dark').removeClass('darkmode-text-dark');
$('.darkmode-text-muted').addClass('text-muted').removeClass('darkmode-text-muted');
};
switchDarkmodeSetting(); switchDarkmodeSetting();
}); });
if ($('input.custom-control-input').is(':checked')) {
$("body").toggleClass("darkmode");
$(".fa-moon").addClass("d-none");
$(".fa-sun").removeClass("d-none");
$("nav").toggleClass("navbar-dark");
$("nav").toggleClass("navbar-light");
$('.text-dark').addClass('darkmode-text-dark').removeClass('text-dark');
$('.text-muted').addClass('darkmode-text-muted').removeClass('text-muted');
switchDarkmodeSetting();
};
</script> </script>
{{- partial "sections/v3/auto_darkmode.html" . -}}
</body> </body>
{{ else }} {{ else }}
+23 -28
View File
@@ -115,6 +115,23 @@
{{- partial "sections/v3/footer.html" . -}} {{- partial "sections/v3/footer.html" . -}}
{{- partial "sections/v3/scripts.html" . -}} {{- partial "sections/v3/scripts.html" . -}}
</div> </div>
<!-- Darkmode -->
<script>
function autoDarkMode() {
$("body").toggleClass("darkmode");
$(".fa-moon").addClass("d-none");
$(".fa-sun").removeClass("d-none");
$("nav").toggleClass("navbar-dark");
$("nav").toggleClass("navbar-light");
$(".text-dark").toggleClass("darkmode-text-dark");
$(".text-muted").toggleClass("darkmode-text-muted")
$(".about-backdark").toggleClass("about-back");
$(".education-backdark").toggleClass("education-back");
$(".achievements-backdark").toggleClass("achievements-back");
}
</script>
<script src="/js/auto_darkmode.js"></script>
<script> <script>
/* /*
document.onreadystatechange = function () { document.onreadystatechange = function () {
@@ -131,6 +148,7 @@
} }
}; };
*/ */
$(".darkmode-label").click(function () { $(".darkmode-label").click(function () {
$("body").toggleClass("darkmode"); $("body").toggleClass("darkmode");
$(".fa-moon").toggleClass("d-none"); $(".fa-moon").toggleClass("d-none");
@@ -140,37 +158,14 @@
$(".achievements-backdark").toggleClass("achievements-back"); $(".achievements-backdark").toggleClass("achievements-back");
$("nav").toggleClass("navbar-dark"); $("nav").toggleClass("navbar-dark");
$("nav").toggleClass("navbar-light"); $("nav").toggleClass("navbar-light");
$(".text-dark").addClass("darkmode-text-dark").removeClass("text-dark"); $(".text-dark").toggleClass("darkmode-text-dark");
$(".text-muted") $(".text-muted").toggleClass("darkmode-text-muted")
.addClass("darkmode-text-muted")
.removeClass("text-muted");
if ($("input.custom-control-input").is(":checked")) {
$(".darkmode-text-dark")
.addClass("text-dark")
.removeClass("darkmode-text-dark");
$(".darkmode-text-muted")
.addClass("text-muted")
.removeClass("darkmode-text-muted");
}
switchDarkmodeSetting(); switchDarkmodeSetting();
}); });
if ($("input.custom-control-input").is(":checked")) {
$("body").toggleClass("darkmode");
$(".fa-moon").addClass("d-none");
$(".fa-sun").removeClass("d-none");
$("nav").toggleClass("navbar-dark");
$("nav").toggleClass("navbar-light");
$(".text-dark").addClass("darkmode-text-dark").removeClass("text-dark");
$(".text-muted")
.addClass("darkmode-text-muted")
.removeClass("text-muted");
$(".about-backdark").toggleClass("about-back");
$(".education-backdark").toggleClass("education-back");
$(".achievements-backdark").toggleClass("achievements-back");
switchDarkmodeSetting();
}
</script> </script>
{{- partial "sections/v3/auto_darkmode.html" . -}}
</body> </body>
{{ else }} {{ else }}
@@ -1 +0,0 @@
<script src="/js/auto_darkmode.js"></script>
+28 -24
View File
@@ -1,21 +1,21 @@
function setCookie(cname, cvalue) { function setCookie(name,value,days) {
document.cookie = cname + "=" + cvalue + ";path=/;"; var expires = "";
} if (days) {
var date = new Date();
function getCookie(cname) { date.setTime(date.getTime() + (days*24*60*60*1000));
let name = cname + "="; expires = "; expires=" + date.toUTCString();
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
} }
return ""; document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
} }
function getDarkmodeSetting() { function getDarkmodeSetting() {
@@ -31,14 +31,14 @@ function getDarkmodeSetting() {
function setDarkmodeSetting(value) { function setDarkmodeSetting(value) {
if (value) { if (value) {
setCookie("darkmode", "true"); setCookie("darkmode", "true", 100);
} else { } else {
setCookie("darkmode", "false"); setCookie("darkmode", "false", 100);
} }
} }
function switchDarkmodeSetting() { function switchDarkmodeSetting() {
let darkmode = getDarkmodeSetting(); const darkmode = getDarkmodeSetting();
switch(darkmode) { switch(darkmode) {
case true: case true:
setDarkmodeSetting(false); setDarkmodeSetting(false);
@@ -52,8 +52,12 @@ function switchDarkmodeSetting() {
} }
} }
let darkmode = getDarkmodeSetting();
let darkmode_prefer = window.matchMedia('(prefers-color-scheme: dark)').matches; const check_darkmode = getDarkmodeSetting();
if ((darkmode_prefer && darkmode===null) || darkmode) { const darkmode_prefer = window.matchMedia('(prefers-color-scheme: dark)').matches;
$(".darkmode-label").click(); if (darkmode_prefer && check_darkmode === null) {
autoDarkMode();
setDarkmodeSetting(true);
} else if (check_darkmode) {
autoDarkMode();
} }