Scroll Area

A scrollable region with token-styled scrollbars. Built on the Radix UI Scroll Area primitive.

Holdings

AAPL

MSFT

GOOGL

AMZN

NVDA

META

TSLA

BRK.B

JPM

V

MA

UNH

JNJ

WMT

PG

XOM

HD

BAC

KO

PEP

Usage

import { ScrollArea, ScrollBar } from "@reva/ui";

ScrollArea automatically renders a vertical ScrollBar. To enable horizontal scrolling, render <ScrollBar orientation="horizontal" /> as a sibling inside ScrollArea. Use ScrollArea for bounded scrollable surfaces — its strongest case is horizontal scroll, where native scrollbars are inconsistent and undiscoverable. Don't wrap the document body or virtualised lists.

Composition

Use the following composition to build a ScrollArea:

ScrollArea
├── (scrollable content)
└── ScrollBar

ScrollBar is rendered automatically for the vertical axis. Add <ScrollBar orientation="horizontal" /> as a sibling when content overflows horizontally.

Examples

Horizontal

A row of asset-class cards inside a fixed-width ScrollArea with <ScrollBar orientation="horizontal" />. This is the strongest case for ScrollArea — native horizontal scrollbars are platform-inconsistent and undiscoverable on mobile.

42%

Equities

Public stocks

24%

Fixed Income

Bonds & treasuries

8%

Cash

Operating reserves

10%

Real Estate

REITs & private

7%

Alternatives

Hedge & PE funds

4%

Commodities

Metals & energy

3%

Private Equity

Direct stakes

2%

Crypto

Digital assets

Both axes

Render a ScrollArea with both a vertical and a horizontal ScrollBar for content that overflows on both axes (e.g. wide tables, long activity feeds).

2026-04-28

Brokerage · Joint

Wire transfer to private banking sweep account

+$240,000.00

2026-04-27

Retirement · IRA

Quarterly dividend reinvestment — Vanguard Total Stock Market

+$1,842.55

2026-04-26

Brokerage · Trust

Buy 1,200 shares Berkshire Hathaway B at limit $402.10

-$482,520.00

2026-04-25

Cash · Operating

Inbound ACH from Stripe payouts USD treasury

+$58,910.42

2026-04-24

Brokerage · Joint

Sell 800 shares Apple Inc at market

+$172,640.00

2026-04-23

Real Estate · LP fund

Capital call notice — Sequoia Real Estate Opportunities VII

-$125,000.00

2026-04-22

Cash · Reserve

Treasury bill rolled — 3-month, settled at par

+$2,000,000.00

2026-04-21

Retirement · 401k

Employer match deposit

+$3,200.00

Type

Use the type prop to control when the scrollbar is visible.

  • hover — default. Bar appears on hover or scroll. Best for desktop, low-discoverability content.
  • always — bar is always visible. Use when the affordance must be discoverable (command palettes, mobile horizontal rows).
  • scroll — bar fades in while scrolling, fades out when idle. Bridges hover and always.

hover

Default. Bar appears on hover or scroll.

Cash sweep

Brokerage

Retirement

Trust

529 plan

Donor-advised fund

Real estate

Private equity

Crypto

Hedge fund

always

Bar is always visible — use when discoverability matters.

Cash sweep

Brokerage

Retirement

Trust

529 plan

Donor-advised fund

Real estate

Private equity

Crypto

Hedge fund

scroll

Bar fades in while scrolling, fades out when idle.

Cash sweep

Brokerage

Retirement

Trust

529 plan

Donor-advised fund

Real estate

Private equity

Crypto

Hedge fund

Props

ScrollArea and ScrollBar forward props to the Radix primitives. See the Radix UI Scroll Area documentation for the full API.

ScrollArea

PropTypeDefaultDescription
type"auto" | "always" | "scroll" | "hover""hover"When the scrollbar is visible.
scrollHideDelaynumber600Delay in ms before the scrollbar hides when type="scroll" or "hover".
dir"ltr" | "rtl"inheritedReading direction.
asChildbooleanfalseRender the root via the child element.

ScrollBar

PropTypeDefaultDescription
orientation"horizontal" | "vertical""vertical"Axis the scrollbar controls. Add a horizontal ScrollBar as a sibling for horizontal scroll.
forceMountbooleanfalseForce render the scrollbar (useful for animation).

On this page