react-headless-tabs
Headless, simple, and highly flexible tab-like primitives built with react hooks.
Features
- ? Under 1KB minified and gzipped
- ? Bring your own DOM!
- ✨ Correctly handles dynamic tabs, no more empty tab panels!
- ?♂️ Well suited for complex use cases, like drag and drop!
Getting started
npm
npm install react-headless-tabs
API
const {
activeTab,
setActiveTab,
TabPanel,
} = useTabs(tabs, defaultTab?)
tabs: string[]
Strings representing the list of tabs, can be static or dynamic.
defaultTab?: string | null
The tab that should initially be selected (defaults to the first one)
Returns
TabPanel: Component
Renders lazily and stays mounted after it has rendered once
activeTab: string | null
The currently selected tab, can be null if there are no tabs or if defaultTab was initialized to null
setActiveTab: (tab: string | null) => void
Update the selected tab, or pass null to select none.