tabs-more-button is a lightweight library designed to enhance your tabbed interfaces by making them responsive. This package does not create or manage tabs, but it intelligently hides overflow tabs while ensuring that the active tab remains visible. Ideal for scenarios where space is limited
-
Responsive
-
Verticalsupport -
rtlsupport -
Flexible style
-
High performance
$ npm install tabs-more-button --save
or
$ yarn add tabs-more-button
If you need to directly include script in your html, use the following links :
<script src="https://unpkg.com/tabs-more-button@latest/dist/tabs-more-button.min.js"></script>html :
<div id="container">
<ul id="tablist" style="display:inline-flex;">
<li>Tab 0</li>
<li>Tab 1</li>
<li>Tab 2</li>
<li>Tab 3</li>
<li style="color:red;">Active Tab 4</li>
<li>Tab 5</li>
<li>Tab 6</li>
</ul>
<button id="view-more-button">more</button>
</div>js :
import tabsMoreButton from 'tabs-more-button';
const options = {
buttonElement: document.getElementById('view-more-button'),
containerElement: document.getElementById('container'),
tablistElement: document.getElementById('tablist'),
};
const instance = new tabsMoreButton(options);
let hiddenTabs = instance.resize(4 /*selectedTabIndex*/);
addEventListener('resize', () => {
hiddenTabs = instance.resize(4 /*selectedTabIndex*/);
});
document.getElementById('view-more-button').addEventListener('click', () => console.table(hiddenTabs));-
view morebutton is required to display the hidden tabs and should be next sibling element ofTablistelement -
tabsandview morebutton should be kept on same line -
Should not be any gap between
view morebutton andTablist
-
buttonElement
- type :
HtmlELement - description :
view morebutton
- type :
-
containerElement
- type :
HtmlELement - description : parent element of
view morebutton andTablistelement
- type :
-
tablistElement
- type :
HtmlELement - description : the
Tablistelement
- type :
-
tabDisplay?
- type :
string - description :
displayvalue for eachtabelement - default value :
inline-flex
- type :
-
containerDisplay?
- type :
"flex"|"block" - description :
displayvalue forcontainerElement - default value :
flex
- type :
-
resize
- type :
function - description : makes tabs responsive by hiding
overflow tabsexceptactive tab - arguments :
- selectedTabIndex :
- type :
Number - description : index of active tab element in the tablist element
- type :
- direction? :
- type :
"ltr" | "rtl" - description : direction value of
tablistelement - default value :
"ltr"
- type :
- isVertical? :
- type :
Boolean - description :
truemeanstablistelement is vertical - default value :
false
- type :
- selectedTabIndex :
- return :
- type :
Array<{ el: HTMLElement, index: Number }> - description : array of hidden tabs data
- type :
- type :
$ npm run test
MIT
