ScrollArea
Data DisplayCustom scrollbar overlay for any scrollable region.
Wraps Radix ScrollArea to provide consistent, thin scrollbars that match the design system. Supports vertical, horizontal, and both-axis scrolling.
Usage
import { ScrollArea } from "nosible-ux"
export default function Example() {
return (
<ScrollArea style={{ height: 200 }}>
Long scrollable content
</ScrollArea>
)
}Examples
Fixed height list
Accessibility
Scrollbar thumb has role="scrollbar" and aria-valuenow/min/max via Radix. Keyboard scrolling follows standard browser behavior.
Props
| Name | Type | Default | Description |
|---|---|---|---|
children | ReactNode | — | Content to scroll. |
className | string | undefined | — | Additional class applied to the root element. |
orientation | ScrollAreaOrientation | undefined | — | Which scroll axes to enable. Default: 'vertical'. |
scrollHideDelay | number | undefined | — | Delay in milliseconds before the scrollbar hides (used with type='hover' | 'scroll'). Default: 600. |
type | ScrollAreaType | undefined | — | Visibility mode for the scrollbar. - auto: visible when content overflows, hidden when not. - hover: visible on hover / touch. - always: always visible. - scroll: visible while scrolling, hidden after. Default: 'hover'. |
viewportClassName | string | undefined | — | Additional class applied to the viewport element. |