Nonflavored Prescription Medicine

    @material/tab-bar

    13.0.0 • Public • Published

    Tab Bar

    Tabs 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.

    Design & API Documentation

    Installation

    npm install @material/tab-bar
    

    Basic Usage

    HTML Structure

    <div class="mdc-tab-bar" role="tablist">
      <div class="mdc-tab-scroller">
        <div class="mdc-tab-scroller__scroll-area">
          <div class="mdc-tab-scroller__scroll-content">
            <button class="mdc-tab mdc-tab--active" role="tab" aria-selected="true" tabindex="0">
              <span class="mdc-tab__content">
                <span class="mdc-tab__icon material-icons" aria-hidden="true">favorite</span>
                <span class="mdc-tab__text-label">Favorites</span>
              </span>
              <span class="mdc-tab-indicator mdc-tab-indicator--active">
                <span class="mdc-tab-indicator__content mdc-tab-indicator__content--underline"></span>
              </span>
              <span class="mdc-tab__ripple"></span>
            </button>
          </div>
        </div>
      </div>
    </div>

    Styles

    @use "@material/tab-bar/mdc-tab-bar";
    @use "@material/tab-scroller/mdc-tab-scroller";
    @use "@material/tab-indicator/mdc-tab-indicator";
    @use "@material/tab/mdc-tab";

    JavaScript Instantiation

    import {MDCTabBar} from '@material/tab-bar';
    
    const tabBar = new MDCTabBar(document.querySelector('.mdc-tab-bar'));

    See Importing the JS component for more information on how to import JavaScript.

    Variants

    MDC Tab Bar does not have any variants; however, its subcomponents do. See the Tab Scroller, Tab, and Tab Indicator documentation for more information.

    Tab Icons

    We recommend using Material Icons from Google Fonts:

    <head>
      <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    </head>

    However, you can also use SVG, Font Awesome, or any other icon library you wish.

    Style Customization

    CSS Classes

    CSS Class Description
    mdc-tab-bar Mandatory.

    Sass Mixins

    To customize the width of the tab bar, use the following mixin.

    Mixin Description
    width($width) Customizes the width of the tab bar.
    density($density-scale) Sets density scale to default tab bar variant. Use stacked-density mixin for stacked variant. Supported density scales -4, -3, -2, -1 and 0.
    stacked-density($density-scale) Sets density scale to stacked tab bar variant. Supported density scales -4, -3, -2, -1 and 0.
    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.

    MDCTabBar Properties and Methods

    Property 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.

    Usage within Web Frameworks

    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.

    MDCTabBarAdapter

    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.

    MDCTabBarFoundation

    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.

    Install

    npm i @material/tab-bar

    DownloadsWeekly Downloads

    36,797

    Version

    13.0.0

    License

    MIT

    Unpacked Size

    568 kB

    Total Files

    36

    Last publish

    Collaborators

    • abhiomkar
    • azakus
    • bicknellr
    • material-admin
    • bwobrien
    • lynnjepsen
    • acdvorak
    • kfranqueiro
    • aprigogin
    • patrickrodee
    • bonniez
    • moog16
    • williamernest
    • aomarks
    • emarquez
    • allanchen
    • esgonzalez
    • asyncliz
    • candysonya
    • ssuarez
    • taylorv