components / tabs
tabs.
tab-strip in a bordered pill or underline style. controlled selection with roving-tabindex arrow-key nav and ARIA, split into a headless useTabs hook.
things i've shipped.
installation
bunx @justin06lee/chrome@latest add tabsprops
| name | type | default | description |
|---|---|---|---|
| value * | T | - | |
| onValueChange * | (value: T) => void | - | |
| items * | TabItem<T>[] | - | { value, label, disabled? }[] |
| variant | 'pill' | 'underline' | 'pill' | visual style — bordered pill buttons, or a bottom-border bar where the active tab gets a 2px white underline. |
| loop | boolean | true | loop arrow-key focus past the ends. |