$side-padding:3em;
body, html{
position: relative;
width: 100%;
height:100%;
font-family: sans-serif;
font-style: normal;
margin:0;
padding:0;
}
body{
overflow:hidden;
}
#root{
display: flex;
flex-direction: column;
width: 100vw;
max-width: 1920px;
height:100vh;
// ? https://www.bram.us/2020/05/06/100vh-in-safari-on-ios/
@supports (-webkit-touch-callout: none) {
height: -webkit-fill-available;
}
margin:0 auto;
%layout-element{
width:100vw;
max-width: 1920px;
box-sizing:border-box;
}
header[role="banner"]{
z-index:10;
flex: 0 0 auto;
@extend %layout-element;
padding:1em $side-padding 1em $side-padding;
@media only screen and (max-width: $small-bp), (orientation: portrait) {
padding:1em $side-padding/2 0 $side-padding/2;
}
// iphone
@media only screen and (max-width: $iphone-bp), (orientation: portrait) {
padding:1em $side-padding/2 1em $side-padding/2;
}
}
section[role="main-content"]{
display: flex;
flex:1 1 auto;
@extend %layout-element;
overflow: hidden;
position: relative;
>.wrapper{
position: relative;
padding:0 $side-padding 0 $side-padding;
// height:100%; max-height:100%;
display: flex;
flex: 1;
overflow-y: hidden;
overflow-x: hidden;
>*{
@include fade-transition;
}
@media only screen and (max-width: $small-bp), (orientation: portrait) {
overflow-y: auto;
padding:0 $side-padding/2 0 $side-padding/2;
}
// iphone
@media only screen and (max-width: $iphone-bp), (orientation: portrait) {
// padding:0 $side-padding/4 0 $side-padding/4;
}
}
.main-content-layout{
position: relative;
// https://stackoverflow.com/a/33644245
display: flex;
flex: 1;
>section{
max-height: 100%;
}
>header,
>section>.wrapper,
>nav{
box-sizing: border-box;
max-height: 100%;
padding-top:$base-line;
}
>section>.wrapper,
>nav{
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
}
@media only screen and (max-width: $small-bp), (orientation: portrait) {
.main-content-layout{
display: flex;
flex-direction: column;
}
}
@media (orientation: portrait) {
.main-content-layout{
display: flex;
flex-direction: column;
flex-wrap: nowrap;
}
}
}
footer[role="tools"]{
flex:0 0 auto;
@extend %layout-element;
// padding-bottom: 1em;
// >*{
// padding:0.5em 1em;
// }
}
}