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");