Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
Tab interface examples using tab-set with native details/summary. Progressive enhancement with ARIA roles and keyboard navigation.
The tabs component uses the <tab-set> web component built on native HTML <details> and <summary> elements with the name attribute for exclusive behavior. Progressive enhancement: tabs work without JavaScript.
Key features:
A simple horizontal tab interface. The name attribute groups the details elements for exclusive behavior.
<tab-set aria-label="Content tabs"> <details name="basic-tabs" open> <summary>Tab One</summary> <div> <p>Content for the first tab panel.</p> </div> </details> <details name="basic-tabs"> <summary>Tab Two</summary> <div> <p>Content for the second tab panel.</p> </div> </details> <details name="basic-tabs"> <summary>Tab Three</summary> <div> <p>Content for the third tab panel.</p> </div> </details></tab-set>
Add icons alongside tab labels for visual context. Use <icon-wc> inside the summary element.
<tab-set aria-label="Feature tabs"> <details name="icon-tabs" open> <summary> <icon-wc name="home" size="sm"></icon-wc> Home </summary> <div> <p>Main dashboard content goes here.</p> </div> </details> <details name="icon-tabs"> <summary> <icon-wc name="settings" size="sm"></icon-wc> Settings </summary> <div> <p>Configure your preferences.</p> </div> </details></tab-set>
Add data-orientation="vertical" for a sidebar-style tab layout.
<tab-set aria-label="Vertical tabs" data-orientation="vertical"> <details name="vertical-tabs" open> <summary>General</summary> <div> <p>General settings and preferences.</p> </div> </details> <details name="vertical-tabs"> <summary>Security</summary> <div> <p>Security and privacy options.</p> </div> </details> <details name="vertical-tabs"> <summary>Notifications</summary> <div> <p>Notification preferences.</p> </div> </details></tab-set>
The <tab-set> element accepts these attributes:
| Attribute | Values | Description |
|---|---|---|
aria-label |
String | Accessible label for the tab list. |
data-orientation |
horizontal vertical |
Tab layout direction. Default is horizontal. |
Each tab panel uses a <details> element:
| Attribute | Values | Description |
|---|---|---|
name |
String | Groups details elements for exclusive behavior (required). |
open |
Boolean (presence) | Sets the initially selected tab. |
name valueopen to one details element to set the default tabaria-label on the tab-set element<span class="badge"> inside summary for notification countsWeb component documentation
Accordion component