Skip to content

Commit 01b2483

Browse files
authored
Merge pull request #4794 from rmosolgo/dark-theme
Website: add a dark theme
2 parents 436e79d + 53ccc37 commit 01b2483

File tree

4 files changed

+242
-18
lines changed

4 files changed

+242
-18
lines changed

guides/_layouts/default.html

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,45 @@
1313
<link rel="icon" href="{{ site.baseurl }}/graphql-ruby-icon.png">
1414
</head>
1515
<body>
16+
<script>
17+
function detectDarkTheme(toggle) {
18+
var prefersDarkSchemeSetting = localStorage.getItem("prefersDarkScheme")
19+
if (prefersDarkSchemeSetting == null) {
20+
prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)').matches
21+
} else {
22+
prefersDarkScheme = prefersDarkSchemeSetting == "true"
23+
}
24+
25+
if (toggle) {
26+
if (prefersDarkScheme) {
27+
prefersDarkScheme = false
28+
localStorage.setItem("prefersDarkScheme", "false")
29+
} else {
30+
prefersDarkScheme = true
31+
localStorage.setItem("prefersDarkScheme", "true")
32+
}
33+
}
34+
35+
if (prefersDarkScheme) {
36+
document.body.classList.add('dark-theme');
37+
document.querySelectorAll(".graphql-ruby-img").forEach(function(el) {
38+
el.src = "{{ site.baseurl }}/graphql-ruby-dark.png"
39+
})
40+
} else {
41+
document.body.classList.remove('dark-theme');
42+
document.querySelectorAll(".graphql-ruby-img").forEach(function(el) {
43+
el.src = "{{ site.baseurl }}/graphql-ruby.png"
44+
})
45+
}
46+
}
47+
48+
detectDarkTheme(false)
49+
</script>
1650
<div class="header">
1751
<div class="header-container">
1852
<div class="nav">
1953
<a href="{{ site.baseurl }}/" class="img-link">
20-
<img src="{{ site.baseurl }}/graphql-ruby.png" alt="GraphQL Ruby Logo" />
54+
<img class="graphql-ruby-img" src="{{ site.baseurl }}/graphql-ruby.png" alt="GraphQL Ruby Logo" />
2155
</a>
2256
<a href="{{ site.baseurl }}/getting_started">Get Started</a>
2357
<a href="{{ site.baseurl }}/guides">Guides</a>
@@ -31,6 +65,7 @@
3165
type="text"
3266
placeholder="Search the docs..."
3367
/>
68+
<a href="#" onclick="event.preventDefault(); detectDarkTheme(true)"></a>
3469
</div>
3570
</div>
3671
<div class="search-results-container">
@@ -43,5 +78,8 @@
4378
</div>
4479
<script src="https://cdn.jsdelivr.net/algoliasearch/3/algoliasearchLite.min.js"></script>
4580
<script src="{{ site.baseurl }}/js/search.js"></script>
81+
<script>
82+
detectDarkTheme(false) // do it again to update the images
83+
</script>
4684
</body>
4785
</html>

0 commit comments

Comments
 (0)