Tabs JS Required
Tab navigation for organizing content into separate views with smooth switching animations. See JavaScript implementation →
Basic Tabs
Default tab navigation with underline indicator for the active tab.
Overview
This is the overview panel content. Use tabs to organize related information into separate views.
Profile
This is the profile panel content. Each panel can contain any HTML content.
Settings
This is the settings panel content. Tabs provide a clean way to organize complex interfaces.
Disabled
This panel cannot be accessed because the tab is disabled.
<div class="focus-tabs">
<div class="focus-tab-list" role="tablist">
<button class="focus-tab focus-tab-active" role="tab" data-tab="tab1">
<i class="fa fa-home"></i> Overview
</button>
<button class="focus-tab" role="tab" data-tab="tab2">
<i class="fa fa-user"></i> Profile
</button>
<button class="focus-tab" role="tab" data-tab="tab3">
<i class="fa fa-cog"></i> Settings
</button>
<button class="focus-tab" role="tab" data-tab="tab4" disabled>
<i class="fa fa-lock"></i> Disabled
</button>
</div>
<div class="focus-tab-panels">
<div class="focus-tab-panel focus-tab-panel-active" id="tab1">
<h3>Overview</h3>
<p>Panel content...</p>
</div>
<div class="focus-tab-panel" id="tab2">
<h3>Profile</h3>
<p>Panel content...</p>
</div>
<!-- More panels... -->
</div>
</div>
Pills Style
Pill-shaped tabs with filled background for the active state using .focus-tabs-pills.
Dashboard content with key metrics and charts.
Analytics content with detailed data analysis.
Reports content with generated documents.
Export content with download options.
<div class="focus-tabs focus-tabs-pills">
<div class="focus-tab-list" role="tablist">
<button class="focus-tab focus-tab-active" role="tab" data-tab="pill1">Dashboard</button>
<button class="focus-tab" role="tab" data-tab="pill2">Analytics</button>
<button class="focus-tab" role="tab" data-tab="pill3">Reports</button>
</div>
<div class="focus-tab-panels">
<div class="focus-tab-panel focus-tab-panel-active" id="pill1">...</div>
<div class="focus-tab-panel" id="pill2">...</div>
<div class="focus-tab-panel" id="pill3">...</div>
</div>
</div>
Boxed Style
Boxed tabs with card-like appearance using .focus-tabs-boxed.
Monthly statistics and data visualization.
Yearly statistics and trends.
All-time statistics and historical data.
<div class="focus-tabs focus-tabs-boxed">
<div class="focus-tab-list" role="tablist">
<button class="focus-tab focus-tab-active" role="tab" data-tab="box1">Month</button>
<button class="focus-tab" role="tab" data-tab="box2">Year</button>
<button class="focus-tab" role="tab" data-tab="box3">All Time</button>
</div>
<div class="focus-tab-panels">
<div class="focus-tab-panel focus-tab-panel-active" id="box1">...</div>
<div class="focus-tab-panel" id="box2">...</div>
<div class="focus-tab-panel" id="box3">...</div>
</div>
</div>
Vertical Tabs
Vertical layout with tabs on the left side using .focus-tabs-vertical.
Account Settings
Manage your account information, email, and password.
Notification Settings
Control your notification preferences and alerts.
Privacy Settings
Configure your privacy and security options.
Appearance Settings
Customize the look and feel of your interface.
<div class="focus-tabs focus-tabs-vertical">
<div class="focus-tab-list" role="tablist">
<button class="focus-tab focus-tab-active" role="tab" data-tab="vert1">
<i class="fa fa-user"></i> Account
</button>
<button class="focus-tab" role="tab" data-tab="vert2">
<i class="fa fa-bell"></i> Notifications
</button>
<!-- More tabs... -->
</div>
<div class="focus-tab-panels">
<div class="focus-tab-panel focus-tab-panel-active" id="vert1">...</div>
<div class="focus-tab-panel" id="vert2">...</div>
</div>
</div>
JavaScript
Tabs require JavaScript to handle switching between panels. This code works with the tab examples above.
// Initialize tabs
document.querySelectorAll('.focus-tabs').forEach(tabsContainer => {
const tabs = tabsContainer.querySelectorAll('.focus-tab');
const panels = tabsContainer.querySelectorAll('.focus-tab-panel');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
if (tab.disabled) return;
// Remove active class from all tabs and panels
tabs.forEach(t => t.classList.remove('focus-tab-active'));
panels.forEach(p => p.classList.remove('focus-tab-panel-active'));
// Add active class to clicked tab
tab.classList.add('focus-tab-active');
// Show corresponding panel
const targetPanel = tabsContainer.querySelector('#' + tab.dataset.tab);
if (targetPanel) {
targetPanel.classList.add('focus-tab-panel-active');
}
});
});
});
CSS Classes Reference
| Class | Description |
|---|---|
.focus-tabs |
Main container for tab component |
.focus-tab-list |
Container for tab buttons |
.focus-tab |
Individual tab button |
.focus-tab-active |
Active tab state |
.focus-tab-panels |
Container for tab panels |
.focus-tab-panel |
Individual tab panel |
.focus-tab-panel-active |
Active panel (visible) state |
.focus-tabs-pills |
Pills style variant |
.focus-tabs-boxed |
Boxed style variant |
.focus-tabs-vertical |
Vertical layout variant |