header: add Language switch (#54)

* language-switch: init
* header: move logo-switches together
This commit is contained in:
Aditya Telange 2020-10-26 22:19:05 +05:30 committed by GitHub
parent a97de0f9a4
commit c33dabf3a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 75 additions and 28 deletions

View File

@ -7,17 +7,18 @@
max-width: calc(var(--nav-width) + var(--gap) * 2); max-width: calc(var(--nav-width) + var(--gap) * 2);
margin-inline-start: auto; margin-inline-start: auto;
margin-inline-end: auto; margin-inline-end: auto;
line-height: var(--header-height);
} }
.nav a { .nav a {
display: block; display: block;
line-height: var(--header-height);
} }
.logo, .logo,
.menu { .menu {
display: flex; display: flex;
margin: auto var(--gap); margin: auto var(--gap);
flex-wrap: inherit;
} }
.logo a { .logo a {
@ -40,7 +41,7 @@
user-select: none; user-select: none;
} }
body.dark #moon{ body.dark #moon {
vertical-align: middle; vertical-align: middle;
display: none; display: none;
} }
@ -68,3 +69,22 @@ body:not(.dark) #sun {
font-weight: 500; font-weight: 500;
border-bottom: 2px solid currentColor; border-bottom: 2px solid currentColor;
} }
.lang-switch ul {
display: inline-flex;
}
.lang-switch a {
font-size: 16px;
font-weight: 500;
margin: 0 8px;
}
.lang-switch li {
display: inline-flex;
}
.logo-switches {
display: inline-flex;
flex-wrap: inherit;
}

View File

@ -10,6 +10,7 @@
document.body.classList.add('dark'); document.body.classList.add('dark');
} }
} }
</script> </script>
{{- end }} {{- end }}
{{- if (and (.Site.Params.disableThemeToggle) (eq .Site.Params.defaultTheme "auto")) }} {{- if (and (.Site.Params.disableThemeToggle) (eq .Site.Params.defaultTheme "auto")) }}
@ -17,6 +18,7 @@
if (window.matchMedia('(prefers-color-scheme: dark)').matches) { if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark'); document.body.classList.add('dark');
} }
</script> </script>
{{- end }} {{- end }}
<noscript> <noscript>
@ -25,11 +27,12 @@
.top-link { .top-link {
display: none; display: none;
} }
</style> </style>
</noscript> </noscript>
<header class="header"> <header class="header">
<nav class="nav"> <nav class="nav">
<p class="logo"> <div class="logo">
<a href="{{ "" | absLangURL }}"> <a href="{{ "" | absLangURL }}">
{{- if .Site.Params.label.icon }} {{- if .Site.Params.label.icon }}
<img src="{{- .Site.Params.label.icon -}}" alt="logo" aria-label="logo" <img src="{{- .Site.Params.label.icon -}}" alt="logo" aria-label="logo"
@ -37,31 +40,55 @@
{{- end -}} {{- end -}}
{{- .Site.Params.label.text | default .Site.Title -}} {{- .Site.Params.label.text | default .Site.Title -}}
</a> </a>
{{- if (and (not .Site.Params.disableThemeToggle) (not (or (eq .Site.Params.defaultTheme "light") (eq .Site.Params.defaultTheme "dark")))) }} <span class="logo-switches">
<span class="theme-toggle"> {{- if (and (not .Site.Params.disableThemeToggle) (not (or (eq .Site.Params.defaultTheme "light") (eq .Site.Params.defaultTheme "dark")))) }}
<a id="theme-toggle"> <span class="theme-toggle">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" <a id="theme-toggle">
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" <svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
stroke-linejoin="round"> fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path> stroke-linejoin="round">
</svg> <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" </svg>
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" <svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
stroke-linejoin="round"> fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
<circle cx="12" cy="12" r="5"></circle> stroke-linejoin="round">
<line x1="12" y1="1" x2="12" y2="3"></line> <circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="21" x2="12" y2="23"></line> <line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="1" y1="12" x2="3" y2="12"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="21" y1="12" x2="23" y2="12"></line> <line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
</svg> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</a> </svg>
</a>
</span>
{{- end}}
{{ $lang := .Lang}}
{{- with $.Site.Home.AllTranslations }}
<span class="lang-switch">
<span>|</span>
<ul>
{{- range . -}}
{{- if ne $lang .Lang }}
<li>
<a href="{{- .Permalink -}}" title="{{ .Language.LanguageName | default .Lang | humanize }}"
aria-label="{{ .Language.LanguageName | default .Lang | humanize }}">
{{- if (and $.Site.Params.displayFullLangName (.Language.LanguageName)) }}
{{- .Language.LanguageName | humanize -}}
{{- else }}
{{- .Lang | humanize -}}
{{- end -}}
</a>
</li>
{{- end -}}
{{- end}}
</ul>
</span>
{{- end }}
</span> </span>
{{- end}} </div>
</p>
{{- $currentPage := . }} {{- $currentPage := . }}
<ul class="menu" id="menu" onscroll="menu_on_scroll()"> <ul class="menu" id="menu" onscroll="menu_on_scroll()">
{{- range .Site.Menus.main }} {{- range .Site.Menus.main }}
@ -75,7 +102,7 @@
</span> </span>
</a> </a>
</li> </li>
{{- end }} {{- end -}}
</ul> </ul>
</nav> </nav>
</header> </header>