JSFiddle - React, Tailwind, and code Playground
by popsul
HTML
<body>
<layout orientation="vertical">
<header id="primary-header">Flexify Example</header>
<layout orientation="horizontal" expand="true">
<layout orientation="vertical" id="left-column">
<header id="select-header">Select Something</header>
<listview expand="true">
<item>French Polynesia</item>
<item>Spain</item>
<item>Dominica</item>
<item>Portugal</item>
<item>Martinique</item>
<item>Costa Rica</item>
<item>Egypt</item>
<item>Cape Verde</item>
<item>San Marino</item>
<item>Pitcairn Islands</item>
<item>Guam</item>
<item>Angola</item>
<item>Wallis and Futuna</item>
<item>Brazil</item>
<item>New Zealand</item>
<item>Brunei</item>
<item>Cocos (Keeling) Islands</item>
<item>Seychelles</item>
<item>Côte D'Ivoire (Ivory Coast)</item>
<item>Reunion</item>
<item>Benin</item>
<item>Korea, South</item>
<item>Mauritius</item>
<item>Poland</item>
<item>United Kingdom (Great Britain)</item>
<item>Montserrat</item>
<item>Central African Republic</item>
<item>Palestine, State of</item>
<item>Nepal</item>
<item>Saint Helena, Ascension and Tristan da Cunha</item>
<item>Morocco</item>
<item>Antarctica</item>
<item>South Georgia and The South Sandwich Islands</item>
<item>Nicaragua</item>
<item>Martinique</item>
<item>Korea, South</item>
<item>Morocco</item>
<item>Burundi</item>
<item>Spain</item>
<item>Saint...
CSS
/* flexify */
* {
padding: 0;
margin: 0;
overflow: hidden;
position: relative;
}
html, body {
height: 100%;
min-height: 100%;
}
body {
display: flex;
}
body > * {
flex-grow: 1;
}
layout {
display: flex;
flex-direction: row;
}
layout[orientation="vertical"],
layout[orientation="v"] {
flex-direction: column;
}
layout > * {
flex-grow: 1;
}
layout[offset="yes"] > *:not(layout),
layout[offset="true"] > *:not(layout),
layout[offset="y"] > *:not(layout),
layout[offset="1"] > *:not(layout) {
margin: 2px;
}
*[expand] {
flex-grow: 999999;
}
scrollview, listview {
display: block;
overflow: auto;
height: 0;
}
item {
display: block;
padding: 6px 8px;
border-top: 1px solid;
cursor: pointer;
}
item:first-child {
border: none;
}
/* app style */
* {
font: 13px/1.2 Helvetica, OpenSans, Arial, sans-serif;
color: #444;
}
body {
background: #99ffca;
}
p {
margin-bottom: 1.2em;
}
#primary-header {
font-weight: bold;
font-size: 24px;
padding: 8px 12px;
background: #fe9;
box-shadow: 0 1px 10px #a95;
z-index: 1;
}
#select-header, #main-header {
font-weight: bold;
font-size: 16px;
background: #ffbb96;
padding: 4px 2px;
box-shadow: inset 0 3px 10px #ca8;
}
#left-column {
border-right: 1px solid #a5d1ff;
min-width: 200px;
}
#main-content {
padding: 4px;
}