The Material Components for the web tab bar component
npm install @limetech/mdc-tab-barTabs organize and allow navigation between groups of content that are related and at the same level of hierarchy.
The Tab Bar contains the Tab Scroller and Tab components.
```
npm install @limetech/mdc-tab-bar
`html`
`scss`
@import "@limetech/mdc-tab-bar/mdc-tab-bar";
@import "@limetech/mdc-tab-scroller/mdc-tab-scroller";
@import "@limetech/mdc-tab-indicator/mdc-tab-indicator";
@import "@limetech/mdc-tab/mdc-tab";
`js
import {MDCTabBar} from '@limetech/mdc-tab-bar';
const tabBar = new MDCTabBar(document.querySelector('.mdc-tab-bar'));
`
> See Importing the JS component for more information on how to import JavaScript.
MDC Tab Bar does not have any variants; however, its subcomponents do. See the Tab Scroller,
Tab, and Tab Indicator documentation for more information.
We recommend using Material Icons from Google Fonts:
`html`
However, you can also use SVG, Font Awesome, or any other icon library you wish.
CSS Class | Description
--- | ---
mdc-tab-bar | Mandatory.
To customize the width of the tab bar, use the following mixin.
Mixin | Description
--- | ---
mdc-tab-bar-width($width) | Customizes the width of the tab bar.mdc-tab-bar-density($density-scale) | Sets density scale to default tab bar variant. Use mdc-tab-bar-stacked-density mixin for stacked variant. Supported density scales -4, -3, -2, -1 and 0.mdc-tab-bar-stacked-density($density-scale) | Sets density scale to stacked tab bar variant. Supported density scales -4, -3, -2, -1 and 0.mdc-tab-bar-tab-scroller-transition($duration-ms, $timing-function) | Sets the CSS transition for the tab scrolling animation. This mixin is a proxy to mdc-tab-scroller-transition mixin.
Properties and MethodsProperty | Value Type | Description
--- | --- | ---
focusOnActivate | boolean (write-only) | Sets whether tabs focus themselves when activated. Defaults to true.useAutomaticActivation | boolean (write-only) | Sets how tabs activate in response to keyboard interaction. Automatic (true) activates as soon as a tab is focused with arrow keys; manual (false) activates only when the user presses space/enter. The default is automatic (true).
Method Signature | Description
--- | ---
activateTab(index: number) => void | Activates the tab at the given index.scrollIntoView(index: number) => void | Scrolls the tab at the given index into view.
Event Name | Event Data Structure | Description
--- | --- | ---
MDCTabBar:activated | {"detail": {"index": number}} | Emitted when a Tab is activated with the index of the activated Tab. Listen for this to update content when a Tab becomes active.
If you are using a JavaScript framework, such as React or Angular, you can create a Tab Bar for your framework. Depending on your needs, you can use the _Simple Approach: Wrapping MDC Web Vanilla Components_, or the _Advanced Approach: Using Foundations and Adapters_. Please follow the instructions here.
Method Signature | Description
--- | ---
scrollTo(scrollX: number) => void | Scrolls the Tab Scroller to the given position.incrementScroll(scrollXIncrement: number) => void | Increments the Tab Scroller by the given value.getScrollPosition() => number | Returns the scroll position of the Tab Scroller.getScrollContentWidth() => number | Returns the width of the Tab Scroller's scroll content element.getOffsetWidth() => number | Returns the offsetWidth of the root element.isRTL() => boolean | Returns if the text direction is RTL.setActiveTab(index: number) => void | Sets the tab at the given index to be activated.activateTabAtIndex(index: number, clientRect: ClientRect) => void | Activates the Tab at the given index with the given clientRect.deactivateTabAtIndex(index) => void | Deactivates the Tab at the given index.focusTabAtIndex(index: number) => void | Focuses the Tab at the given index.getTabIndicatorClientRectAtIndex(index: number) => ClientRect | Returns the client rect of the Tab at the given index.getTabDimensionsAtIndex(index) => MDCTabDimensions | Returns the dimensions of the Tab at the given index.getTabListLength() => number | Returns the number of child Tab components.getPreviousActiveTabIndex() => number | Returns the index of the previously active Tab.getFocusedTabIndex() => number | Returns the index of the focused Tab.getIndexOfTabById(id: string) => number | Returns the index of the given Tab ID.notifyTabActivated(index: number) => void | Emits the MDCTabBar:activated event.
Method Signature | Description
--- | ---
activateTab(index: number) => void | Activates the tab at the given index.setUseAutomaticActivation(useAutomaticActivation: boolean) => void | Sets how tabs activate in response to keyboard interaction. Automatic (true) activates as soon as a tab is focused with arrow keys; manual (false) activates only when the user presses space/enter.handleKeyDown(evt: Event) => void | Handles the logic for the "keydown" event.handleTabInteraction(evt: Event) => void | Handles the logic for the "MDCTab:interacted" event.scrollIntoView(index: number) => void` | Scrolls the Tab at the given index into view.