The tab component is designed to work within the tab-group component. It creates individual tab items with optional icons and associated tab panel content using Shoelace web components (sl-tab and sl-tab-panel). All styling and JavaScript functionality is provided by the parent tab-group component.
Usage
{% embed 'dripyard_base:tab' with {
title: 'Tab Label',
icon: 'optional-icon-name'
} only %}
{% block tab_panel_content %}
<p>Content for this tab panel...</p>
{% endblock %}
{% endembed %}
CSS Custom Properties
The tab component inherits all CSS custom properties from its parent tab-group component:
• --tab-inactive-text-color - Text color when tab is not active
• --tab-inactive-icon-color - Icon color when tab is not active
• --tab-active-text-color - Text color when tab is active
• --tab-active-icon-color - Icon color when tab is active
• --tab-font-size - Font size for tab text
• --tab-font-weight - Font weight for tab text
• --tab-padding-block - Block padding for tab
• --tab-padding-inline - Inline padding for tab
Accessibility Considerations
• Tab navigation and accessibility features are handled by the parent tab-group component
• Each tab automatically receives proper ARIA attributes
• Tab panels are properly associated with their corresponding tabs
• Keyboard navigation is fully supported through the tab-group
Media/Container Queries
• Responsive behavior is managed by the parent tab-group component
• Icon sizing and positioning adapts based on tab-group configuration
Slots and Props
Props
| Property | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Tab label text |
icon |
string | No | Optional icon name to display with the tab |
Slots
| Slot | Description |
|---|---|
tab_panel_content |
Required content for the associated tab panel |