Wayfinding
Tab Bar
The Tab Bar component is used to organize content into distinct views or panels, with each tab representing a different section of content. It allows users to quickly switch between views without navigating away from the page. Tab Bars are highly effective in dashboards, forms, profile pages, or any UI where content needs to be grouped by category or type.
🧭 When to Use a Tab Bar
Use a Tab Bar when:
Content is grouped by category or mode (e.g., “Overview”, “Activity”, “Settings”)
Switching tabs updates part of the view without changing the URL
You need a fast and clear way to toggle between sections
Avoid using Tab Bars for navigation across entirely different pages — use Top Nav or Sidebar Nav instead.
🧩 Tab Items
Tab Items are the interactive elements within a Tab Bar. Each item represents a panel or section and supports text, optional icons, and optional badges.
🎯 Tab Item States
Each Tab Item supports the following interaction statuses:
Default – Neutral, inactive tab
Hover – Visual cue like underline or color shift when hovered
Focus – Visible outline for keyboard navigation
Disabled – Muted appearance; not interactive
Selected – Active state; reflects the currently visible panel
Unselected – All other tabs not currently active
🎨 Types
Underline – Selected tab is marked with a colored underline
Filled – Selected tab has a filled background (pill-style or rectangle)
These types are determined at the Tab Bar level and apply to all items for consistency.
📏 Sizes
Medium (md) – Standard desktop/tab default
Large (lg) – Use in mobile, hero areas, or content with more visual emphasis
📐 Width Variants
Default Width – The tab size adapts to its content
Wide – Equal-width tabs that stretch across the Tab Bar; useful for 2–4 tab layouts or touch interfaces
These can be toggled per instance or set via layout tokens in Figma.
🧠 Modifiers
Badge Modifier
Tab Items can optionally display a Badge (e.g., for notifications, unread counts).
Use badges for emphasis: "Messages (3)", "Updates", "Requests (1)"
Badges are controlled through a layer property and can be shown or hidden as needed
Icon Modifier
Icons can be displayed to the left of the label.
Icons help reinforce meaning and are great for mobile UIs or condensed layouts
The icon layer can be toggled using a layer property
When hidden, spacing adjusts automatically to maintain layout consistency
🧩 Tab Bar (Composite Component)
The Tab Bar combines multiple Tab Items in a horizontal row. You can switch between:
Underline Tabs – Lightweight style using a simple underline for selection
Filled Tabs – Stronger visual focus with a background fill on selected tab
The Tab Bar supports:
Medium and large sizing
Default or wide widths
Scrollable vs fixed layouts
The ability to show/hide additional Tab Items via layer visibility (ideal for prototypes or variant previews)
This structure gives full control over responsive behaviors, spacing, and visibility.
♿ Accessibility Considerations
From a design perspective:
Ensure selected and focus states are clearly visible
Maintain a minimum 44px target size per tab for touch usability
Use visual contrast and hierarchy to indicate active tabs
From a code perspective (if implemented):
Use
role="tablist"
on the Tab BarUse
role="tab"
on each Tab ItemAdd
aria-selected="true"
to the selected tabLink each tab to its panel using
aria-controls
andid
Keyboard navigation should support Arrow Left/Right and Home/End
✅ Best Practices
Use short, scannable labels like “Overview”, “Activity”, “Files”
Avoid mixing visual styles (e.g., some tabs filled, others underlined) within the same bar
Only show badges when they offer real value—avoid notification fatigue
Collapse or scroll tabs gracefully on smaller screens; never wrap to multiple rows
Welcome Aboard
© Copyright 2024. All rights reserved.