File tree 2 files changed +13
-6
lines changed
2 files changed +13
-6
lines changed Original file line number Diff line number Diff line change 1
1
"use strict" ;
2
2
3
+ // val: "light" | "dark"
4
+ function renderTheme ( val ) {
5
+ document . documentElement . setAttribute ( "data-theme" , val ) ;
6
+ document . getElementById ( "syntax-theme" ) . href = `/styles/syntax-theme-${ val } .css`
7
+ }
8
+
3
9
function changeThemeTo ( val ) {
4
10
if ( val === "system" ) {
5
11
setThemeToSystemPref ( ) ;
@@ -8,7 +14,7 @@ function changeThemeTo(val) {
8
14
localStorage . removeItem ( "blog-rust-lang-org-theme" ) ;
9
15
}
10
16
} else {
11
- document . documentElement . setAttribute ( "data-theme" , val ) ;
17
+ renderTheme ( val ) ;
12
18
// save theme prefs in the browser
13
19
if ( storageAvailable ( "localStorage" ) ) {
14
20
localStorage . setItem ( "blog-rust-lang-org-theme" , val ) ;
@@ -54,9 +60,9 @@ function handleBlur(event) {
54
60
55
61
function setThemeToSystemPref ( ) {
56
62
if ( window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ) {
57
- document . documentElement . setAttribute ( "data-theme" , "dark" ) ;
63
+ renderTheme ( "dark" ) ;
58
64
} else {
59
- document . documentElement . setAttribute ( "data-theme" , "light" ) ;
65
+ renderTheme ( "light" ) ;
60
66
}
61
67
}
62
68
@@ -66,7 +72,7 @@ if (storageAvailable("localStorage")) {
66
72
savedTheme = localStorage . getItem ( "blog-rust-lang-org-theme" ) ;
67
73
}
68
74
if ( savedTheme ) {
69
- document . documentElement . setAttribute ( "data-theme" , savedTheme ) ;
75
+ renderTheme ( savedTheme ) ;
70
76
} else {
71
77
setThemeToSystemPref ( ) ;
72
78
}
Original file line number Diff line number Diff line change 19
19
< link rel ="stylesheet " href ="{{ config.base_url | safe }}/styles/tachyons.css "/>
20
20
< link rel ="stylesheet " href ="{{ config.base_url | safe }}/styles/fonts.css "/>
21
21
< link rel ="stylesheet " href ="{{ config.base_url | safe }}/styles/app.css "/>
22
- < link rel ="stylesheet " type ="text/css " href ="/styles/syntax-theme-dark.css " media ="(prefers-color-scheme: dark) " />
23
- < link rel ="stylesheet " type ="text/css " href ="/styles/syntax-theme-light.css " media ="(prefers-color-scheme: light) " />
22
+ < link rel ="stylesheet " type ="text/css " id ="syntax-theme " />
24
23
25
24
<!-- stylesheet for user agents without js -->
26
25
< noscript >
27
26
< link rel ="stylesheet " href ="{{ config.base_url | safe }}/styles/noscript.css ">
27
+ < link rel ="stylesheet " type ="text/css " href ="/styles/syntax-theme-dark.css " media ="(prefers-color-scheme: dark) " />
28
+ < link rel ="stylesheet " type ="text/css " href ="/styles/syntax-theme-light.css " media ="(prefers-color-scheme: light) " />
28
29
</ noscript >
29
30
30
31
<!-- favicon -->
You can’t perform that action at this time.
0 commit comments