Skip to content
Harness Design System

ScrollArea

The ScrollArea component provides a UI element for creating scrollable areas with custom scrollbars. It includes various customization options.

Usage

import { ScrollArea } from '@harnessio/ui/components'
// ...
return (
<ScrollArea
className="h-64 w-64"
viewportClassName="custom-viewport"
>
<div className="p-4">
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
</div>
</ScrollArea>
)

Anatomy

The ScrollArea component can be used to create scrollable areas.

<ScrollArea className="h-64 w-64">
<div className="p-4">
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
<p>Scrollable content goes here.</p>
</div>
</ScrollArea>

API Reference

ScrollArea

The ScrollArea component serves as the main container for the scrollable area.

<ScrollArea
type="hover" // [Optional] Scrollbar visibility behavior ('auto' | 'always' | 'scroll' | 'hover')
dir="ltr" // [Optional] Reading direction ('ltr' | 'rtl')
scrollHideDelay={600} // [Optional] Delay before hiding scrollbar (in ms)
className="h-[300px] w-[400px]" // [Optional] Container dimensions and styles
viewportClassName="p-4" // [Optional] Viewport styles
scrollThumbClassName="bg-gray-400" // [Optional] Scroll thumb styles
asChild={false} // [Optional] Change the rendered element
>
{/* Scrollable content */}
</ScrollArea>
PropRequiredDefaultType
childrentrueReactNode
typefalse'hover''auto' | 'always' | 'scroll' | 'hover'
dirfalse'ltr' | 'rtl'
scrollHideDelayfalse600number
classNamefalsestring
viewportClassNamefalsestring
scrollThumbClassNamefalsestring
asChildfalseboolean