JSFiddle - React, Tailwind, and code Playground

by teleclimber

HTML

<div class="grid">
  <div class="col-2-3">
      <div class="component">
         <p>lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum yada yada...</p>
         <input type="button" value="go go gadget go" />
      </div> 
  </div>
  <div class="col-1-3">
    Sidebar
  </div>
</div>
<div id="feedback">...</div>

CSS

.grid {
    max-width: 900px;
    margin: 0 auto;
    
    --ratio: 1; 
}

[class*='col-'] {
  float: left;
}

.col-2-3 {
  width: 66.66%;
  --ratio: 0.6666;
}
.col-1-3 {
  width: 33.33%;
  --ratio: 0.3333;
}

.component {
    background-color: #eee;
    display: flex;
    align-items: flex-end;
}
.component P {
    flex-grow: 100;
}
.component INPUT {
    width: 200px;
}
/*@media all and ( max-col-width: 200px ) */
@media all and (max-width: 450px),
    all and (min-width: 600px) and (max-width: 675px) {
    .component {
        background-color: green;
        flex-direction: column;
    }
}

.bar {
    position: absolute;
    background-color: red;
    height: 10px;
    width: calc( var(--ratio) * 100vw );
    left: 0;
    top: 0;
}

@media all and (max-width: 600px) { 
    [class*='col-'] {
        float: none;
        width: 100%;
        --ratio: 1;
    }
}

#feedback {
    clear: both;
    border: 1px solid #ccc;
    padding: 5px;
}

JavaScript

window.addEventListener( 'resize', function() {
    document.getElementById( 'feedback' ).innerHTML = 'width: '+ document.documentElement.clientWidth+'px';
});