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;
min-width: 50px;
min-height: 20px;
}
        `,
        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, 70px)',
                        type: 'string'
                    }
                ]
            },
            {
            	selector: '.item.selected',
              props: [
              	{
                	name: 'align-self',
                  value: 'stretch',
                  type: 'select',
                  hideTextValue: true,
                  options: [
                  	{value: 'stretch'},
                    {value: 'start'},
                    {value: 'end'},
                    {value: 'center'}
                  ]
                }
              ]
            }
        ]
    },
};



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...