JSFiddle - React, Tailwind, and code Playground

by saminath_krisna

HTML

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

SCSS

.fractionGridContainer {
  display: grid;
  grid-template-rows: 1fr 6fr 1fr;
  
  .topLabel {
    justify-self: center;
  }
  
  .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(6, 1fr);
    
    .marker {
      display: grid;
      padding: 5px 0px;
      border-left: 2px solid black;
      border-right: 2px solid black;
      grid-column: 1 / 7;
      
      .line {
        border: 1px solid black;
        align-self: center;
       }
    }
    
    .number {
      background-color: white;
      text-align: center;
      width: 30px;
      position: absolute;
      top: -25%;
      right: 48%;
    }
  }
  
  .centerGrid {
    border: 1px solid black;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    
    .gridElement {
      border: 1px solid black;
      padding: 10px 2px;
      text-align: center;
    }
    
    .filled {
        background-color: yellow;
      }
  }
  
  .bottomDiv {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    
    .marker {
      display: grid;
      border-left: 2px solid black;
      border-right: 2px solid black;
      grid-column: 1 / 5;
      
      .line {
        align-self: center;
        border: 1px solid black;
        align-self: center;
      }
    }
  }
}
  
  .bottomLabel {
    justify-self: center;
  }
}