JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://raw.githubusercontent.com/treinaweb/treinaweb-front-playground/standalone/tw-playground.min.css">
<div id="root" ></div>

CSS

.header{
  grid-area: header;
}
.sidenav{
  grid-area: sidenav;
}
.content{
  grid-area: content;
}
.footer{
  grid-area: footer;
}


.container{
  counter-reset: el-counter;
}
.item{
  position: relative;
  counter-increment: el-counter;
}
.item:nth-child(1)::after{content: "header";}
.item:nth-child(2)::after{content: "sidenav";}
.item:nth-child(3)::after{content: "content";}
.item:nth-child(4)::after{content: "footer";}

.item::after{
  position: absolute;
  font-size: 18px;
  font-weight: bold;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.tw-css-controller-container, .tw-input{
  width: 100%;
}

JavaScript

window.twPlaygroundData = {
    html: {
        initial: `
<div class="container" >
    <div class="item header" ></div>
    <div class="item sidenav" ></div>
    <div class="item content" ></div>
    <div class="item footer" ></div>
</div>
        `,
        controllers: [

        ]
    },
    css: {
        initial: `
.container{
border: 2px solid black;
background-color: #0265ad;
padding: 5px;
}
.item{
border: 2px solid black;
background-color: #a2cff0;
}
        `,
        controllers: [
            {
                selector: '.container',
                avoidHighlight: true,
                props: [
                    {
                        name: 'display',
                        value: 'grid',
                        type: 'string'
                    },
                    {
                    		name: 'grid-template-columns',
                        value: '30% 60%',
                        type: 'string'
                    },
                    {
                    		name: 'grid-template-rows',
                        value: '30px 80px 20px',
                        type: 'string'
                    },
                    {
                    		name: 'grid-template-areas',
                        value: '"header header" "sidenav content" "footer footer"',
                        type: "text",
                        hideTextValue: true
                    }
                ]
            }
        ]
    },
};



let u="https://raw.githubusercontent.com/treinaweb/treinaweb-front-playground/standalone/tw-playground.min.",a=(t,e)=>{fetch(u+e).then(t=>t.text()).then(e=>{let n=document,a=n.createElement(t);a.innerHTML=e,n.body.append(a)})};a("script","js"),a("style","css");