Reference: Elevate Lookbook | Component: tab/component.rb
Standard horizontal tab navigation with underline indicator
This is the overview section with general information about the product.
<div class="tab-group">
<div class="tab-list" role="tablist" aria-label="Product information">
<button class="tab" role="tab" aria-selected="true"
aria-controls="panel-1" id="tab-1">
Overview
</button>
<button class="tab" role="tab" aria-selected="false"
aria-controls="panel-2" id="tab-2" tabindex="-1">
Features
</button>
</div>
<div class="tab-panels">
<div class="tab-panel" role="tabpanel"
id="panel-1" aria-labelledby="tab-1" aria-hidden="false">
Overview content...
</div>
<div class="tab-panel" role="tabpanel"
id="panel-2" aria-labelledby="tab-2" aria-hidden="true">
Features content...
</div>
</div>
</div>
Icons provide visual recognition and scan-ability
Update your personal information and preferences.
<button class="tab" role="tab" aria-selected="true"
aria-controls="panel-1" id="tab-1">
<svg class="tab-icon" viewBox="0 0 16 16" fill="currentColor">
<!-- icon path -->
</svg>
Profile
</button>
Tabs stretch to fill available width
Grid view with cards in a responsive grid layout.
<div class="tab-list tab-list--full-width" role="tablist">
<button class="tab" role="tab">Grid View</button>
<button class="tab" role="tab">List View</button>
<button class="tab" role="tab">Table View</button>
</div>
<button> for tab triggers (not links or divs)role="tablist" on container, role="tab" on buttons, role="tabpanel" on contentaria-label on tablist to describe the group| Tab Height | 40px |
| Horizontal Padding | 24px (0 24px 1px 24px for inactive state) |
| Icon-Label Gap | 4px |
| Inactive Text | var(--text-subtle) / #4c4b53 |
| Active Text | var(--text-primary) / #5746b2 (purple) |
| Active Indicator | 2px solid var(--text-primary) / #5746b2 |
| Tab List Border | 1px solid var(--border-medium) / #c7c6cd |
| Font | 14px/600 |
| Inactive Border | None (padding-bottom: 1px to compensate) |
| Hover/Active Border | 2px solid var(--text-primary) / #5746b2 (padding-bottom: 0) |
| Transition | 150ms ease on color and border |
| Panel Animation | 200ms fade-in on activation |