SCSS
by perenzo
HTML
<div class="app">
<div class="vstack sidebar">
<div class="-fit">Sidebar</div>
</div>
<div class="-sep"></div>
<div class="vstack middle">
<div>Search</div>
<div class="-sep"></div>
<div class="-scroll -grow list">
<div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
<div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</div>
<div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero...
SCSS
html, body {
height: 100%;
margin: 0;
}
body {
* {
box-sizing: border-box;
flex: none;
}
.app-mobile-fix { // Fixes scroll issues on iPhone
position: fixed;
width: 100%;
height: 100%;
}
.app {
height: 100%; // First child of body needs to have a fixed height of 100%
}
.app, .hstack, .vstack {
display: flex;
&, > * {
flex: none; // respects the size settings
overflow: hidden;
}
}
.app, .hstack {
flex-direction: row;
> .-sep {
width: 4px;
}
}
.vstack {
flex-direction: column;
> .-sep {
height: 4px;
}
}
.-grow {
flex: auto;
}
.-scroll {
overflow: auto;
}
.-sep {
background: red;
}
}
// Colors and withs
.app {
background: yellow;
}
.sidebar {
background: darkgrey;
width: 200px;
}
.middle {
background: lightcyan;
width: 200px;
}
.menu {
background: #e39d14;
}
.content {
background: white;
}
.info {
background: darkgrey;
width: 200px;
}
.list {
background: sandybrown;
}