Navigation
Tabbed Navigation
A row of clickable tabs that swap the visible content panel below using a small script and active classes.
<div class="tabnav-wrap">
<div class="tabnav-list">
<button class="tabnav-tab tabnav-active" data-tab="overview">Overview</button>
<button class="tabnav-tab" data-tab="pricing">Pricing</button>
<button class="tabnav-tab" data-tab="reviews">Reviews</button>
</div>
<div class="tabnav-panels">
<div class="tabnav-panel tabnav-panel-active" data-panel="overview">This is the overview panel with a short summary of the product and what it does.</div>
<div class="tabnav-panel" data-panel="pricing">Pricing details would appear here, including the available plans and their costs.</div>
<div class="tabnav-panel" data-panel="reviews">Customer reviews and star ratings would be listed inside this panel.</div>
</div>
</div>
.tabnav-wrap {
box-sizing: border-box;
width: 340px;
background-color: #ffffff;
font-family: system-ui, -apple-system, sans-serif;
}
.tabnav-list {
display: flex;
gap: 4px;
border-bottom: 2px solid #e5e7eb;
}
.tabnav-tab {
background: none;
border: none;
padding: 10px 16px;
font-size: 14px;
font-weight: 600;
color: #6b7280;
cursor: pointer;
border-bottom: 2px solid transparent;
margin-bottom: -2px;
transition: color 0.2s ease, border-color 0.2s ease;
}
.tabnav-tab:hover {
color: #3b82f6;
}
.tabnav-active {
color: #3b82f6;
border-bottom-color: #3b82f6;
}
.tabnav-panel {
display: none;
padding: 18px 4px;
font-size: 13px;
line-height: 1.6;
color: #374151;
}
.tabnav-panel-active {
display: block;
}
var tabnavTabs = document.querySelectorAll('.tabnav-tab');
var tabnavPanels = document.querySelectorAll('.tabnav-panel');
tabnavTabs.forEach(function (tab) {
tab.addEventListener('click', function () {
tabnavTabs.forEach(function (t) { t.classList.remove('tabnav-active'); });
tabnavPanels.forEach(function (p) { p.classList.remove('tabnav-panel-active'); });
tab.classList.add('tabnav-active');
var name = tab.getAttribute('data-tab');
var panel = document.querySelector('.tabnav-panel[data-panel="' + name + '"]');
if (panel) { panel.classList.add('tabnav-panel-active'); }
});
});