Skip to content

Commit 92ee8e6

Browse files
committed
feat-Integrated-dark-mode-toggler
1 parent 3639560 commit 92ee8e6

3 files changed

Lines changed: 66 additions & 0 deletions

File tree

‎config.toml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ sidebar_menu_compact = true
9090
sidebar_menu_foldable = true
9191
# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled)
9292
sidebar_search_disable = false
93+
# Enables dark mode toggle in Navigation Menu
94+
showLightDarkModeMenu = true
9395

9496
# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events.
9597
# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set.

‎layouts/partials/navbar.html‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
{{ partial "navbar-lang-selector.html" . }}
3131
</li>
3232
{{ end }}
33+
{{ if .Site.Params.ui.showLightDarkModeMenu -}}
34+
<li class="td-light-dark-menu nav-item dropdown">
35+
{{ partial "theme-toggler" . }}
36+
</li>
37+
{{ end -}}
3338
</ul>
3439
</div>
3540
<div class="d-none d-lg-block">
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{{/* Adapted from: https://github.com/twbs/bootstrap/blob/main/site/layouts/partials/icons.html */ -}}
2+
3+
<svg xmlns="http://www.w3.org/2000/svg" class="d-none">
4+
<symbol id="check2" viewBox="0 0 16 16">
5+
<path d="M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z"/>
6+
</symbol>
7+
<symbol id="circle-half" viewBox="0 0 16 16">
8+
<path d="M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
9+
</symbol>
10+
<symbol id="moon-stars-fill" viewBox="0 0 16 16">
11+
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"/>
12+
<path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"/>
13+
</symbol>
14+
<symbol id="sun-fill" viewBox="0 0 16 16">
15+
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"/>
16+
</symbol>
17+
</svg>
18+
19+
{{/* Adapted from: https://github.com/twbs/bootstrap/blob/main/site/layouts/partials/theme-toggler.html */ -}}
20+
21+
{{ $isExamples := eq .Layout "examples" -}}
22+
<button class="btn
23+
{{- if $isExamples }} btn-bd-primary
24+
{{- else }} btn-link nav-link
25+
{{- end }} dropdown-toggle d-flex align-items-center"
26+
id="bd-theme"
27+
type="button"
28+
aria-expanded="false"
29+
data-bs-toggle="dropdown"
30+
{{ if not $isExamples }}data-bs-display="static"{{ end }}
31+
aria-label="Toggle theme (auto)">
32+
<svg class="bi my-1 theme-icon-active"><use href="#circle-half"></use></svg>
33+
{{- /* Disable menu name for Docsy:
34+
<span class="{{ if $isExamples }}visually-hidden{{ else }}d-lg-none ms-2{{ end }}" id="bd-theme-text">Toggle theme</span>
35+
*/}}
36+
</button>
37+
<ul class="dropdown-menu dropdown-menu-end{{ if $isExamples }} shadow{{ end }}" aria-labelledby="bd-theme-text">
38+
<li>
39+
<button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="light" aria-pressed="false">
40+
<svg class="bi me-2 opacity-50"><use href="#sun-fill"></use></svg>
41+
Light
42+
<svg class="bi ms-auto d-none"><use href="#check2"></use></svg>
43+
</button>
44+
</li>
45+
<li>
46+
<button type="button" class="dropdown-item d-flex align-items-center" data-bs-theme-value="dark" aria-pressed="false">
47+
<svg class="bi me-2 opacity-50"><use href="#moon-stars-fill"></use></svg>
48+
Dark
49+
<svg class="bi ms-auto d-none"><use href="#check2"></use></svg>
50+
</button>
51+
</li>
52+
<li>
53+
<button type="button" class="dropdown-item d-flex align-items-center active" data-bs-theme-value="auto" aria-pressed="true">
54+
<svg class="bi me-2 opacity-50"><use href="#circle-half"></use></svg>
55+
Auto
56+
<svg class="bi ms-auto d-none"><use href="#check2"></use></svg>
57+
</button>
58+
</li>
59+
</ul>

0 commit comments

Comments
 (0)