A React version of an MDC Tab Bar.
npm install @material/react-tab-bar
with Sass:
import '@material/react-tab-bar/index.scss';
import '@material/react-tab-scroller/index.scss';
import '@material/react-tab/index.scss';
import '@material/react-tab-indicator/index.scss';
with CSS:
import '@material/react-tab-bar/dist/tab-bar.css';
import '@material/react-tab-scroller/dist/tab-scroller.css';
import '@material/react-tab/dist/tab.css';
import '@material/react-tab-indicator/dist/tab-indicator.css';
import React from 'react';
import Tab from '@material/react-tab';
import TabBar from '@material/react-tab-bar';
class MyApp extends React.Component {
state = {activeIndex: 0};
handleActiveIndexUpdate = (activeIndex) => this.setState({activeIndex});
render() {
return (
<div>
<TabBar
activeIndex={this.state.activeIndex}
handleActiveIndexUpdate={this.handleActiveIndexUpdate}
>
<Tab>
<span className='mdc-tab__text-label'>One</span>
</Tab>
...
</TabBar>
</div>
);
}
}
NOTE: You can also use a custom tab component with the
TabBar
, but it must implement the methodsactivate
,deactivate
,focus
,computeIndicatorClientRect
, andcomputeDimensions
. SeeMDCTab
documentation for more details.
Prop Name | Type | Description |
---|---|---|
activeIndex | number | Index of the active tab. |
indexInView | number | Index of the tab to be scrolled into view. |
handleActiveIndexUpdate | Function(activeIndex: number) => void | Callback after the active index is updated. |
className | string | Classes to appear on className attribute of root element. |
isRtl | Boolean | Whether the direction of the tab bar is RTL. |
Sass mixins may be available to customize various aspects of the components. Please refer to the MDC Web repository for more information on what mixins are available, and how to use them.