JSFiddle - React, Tailwind, and code Playground
by Pasha Bosoy
HTML
<div class="plank-days">
<div class="days-row">
<div class="wrap-day">
<div class="day finished">
<span class="day-title">day</span>
<p class="day-number">1</p>
</div>
</div>
<div class="wrap-day">
<div class="day">
<span class="day-title">day</span>
<p class="day-number">2</p>
</div>
</div>
<div class="wrap-day">
<div class="day">
<span class="day-title">day</span>
<p class="day-number">3</p>
</div>
</div>
</div>
<div class="days-row">
<div class="wrap-day">
<div class="day">
<span class="day-title">day</span>
<p class="day-number">4</p>
</div>
</div>
<div class="wrap-day">
<div class="day">
<span class="day-title">day</span>
<p class="day-number">5</p>
</div>
</div>
<div class="wrap-day">
<div class="day">
<span class="day-title">day</span>
<p class="day-number">6</p>
</div>
</div>
</div>
<div class="days-row">
<div class="wrap-day">
<div class="day">
<span class="day-title">day</span>
<p class="day-number">7</p>
...
CSS
.plank-days{
padding: 50px 30px;
padding: 5rem 3rem;
}
.days-row{
display: flex;
}
.wrap-day{
display: flex;
justify-content: space-around;
width: 33.3333%;
overflow: hidden;
}
.days-row:nth-child(even){
flex-direction: row-reverse;
}
.days-row .day{
width: 60px;
width: 6rem;
height: 60px;
height: 6rem;
border: 1px solid #fff;
border-radius: 50%;
margin: 0 0 50px 0;
margin: 0 0 5rem 0;
position: relative;
display: flex;
align-items: center;
flex-direction: column;
color: #fff;
}
.days-row:last-child .day{
margin: 0;
}
.days-row .day-icon{
position: absolute;
top: 12px;
top: 1.2rem;
right: 10px;
right: 1rem;
}
.days-row .day-icon i{
display: none;
}
.days-row .day-icon i:first-child{
display: block;
}
.days-row .day.finished{
background-color: #9dfdc7;
color: #367591;
}
.days-row .day.finished .day-icon i:first-child{
display: none;
}
.days-row .day.finished .day-icon i{
display: block;
}
.days-row .day::before,
.days-row .day::after{
content: '';
position: absolute;
top: 0;
bottom: 0;
right: -100%;
margin: auto 0;
width: 100%;
height: 1px;
background-color: #fff;
}
.days-row .wrap-day:nth-child(2) .day::before{
left: auto;
right: -100%;
}
.days-row .wrap-day:nth-child(2) .day::after{
right: auto;
left: -100%;
}
.days-row .wrap-day:nth-child(3) .day::before{
right: auto;
left: -100%;
}
.days-row .wrap-day:nth-child(3) .day::after{
top: auto;
bottom: -100%;
right: 0;
left: 0;
margin: 0 auto;
width: 1px;
height: 100%;
}
.days-row:nth-child(even) .day::before,
.days-row:nth-child(even) .day::after{
right: auto;
left: -100%;
}
.days-row:nth-child(even) .wrap-day:nth-child(3) .day::before{
right: -100%;
left: auto;
}
.days-row:nth-child(even) .wrap-day:nth-child(3) .day::after{
top: auto;
bottom: -100%;
right: 0;
left:...