Layout & structure
IScrollArea
A scroll container with a thin, themed scrollbar in place of the platform's.
Only the bar is replaced. The viewport still scrolls natively, so wheel, trackpad, keyboard and touch behave as the platform intends.
Give the root a height. A scroll area with nothing constraining it has nothing to scroll.
Compared with IScrollFade
IScrollFade keeps the native scrollbar and fades the content edges instead. Use it when a scrollbar would be noise, and IScrollArea when the bar should be part of the design.
When the bars show
type decides. hover is the quietest and the default; always is the most discoverable; auto behaves like a native bar, appearing only when there is something to scroll; scroll shows them only while scrolling.
Both axes
Props
| Prop | Type | Default | Description |
|---|---|---|---|
type | 'auto' | 'always' | 'scroll' | 'hover' | 'hover' | When the bars show |
orientation | 'vertical' | 'horizontal' | 'both' | 'vertical' | Which axes get a bar |
size | 'sm' | 'md' | 'lg' | 'md' | Bar thickness |
scrollHideDelay | number | — | How long bars linger, for scroll and hover |
unstyled | boolean | — | Skip built-in classes |
ui | { root?, viewport?, scrollbar?, thumb?, corner? } | — | Per-slot class overrides |
Accessibility
The scrolling is native, so the keyboard scrolls the viewport, the content stays selectable, and a screen reader treats it as an ordinary scrollable region.