JSFiddle - React, Tailwind, and code Playground
by Abdul Ahmad
HTML
<div class='app'>
<div class='content-wrapper'>
<div class='left-side-utils'>
<div class='util-menu'>
</div>
</div>
<div class='right-side-content'>
<div class='text'>
</div>
<div class='input'>
</div>
</div>
</div>
</div>
SCSS
html, body {
height: 100%;
margin: 0;
overflow: hidden;
}
.app {
height: 100%;
box-sizing: border-box;
border: 1px solid red;
overflow-y: auto;
}
.content-wrapper {
margin: 0 auto;
width: 1000px;
min-height: 100%;
box-sizing: border-box;
display: flex;
}
.right-side-content {
flex-grow: 1;
flex-shrink: 1;
padding-left: 10px;
padding-top: 10px;
box-sizing: border-box;
display: flex;
flex-direction: column;
}
.left-side-utils {
position: sticky;
top: 0;
width: 150px;
height: calc(100vh - 2px);
box-sizing: border-box;
padding-top: 20px;
overflow-y: auto;
flex-grow: 0;
flex-shrink: 0;
}
.util-menu {
width: calc(100% - 20px);
min-height: 200px;
background: white;
border-radius: 10px;
box-sizing: border-box;
border: 1px solid #ddd;
margin-top: 10px;
&:first-child {
margin-top: 0;
}
}
.text {
box-sizing: border-box;
padding: 10px;
margin-bottom: 1px;
border: 1px solid teal;
flex-grow: 1;
flex-shrink: 1;
}
.input {
position: sticky;
bottom: 0;
height: 200px;
background: white;
border: 1px solid blue;
box-sizing: border-box;
flex-grow: 0;
flex-shrink: 0;
}