Responsive Sidebarmenu

This commit is contained in:
reverend 2020-08-16 10:30:55 +02:00
parent fb72b00456
commit 681cdad1cb
6 changed files with 146 additions and 5 deletions

View File

@ -7,6 +7,7 @@ $-logo-height: 45px;
height: 60px; height: 60px;
box-shadow: 0 0 2px $-light-brown; box-shadow: 0 0 2px $-light-brown;
grid-area: header; grid-area: header;
background-color: white;
&__Navigation{ &__Navigation{
flex-grow: 2; flex-grow: 2;
@ -59,3 +60,12 @@ $-logo-height: 45px;
width: 100%; width: 100%;
} }
} }
@media(max-width: $-viewport-toggle-sidebar){
.LP-Header{
padding-left: 40px;
width: calc(100% - 40px);
position: fixed;
z-index: 10;
}
}

View File

@ -1,5 +1,7 @@
<div class="LP-Wrapper__Site"> <div class="LP-Wrapper__Site">
{{> @header}} {{> @header}}
<input id="toggle_sidebar" class="LP-Menu__Trigger" type="checkbox"/>
<label id="toggle_sidebar_label" for="toggle_sidebar" class="LP-Menu__TriggerLabel"></label>
<aside class="LP-Main__Sidebar"> <aside class="LP-Main__Sidebar">
{{> @navigation modifier='--sidebar'}} {{> @navigation modifier='--sidebar'}}
</aside> </aside>

View File

@ -31,6 +31,8 @@ $-viewport-extra-small: 450px;
$-viewport-medium: 750px; $-viewport-medium: 750px;
$-viewport-normal: 1000px; $-viewport-normal: 1000px;
$-viewport-toggle-sidebar: $-viewport-small;
$-sidebar-width: 250px; $-sidebar-width: 250px;
html{ html{
@ -75,6 +77,11 @@ body{
} }
} }
@media(max-width: $-viewport-normal){
.LP-Wrapper__Site{
grid-template-columns: (0.75 * $-sidebar-width) 1fr;
}
}
@media(max-width: $-viewport-small){ @media(max-width: $-viewport-small){
.LP-Section{ .LP-Section{
@ -86,6 +93,69 @@ body{
} }
} }
} }
@media(max-width: $-viewport-toggle-sidebar){
.LP-Wrapper__Site{
grid-template-columns: 0 1fr;
}
@keyframes slide_out_siedebar{
from{left: -1 * $-sidebar-width;}
to{left: 0;}
}
@keyframes slide_in_siedebar{
from{left: 0;}
to{left: -1 * $-sidebar-width;}
}
.LP-Main__Sidebar{
grid-area:unset;
width: $-sidebar-width;
z-index: 15;
position: fixed;
left: -1 * $-sidebar-width - 1;
height: 100vh;
top: 60px;
border-right: 1px solid $-light-brown;
}
#toggle_sidebar:checked ~ .LP-Main__Sidebar{
animation-name: slide_out_siedebar;
animation-duration: .3s;
left: 0 ;
}
#toggle_sidebar ~ .LP-Main__Sidebar{
animation-name: slide_in_siedebar;
animation-duration: .3s;
}
.LP-Menu__Trigger{
display: none;
}
.LP-Menu__TriggerLabel{
z-index: 20;
height: 60px;
width: 60px;
background-image: url('/icons/hamburger_menu.svg');
background-repeat: no-repeat;
background-clip: content-box;
background-position: center;
position: fixed;
}
.LP-Menu__Trigger:checked ~ .LP-Menu__TriggerLabel{
background-color: invert($-grey);
filter: invert(1);
}
.LP-Main__Content{
margin-top: 60px;
}
}
@import '01_Atoms/atoms'; @import '01_Atoms/atoms';
@import '02_Molecules/molecules'; @import '02_Molecules/molecules';
@import '03_Organisms/organisms'; @import '03_Organisms/organisms';

View File

@ -0,0 +1 @@
<svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" width="30px" height="30px"><path d="M 3 7 A 1.0001 1.0001 0 1 0 3 9 L 27 9 A 1.0001 1.0001 0 1 0 27 7 L 3 7 z M 3 14 A 1.0001 1.0001 0 1 0 3 16 L 27 16 A 1.0001 1.0001 0 1 0 27 14 L 3 14 z M 3 21 A 1.0001 1.0001 0 1 0 3 23 L 27 23 A 1.0001 1.0001 0 1 0 27 21 L 3 21 z"/></svg>

After

Width:  |  Height:  |  Size: 351 B

View File

@ -41,6 +41,10 @@ body {
.LP-Section .LP-Headline { .LP-Section .LP-Headline {
margin-left: -25px; } margin-left: -25px; }
@media (max-width: 1000px) {
.LP-Wrapper__Site {
grid-template-columns: 187.5px 1fr; } }
@media (max-width: 650px) { @media (max-width: 650px) {
.LP-Section { .LP-Section {
padding-left: 0; padding-left: 0;
@ -48,6 +52,52 @@ body {
.LP-Section .LP-Headline { .LP-Section .LP-Headline {
margin: 0; } } margin: 0; } }
@media (max-width: 650px) {
.LP-Wrapper__Site {
grid-template-columns: 0 1fr; }
@keyframes slide_out_siedebar {
from {
left: -250px; }
to {
left: 0; } }
@keyframes slide_in_siedebar {
from {
left: 0; }
to {
left: -250px; } }
.LP-Main__Sidebar {
grid-area: unset;
width: 250px;
z-index: 15;
position: fixed;
left: -251px;
height: 100vh;
top: 60px;
border-right: 1px solid #C09F80; }
#toggle_sidebar:checked ~ .LP-Main__Sidebar {
animation-name: slide_out_siedebar;
animation-duration: .3s;
left: 0; }
#toggle_sidebar ~ .LP-Main__Sidebar {
animation-name: slide_in_siedebar;
animation-duration: .3s; }
.LP-Menu__Trigger {
display: none; }
.LP-Menu__TriggerLabel {
z-index: 20;
height: 60px;
width: 60px;
background-image: url("/icons/hamburger_menu.svg");
background-repeat: no-repeat;
background-clip: content-box;
background-position: center;
position: fixed; }
.LP-Menu__Trigger:checked ~ .LP-Menu__TriggerLabel {
background-color: darkgray;
filter: invert(1); }
.LP-Main__Content {
margin-top: 60px; } }
.LP-Link { .LP-Link {
color: #565656; color: #565656;
text-decoration: none; text-decoration: none;
@ -455,7 +505,8 @@ body {
justify-content: space-between; justify-content: space-between;
height: 60px; height: 60px;
box-shadow: 0 0 2px #C09F80; box-shadow: 0 0 2px #C09F80;
grid-area: header; } grid-area: header;
background-color: white; }
.LP-Header__Navigation { .LP-Header__Navigation {
flex-grow: 2; } flex-grow: 2; }
.LP-Header__Logo { .LP-Header__Logo {
@ -491,6 +542,13 @@ body {
.LP-Header__Navigation { .LP-Header__Navigation {
width: 100%; } } width: 100%; } }
@media (max-width: 650px) {
.LP-Header {
padding-left: 40px;
width: calc(100% - 40px);
position: fixed;
z-index: 10; } }
.LP-PlaceGrid .LP-PlaceGrid__Grid { .LP-PlaceGrid .LP-PlaceGrid__Grid {
margin: 0; margin: 0;
padding: 0; padding: 0;