JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="tabs">
<li class="tabs-page">
<input type='radio' name='tab' id='tab-search' checked/>
<label for='tab-search'>Search</label>
<div class="content">
<h2>The search page</h2>
<p>Nam voluptates voluptatum aut etiam imperdiet. Dolores accusamus. Excepturi illum molestie imperdiet accusamus praesentium lacus temporibus diamlorem enim penatibus commodo.</p>
<p>Dis accusantium illum mauris cupidatat vehicula aspernatur cursus inceptos eiusmod commodi voluptatibus dictum! Exercitation egestas quas, debitis mollis facilisis commodi.</p>
</div>
</li>
<li class="tabs-page">
<input type='radio' name='tab' id='tab-post' />
<label for='tab-post'>Post</label>
<div class="content">
<h2>The post page</h2>
<p>Nam voluptates voluptatum aut etiam imperdiet. Dolores accusamus. Excepturi illum molestie imperdiet accusamus praesentium lacus temporibus diamlorem enim penatibus commodo.</p>
<p>Dis accusantium illum mauris cupidatat vehicula aspernatur cursus inceptos eiusmod commodi voluptatibus dictum! Exercitation egestas quas, debitis mollis facilisis commodi.</p>
</div>
</li>
</ul>
CSS
/* this is where the magic happens */
input[name='tab'] {
display: none;
}
input[name='tab'] ~ .content {
display: none;
}
input[name='tab']:checked ~ .content {
display: block;
}
/* the rest is just fancification, noth required */
input[name='tab']:checked ~ label {
background: #fff;
width: 90px;
border-right: transparent;
}
.content {
position: absolute;
left: 100px;
right: 0;
top: 0;
padding: 5px 10px;
border: 1px solid #ccc;
z-index: -1;
}
.tabs-page > label {
padding: 5px;
margin-bottom: 3px;
border: 1px solid #ccc;
background: #eee;
display: block;
width: 89px;
}
h2 {
font-size: 20px;
font-weight: bold;
}
.tabs {
position: relative;
margin: 10px;
}