ScrollView
Atom
A scrollable container for content larger than its bounds: vertical by default, horizontal for a row.
Playground
Every control sets a real prop of ScrollViewProps. The JSX below updates as you go.
Web
iOS
Android
JSX · ScrollViewProps
Variants
1 examples from src/atoms/scroll-view/scroll-view.md, each rendered live from its own JSX.
Anatomy
1
Viewport
2
Content
Dimmed parts appear only in some states or variants.
Props
A React Native primitive, re-exported as is.
Accepts every React Native ScrollView prop unchanged. Canvas re-exports it so every component is built from the same primitive.
Accessibility and keyboard
Keyboard
Not focusable. It has no interaction of its own and takes the semantics of what it wraps.
Semantics
No role of its own in source; it reads as the content it renders.
From the docs
Unlike a plain View, a ScrollView lets its children exceed its size and scroll. Style the frame with style and the inner content with contentContainerStyle. In Chromium and Firefox a scroller with nothing focusable inside it is a keyboard stop of its own, so arrow keys can scroll it; the browser draws its focus ring in the theme's ring colour, 2 px off the frame, like every kit control.
Platform skins
The playground's props on each platform: same tree, native shapes, type and touch sizes.
Usage
Unlike a plain View, a ScrollView lets its children exceed its size and scroll. Style the frame with style and the inner content with contentContainerStyle. In Chromium and Firefox a scroller with nothing focusable inside it is a keyboard stop of its own, so arrow keys can scroll it; the browser draws its focus ring in the theme's ring colour, 2 px off the frame, like every kit control.
Tokens
Read from the playground render. Values follow the scheme and the ion hue.
--bg2
--fd
--fm
--ft
--ln
--sf3
--tx3