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
.container{
counter-reset: el-counter;
}
.item{
position: relative;
counter-increment: el-counter;
}
.item::after{
content: counter(el-counter);
position: absolute;
font-size: 18px;
font-weight: bold;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
JavaScript
window.twPlaygroundData = {
html: {
initial: `
<div class="container" >
<div class="item" ></div>
<div class="item selected" ></div>
<div class="item" ></div>
<div class="item" ></div>
<div class="item" ></div>
<div class="item" ></div>
</div>
`,
controllers: [
]
},
css: {
initial: `
.container{
border: 2px solid black;
background-color: #0265ad;
padding: 5px;
}
.item{
border: 2px solid black;
background-color: #a2cff0;
}
.item.selected{
background-color: #9c88dc;
}
`,
controllers: [
{
selector: '.container',
avoidHighlight: true,
props: [
{
name: 'display',
value: 'grid',
type: 'string'
},
{
name: 'grid-template-columns',
value: 'repeat(2, 1fr)',
type: 'string'
},
{
name: 'grid-template-rows',
value: 'repeat(3, 50px)',
type: 'string'
}
]
},
{
selector: '.item.selected',
props: [
{
name: 'grid-column-start',
value: '2',
type: 'range',
properties: [
{name: 'min', value: '1'},
{name: 'max', value: '2'},
{name: 'step', value: '1'},
]
},
{
name: 'grid-column-end',
value: '3',
type: 'range',
properties: [
{name: 'min', value: '2'},
{name: 'max', value: '3'},
{name: 'step', value: '1'},
...