Tabs

Quick start guide and documentation

3-Minute Setup

1 Include Files

Required Files • HTML


    

                    

2 Create Your Tabs

Basic Tabs • HTML

Overview content...

Features content...

Support content...

✓ Done! Your tabs are now functional with keyboard navigation and screen reader support.

Quick Reference

Class/AttributePurpose
.tabs-displayWrapper for entire tab component
.tabsContainer for tab buttons
.tab-linkIndividual tab button
.tab-contentIndividual tab panel
data-tab="id"Unique identifier matching tab to panel
.activeCurrently visible tab/panel
role="tablist"ARIA role for tab container
role="tab"ARIA role for each tab
role="tabpanel"ARIA role for each content panel

Pro Tips

✨ Tip 1: Use data-tab values that match—the system connects tabs to panels automatically
✨ Tip 2: Tab navigation works with Tab/Shift+Tab keys for full keyboard accessibility
✨ Tip 3: Add icons using FontAwesome classes inside .tab-link elements
✨ Tip 4: Skip links are automatically added for keyboard users to jump past tabs

ADA Compliance Built-In

RSL Tabs are ADA-compliant by default:

  • ✅ Proper ARIA roles (tablist, tab, tabpanel)
  • ✅ Tab/Shift+Tab keyboard navigation
  • aria-selected and aria-hidden managed automatically
  • ✅ Skip links for keyboard-only users
  • ✅ Focus visible on active tab

FilterBus Integration

Tabs can subscribe to RSL's FilterBus for visibility filtering based on external filter controls. This is ideal for dashboard scenarios where filter buttons control which tab groups are displayed.

How It Works

  • Add data-filter-subscribe="key" to listen to a FilterBus channel
  • Add data-filter-value="value" to specify which filter value this tab group matches
  • Tab groups without data-filter-value always show
  • "All" filter value shows all tab groups (case-insensitive)

FilterBus Integration Attributes

AttributeTypeDescription
data-filter-subscribe String FilterBus key to subscribe to (e.g., "region", "category")
data-filter-value String Filter value(s) this tab group matches. Supports comma-separated values for multi-match (e.g., "North,South"). Tab groups without this attribute always show.

Example

FilterBus Tabs • HTML


North region overview...
North region details...

Events

EventDetailDescription
rsl-tabs:filterbus-update { state, meta, visible } Fired when tab group visibility changes due to FilterBus update

See It In Action: Visit the FilterBus Dashboard Demo to see tabs filtering alongside tables, charts, and other components.

Date Range Filtering

Tab groups can be filtered by date range when used with the Date Picker component. This is ideal for event listings, schedules, or any time-based content organized in tabs.

How It Works

  • Add data-date="YYYY-MM-DD" to the tab group with the event/content date
  • When a Date Picker publishes a range to FilterBus, tabs outside that range are hidden
  • Supports ISO (YYYY-MM-DD), US (MM/DD/YYYY), and European (DD.MM.YYYY) date formats
  • Works alongside visibility filtering (both can be used together)

Date Filtering Attributes

AttributeTypeDescription
data-date String Date associated with this tab group (e.g., "2025-12-15"). Tab hides when outside date picker range.

Example: Event Tabs with Date Filtering

Date-Filtered Event Tabs • HTML





Holiday Party - Dec 15, 2025
Special guests and activities...

Date Filter Events

EventDetailDescription
rsl-tabs:date-filter-update { state, meta, visible, tabDate } Fired when tab group visibility changes due to date range filter