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;
    }