JSFiddle - React, Tailwind, and code Playground

by saminath_krisna

HTML

<div class = "fractionGridContainer">
  <div class = "topLabel">1</div>
  <div class = "gridContainer">
    <div class = "topDiv">
      <div class = "marker">
        <div class = "line"></div>
      </div>
    </div>
    <div class = "centerGrid">
      <div class = "gridElement filled">  </div>
      <div class = "gridElement filled"></div>
      <div class = "gridElement filled"></div>
      <div class = "gridElement filled"></div>
      <div class = "gridElement filled"></div>
      <div class = "gridElement filled"></div>
      <div class = "gridElement filled"></div>
      <div class = "gridElement"></div>
      <div class = "gridElement"></div>
    </div>
    <div class = "bottomDiv">
      <div class = "marker">
        <div class = "line"></div>
      </div>
    </div>
  </div>
  <div class = "bottomLabel"></div>
</div>

SCSS

.fractionGridContainer {
  display: grid;
  grid-template-rows: 1fr 6fr 1fr;
  
  .topLabel {
    justify-self: center;
    border: 2px
  }
  
  .gridContainer {
    margin: 5px 20px;
    display: grid;
    grid-template-rows: 1fr repeat(1, 3fr) 1fr;
    grid-gap: 0.8em;
  
    .topDiv {
      display: grid;
      grid-template-columns: repeat(9, 1fr);
    
      .marker {
        display: grid;
        padding: 5px 0px;
        border-left: 2px solid black;
        border-right: 2px solid black;
        grid-column: 1 / 10;
      
        .line {
          border: 1px solid black;
          align-self: center;
         }
       }
    }
  
  .centerGrid {
    border: 1px solid black;
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    
    .gridElement {
      border: 1px solid black;
      padding: 10px 2px;
      text-align: center;
    }
    
    .filled {
        background-color: yellow;
      }
  }
  
  .bottomDiv {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    
    .marker {
      display: grid;
      border-left: 2px solid black;
      border-right: 2px solid black;
      grid-column: 1 / 8;
      
      .line {
        align-self: center;
        border: 1px solid black;
        align-self: center;
      }
    }
  }
}
  
  .bottomLabel {
    justify-self: center;
  }
}