JSFiddle - React, Tailwind, and code Playground
by rikazavr
HTML
<div class="line">
<div class="row">
<div class="item">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis nulla sed velit rhoncus, ac convallis neque maximus.
</div>
<div class="item">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis nulla sed velit rhoncus, ac convallis neque maximus.
</div>
</div>
<!-- <div class="item">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis nulla sed velit rhoncus, ac convallis neque maximus.
</div>
<div class="item">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis nulla sed velit rhoncus, ac convallis neque maximus.
</div> -->
</div>
SCSS
.line {
width: 1px;
height: 100vh;
background-color: #c6c6c6;
position: relative;
left: 50%;
}
.row {
position: relative;
border: 1px solid;
}
.item {
position: absolute;
width: 350px;
margin-bottom: 30px;
}
.item:nth-child(odd) {
top: 0;
text-align: right;
left: -430px;
padding-right: 70px;
&:after {
content: '';
position: absolute;
left: 100%;
top: 50%;
margin-top: -10px;
width: 20px;
height: 20px;
background-color: #c6c6c6;
border-radius: 10px;
}
&:before {
content: '';
position: absolute;
right: 5px;
top: 50%;
margin-top: -27px;
width: 50px;
height: 50px;
border: 2px solid blue;
border-radius: 30px;
}
}
.item:nth-child(even) {
top: 100px;
left: 10px;
padding-left: 70px;
&:after {
content: '';
position: absolute;
right: 100%;
top: 50%;
margin-top: -10px;
width: 20px;
height: 20px;
background-color: #c6c6c6;
border-radius: 10px;
}
&:before {
content: '';
position: absolute;
left: 5px;
top: 50%;
margin-top: -27px;
width: 50px;
height: 50px;
border: 2px solid blue;
border-radius: 30px;
}
}