- 
                Notifications
    You must be signed in to change notification settings 
- Fork 156
Tabbar Specification (Old)
igx-tab-bar component is used to organize or switch between similar data sets. It should be wrapper component for igx-tab-panel and igx-tab that will represent respectively the container of the data and the interactable tab.
<igx-tab-bar alignment="bottom">
	<igx-tab-panel label="Tab 1">
		<h1>Tab 1 Content</h1>
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
	</igx-tab-panel>
	<igx-tab-panel label="Tab 2">
    	<h1>Tab 2 Content</h1>
    	<p>Lorem ipsum dolor sit amet...</p>
	</igx-tab-panel>
</igx-tab-bar>
igx-tab-bar should follow the mobile-first approach and should be suitable for hybrid applications. Its
igx-tab-panel should be associated with particular igx-tab and the tabbar should synchronize their states. The tabbar definition should be achieved by a minimum code.
As a developer I want to:
- add multiple (2-5) tabs/panels in the tabbar
- identify each Tab with:
• Label. Tab Bar label should fit on a single line. If the text is longer than it wraps to a second line before it’s truncated • Icon • Label and icon (label is one line only)
As a end user, I want to:
- 
navigate between the Tabs upon tap/click gesture. 
- 
customize the tab through one of the following ways: 
- 
by label 
- 
by icon 
- 
by both 
- 
track the state of the tab/panel. Whether it is selected or updated 
- 
be notified upon Tab updates with a badge component 
- 
navigate between Tabs upon swipe gesture. 
- The tabbar should calculate its layout only by itself.
- The developer should be able to determine the alignment of the tab list.
- The developer should be able to determines whether the tab is disabled.
- The developer should be able to customize the tab by icon and label.
- The developer should be able to set random HTML content in a panel.
- The end user should be able to select a tab/panel.
- The tabs and respective panels should synchronize their states: selected/disabled/updated.
- Updates in panels should be indicated on the respective tab as a badge.
- Navigation \ Swipe gesture - I want to navigate between Tabs upon swipe gesture.
- It should be able to add multiple (2-5) tabs.
- Layout - each tab's width equals the available width divided by the number of Tabs applied. Developers can define 2 to 5 Tabs. The tabbar should calculate the dimensions by itself.
- Synchronization - It should be able to define states of the tabs:
- selected / deselected,
- enabled / disabled,
- updated / not updated.
 
- Tabbar should provided its current selected tab and its index.
- Badge placed into tab should display the counter of the changes, happened in relative panel.
- The component should be hidden/shown as the main content is scrolled.
- As a developer I want to automatically scroll to the top of the content on tap on a selected Tab.
Properties
- 
selectedIndex- The index of the selected tab.
- 
selectedTab- The last selected tab.
- 
icon- Defines the icon of a tab
- 
label- Defines the label of a tab
Methods
- 
Select- Selects tab/panel and make them active/visualized/displayed
- 
HideOnScroll- Hides the tabbar when the main content is scrolled.
Events
- 
OnSelect- When tab is selected.
- 
OnDeselect- When tab is deselected.
- Roles:
- Tabbar will need tablistrole.
- Panel content area will need the tabpanelrole.
- Tabs will need the tabrole.
 
- Tabbar will need 
- Attributes:
- Include aria-controlsto link each tab to its tabpanel.
- Maintain aria-selectedstate between tabs and tab contents.
 
- Include