JSFiddle - React, Tailwind, and code Playground
HTML
<div id="content">
<div id="panel">
<div id="top"><span id="example-stuff1"></span></div>
<div id="bottom">
<div id="bottom-left">
<label>Label:</label>
<select>
<option>Option 1</option>
<option>Option 2 is a pretty long one</option>
<option>Option 3</option>
</select>
<label>Label:</label>
<input type="textbox" value="example">
</div>
<div id="bottom-right"><span id="example-stuff2"></span></div>
</div>
</div>
</div>
CSS
#bottom-left {
display: flex;
flex-wrap: wrap;
min-width: 0;
}
#bottom-left > label {
flex: 0 0 20%;
margin: 5px;
}
#bottom-left > select,
#bottom-left > input {
flex: 1 0 65%;
min-width: 0;
margin: 5px;
}
div {
border: 1px solid red;
}
#content, #panel, #bottom {
display: flex;
width: 300px; /* new */
}
#content, #panel {
flex-direction: column;
}
#content {
align-items: center;
}
#bottom-right {
flex-grow: 1;
}
/* Example placeholders for content of unknown size. */
span {
display: inline-block;
}
#example-stuff1 {
background: yellow;
width: 100%; /* adjusted */
height: 120px;
}
#example-stuff2 {
background: cyan;
width: 100px;
height: 10px;
}
JavaScript
var state = true;
window.setInterval(function () {
document.getElementById('example-stuff2').style.width = (state ? '10px' : '100px');
state = !state;
}, 2000);