feat(theme): add detecting system dark mode to set site theme

add "auto" config in default theme, which detecting system dark mode to set site theme
This commit is contained in:
Dillon
2020-02-11 21:40:58 +08:00
parent 2d350af854
commit 88273f439a
4 changed files with 25 additions and 20 deletions

View File

@@ -17,7 +17,12 @@
{{- /* Check theme isDark before body rendering */ -}}
<script>
if (!window.localStorage || !window.localStorage.getItem('theme')) {
window.isDark = '{{ .Site.Params.defaultTheme }}' === 'dark';
{{- $theme := .Site.Params.defaultTheme -}}
{{- if eq $theme "auto" -}}
window.isDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
{{- else -}}
window.isDark = '{{ $theme }}' === 'dark';
{{- end -}}
} else {
window.isDark = (window.localStorage && window.localStorage.getItem('theme')) === 'dark';
}