https://framer.com/m/ScrollArea-DzzK.js
ScrollArea
ScrollArea gives long content its own scroll container and draws the scrollbars itself, so they can follow the theme instead of the operating system. The content below is this system’s own component notes, deliberately taller than the box.
Examples
Live specimens for every control the component exposes.
Default
Content taller than the box, with the scrollbar appearing on hover.
Scrollbar visibility
type decides when the bars are drawn: always keeps them, hover reveals them on pointer, auto shows them only when the content overflows.
type always
type hover
Axis
scrollbars limits which directions can move. Vertical is the common case; both allows a wide block to move sideways too.
scrollbars vertical
scrollbars both
Size
size steps the scrollbar thickness. Thin reads quieter; thick is easier to grab.
size 1
size 3
Radius
radius rounds the container, thumbRadius the bar itself. Square bars read more mechanical.
radius 0 · thumbRadius 0
radius 12 · thumbRadius 8
Props
The controls exposed on the instance panel.
Usage
Guidance carried over from the component definition.
Reach for ScrollArea
Long content should scroll inside the layout, not move the page.
The scrollbars need to match the theme rather than the OS.
Only one axis should be scrollable.
The bars should stay hidden until the pointer arrives.
Reach for something else
The native scrollbar is fine and needs no styling.
The content should have no scrollbars at all.
The whole page is what scrolls.
Io — UI Basics
Every box above is a live ScrollArea instance over the same block of notes. Colour, type and radius resolve from the project theme tokens.