mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2024-11-23 10:21:46 +01:00
feat: new left sidebar layout (#524)
* feat: more compact menu style * add compact option to sidebar * fix mobile menu style
This commit is contained in:
parent
c122e5e9a1
commit
985af924e7
4 changed files with 74 additions and 46 deletions
|
@ -134,19 +134,22 @@
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
|
|
||||||
background-color: var(--card-background);
|
background-color: var(--card-background);
|
||||||
padding: 15px 0;
|
|
||||||
box-shadow: var(--shadow-l1);
|
box-shadow: var(--shadow-l1);
|
||||||
display: none;
|
display: none;
|
||||||
|
|
||||||
margin: 0 calc(var(--container-padding) * -1);
|
margin: 0 calc(var(--container-padding) * -1);
|
||||||
|
|
||||||
|
padding: 30px 30px;
|
||||||
|
@include respond(xl) {
|
||||||
|
padding: 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
&,
|
&,
|
||||||
.menu-bottom-section {
|
.menu-bottom-section {
|
||||||
gap: 15px;
|
gap: 30px;
|
||||||
@include respond(xl) {
|
@include respond(xl) {
|
||||||
gap: 20px;
|
gap: 25px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,11 +169,10 @@
|
||||||
li {
|
li {
|
||||||
position: relative;
|
position: relative;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
padding: 10px 30px;
|
padding: 0;
|
||||||
|
|
||||||
@include respond(md) {
|
@include respond(md) {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 10px 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
|
|
|
@ -12,14 +12,14 @@
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
gap: var(--sidebar-element-separation);
|
gap: var(--sidebar-element-separation);
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
max-width: none;
|
max-width: none;
|
||||||
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
--sidebar-avatar-size: 120px;
|
--sidebar-avatar-size: 100px;
|
||||||
--sidebar-element-separation: 20px;
|
--sidebar-element-separation: 20px;
|
||||||
|
--emoji-size: 40px;
|
||||||
|
--emoji-font-size: 20px;
|
||||||
|
|
||||||
@include respond(md) {
|
@include respond(md) {
|
||||||
width: auto;
|
width: auto;
|
||||||
|
@ -29,13 +29,42 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@include respond(2xl) {
|
@include respond(2xl) {
|
||||||
--sidebar-avatar-size: 140px;
|
--sidebar-avatar-size: 120px;
|
||||||
--sidebar-element-separation: 25px;
|
--sidebar-element-separation: 25px;
|
||||||
|
--emoji-size: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.sticky {
|
&.sticky {
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.compact {
|
||||||
|
--sidebar-avatar-size: 80px;
|
||||||
|
--emoji-size: 30px;
|
||||||
|
--emoji-font-size: 15px;
|
||||||
|
|
||||||
|
header {
|
||||||
|
@include respond(lg) {
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-meta {
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-name {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
|
||||||
|
@include respond(2xl) {
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-description {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-sidebar {
|
.right-sidebar {
|
||||||
|
@ -69,6 +98,7 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: var(--sidebar-avatar-size);
|
width: var(--sidebar-avatar-size);
|
||||||
height: var(--sidebar-avatar-size);
|
height: var(--sidebar-avatar-size);
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
.site-logo {
|
.site-logo {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -79,22 +109,16 @@
|
||||||
|
|
||||||
.emoji {
|
.emoji {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 40px;
|
width: var(--emoji-size);
|
||||||
height: 40px;
|
height: var(--emoji-size);
|
||||||
line-height: 40px;
|
line-height: var(--emoji-size);
|
||||||
border-radius: 100%;
|
border-radius: 100%;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 20px;
|
font-size: var(--emoji-font-size);
|
||||||
background-color: var(--card-background);
|
background-color: var(--card-background);
|
||||||
box-shadow: var(--shadow-l2);
|
box-shadow: var(--shadow-l2);
|
||||||
|
|
||||||
@include respond(2xl) {
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
line-height: 50px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,15 +126,16 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-name {
|
.site-name {
|
||||||
color: var(--accent-color);
|
color: var(--accent-color);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.8rem;
|
font-size: 1.6rem;
|
||||||
|
|
||||||
@include respond(2xl) {
|
@include respond(2xl) {
|
||||||
font-size: 2rem;
|
font-size: 1.8rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,10 +143,10 @@
|
||||||
color: var(--body-text-color);
|
color: var(--body-text-color);
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.6rem;
|
font-size: 1.4rem;
|
||||||
|
|
||||||
@include respond(2xl) {
|
@include respond(2xl) {
|
||||||
font-size: 1.8rem;
|
font-size: 1.6rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ params:
|
||||||
lastUpdated: Jan 02, 2006 15:04 MST
|
lastUpdated: Jan 02, 2006 15:04 MST
|
||||||
|
|
||||||
sidebar:
|
sidebar:
|
||||||
|
compact: false
|
||||||
emoji:
|
emoji:
|
||||||
subtitle:
|
subtitle:
|
||||||
avatar:
|
avatar:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<aside class="sidebar left-sidebar sticky">
|
<aside class="sidebar left-sidebar sticky {{ if .Site.Params.sidebar.compact }}compact{{ end }}">
|
||||||
<button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="{{ T `toggleMenu` }}">
|
<button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="{{ T `toggleMenu` }}">
|
||||||
<span class="hamburger-box">
|
<span class="hamburger-box">
|
||||||
<span class="hamburger-inner"></span>
|
<span class="hamburger-inner"></span>
|
||||||
|
@ -35,27 +35,27 @@
|
||||||
<h1 class="site-name"><a href="{{ .Site.BaseURL | relLangURL }}">{{ .Site.Title }}</a></h1>
|
<h1 class="site-name"><a href="{{ .Site.BaseURL | relLangURL }}">{{ .Site.Title }}</a></h1>
|
||||||
<h2 class="site-description">{{ .Site.Params.sidebar.subtitle }}</h2>
|
<h2 class="site-description">{{ .Site.Params.sidebar.subtitle }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{- with .Site.Menus.social -}}
|
|
||||||
<ol class="social-menu">
|
|
||||||
{{ range . }}
|
|
||||||
<li>
|
|
||||||
<a
|
|
||||||
href='{{ .URL }}'
|
|
||||||
{{ if eq (default true .Params.newTab) true }}target="_blank"{{ end }}
|
|
||||||
{{ with .Name }}title="{{ . }}"{{ end }}
|
|
||||||
>
|
|
||||||
{{ $icon := default "link" .Params.Icon }}
|
|
||||||
{{ with $icon }}
|
|
||||||
{{ partial "helper/icon" . }}
|
|
||||||
{{ end }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
</ol>
|
|
||||||
{{- end -}}
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
{{- with .Site.Menus.social -}}
|
||||||
|
<ol class="social-menu">
|
||||||
|
{{ range . }}
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href='{{ .URL }}'
|
||||||
|
{{ if eq (default true .Params.newTab) true }}target="_blank"{{ end }}
|
||||||
|
{{ with .Name }}title="{{ . }}"{{ end }}
|
||||||
|
>
|
||||||
|
{{ $icon := default "link" .Params.Icon }}
|
||||||
|
{{ with $icon }}
|
||||||
|
{{ partial "helper/icon" . }}
|
||||||
|
{{ end }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ol>
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
<ol class="menu" id="main-menu">
|
<ol class="menu" id="main-menu">
|
||||||
{{ $currentPage := . }}
|
{{ $currentPage := . }}
|
||||||
{{ range .Site.Menus.main }}
|
{{ range .Site.Menus.main }}
|
||||||
|
|
Loading…
Reference in a new issue