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 |