Scroll Area
Augments native scroll functionality for custom, cross-browser styling.
PreviewSource
Tags
v1.2.0-beta.50
v1.2.0-beta.49
v1.2.0-beta.48
v1.2.0-beta.47
v1.2.0-beta.46
v1.2.0-beta.45
v1.2.0-beta.44
v1.2.0-beta.43
v1.2.0-beta.42
v1.2.0-beta.41
v1.2.0-beta.40
v1.2.0-beta.39
v1.2.0-beta.38
v1.2.0-beta.37
v1.2.0-beta.36
v1.2.0-beta.35
v1.2.0-beta.34
v1.2.0-beta.33
v1.2.0-beta.32
v1.2.0-beta.31
v1.2.0-beta.30
v1.2.0-beta.29
v1.2.0-beta.28
v1.2.0-beta.27
v1.2.0-beta.26
v1.2.0-beta.25
v1.2.0-beta.24
v1.2.0-beta.23
v1.2.0-beta.22
v1.2.0-beta.21
v1.2.0-beta.20
v1.2.0-beta.19
v1.2.0-beta.18
v1.2.0-beta.17
v1.2.0-beta.16
v1.2.0-beta.15
v1.2.0-beta.14
v1.2.0-beta.13
v1.2.0-beta.12
v1.2.0-beta.11
v1.2.0-beta.10
v1.2.0-beta.9
v1.2.0-beta.8
v1.2.0-beta.7
v1.2.0-beta.6
v1.2.0-beta.5
v1.2.0-beta.4
v1.2.0-beta.3
v1.2.0-beta.2
v1.2.0-beta.1
Example requirements
Also uses: Separator.
Installation
Complete the project setup first, including Tailwind CSS v4, theme tokens, and Preact compatibility aliases.
1. Install dependencies
bun add --exact cn@0.4.0 preact@11.0.0 tw-animate-css@1.4.02. Copy the component with degit
Run this from your project root. It selects scroll-area.tsx, its local dependencies, and both licenses directly from the repository, then copies them into src/components/ui.
bunx degit@3.10.0 https://github.com/LiasCode/shadcn-preact#main ./.cache/shadcn-preact/scroll-area --files LICENSE.md,registry/ui/lib/utils.ts,registry/ui/primitives/LICENSE,registry/ui/primitives/direction-provider/index.tsx,registry/ui/primitives/internals/direction-context.ts,registry/ui/primitives/internals/empty.ts,registry/ui/primitives/internals/getReactElementRef.ts,registry/ui/primitives/internals/getStateAttributesProps.ts,registry/ui/primitives/internals/mergeObjects.ts,registry/ui/primitives/internals/popups/getElementProps.ts,registry/ui/primitives/internals/resolveClassName.ts,registry/ui/primitives/internals/resolveStyle.ts,registry/ui/primitives/internals/types.ts,registry/ui/primitives/internals/useId.ts,registry/ui/primitives/internals/useIsoLayoutEffect.ts,registry/ui/primitives/internals/useMergedRefs.ts,registry/ui/primitives/internals/useRefWithInit.ts,registry/ui/primitives/internals/useRenderElement.ts,registry/ui/primitives/internals/useStableCallback.ts,registry/ui/primitives/merge-props/index.ts,registry/ui/primitives/scroll-area/index.ts,registry/ui/primitives/scroll-area/parts.tsx,registry/ui/scroll-area.tsx --force
mkdir -p ./src/components/ui
cp -R ./.cache/shadcn-preact/scroll-area/registry/ui/. ./src/components/ui/
cp ./.cache/shadcn-preact/scroll-area/LICENSE.md ./src/components/ui/LICENSE.mdThe temporary copy lives in .cache/shadcn-preact/scroll-area. Existing components stay in place; shared source files are updated from main.
Selected source files (22)
- lib/utils.ts
- primitives/LICENSE
- primitives/direction-provider/index.tsx
- primitives/internals/direction-context.ts
- primitives/internals/empty.ts
- primitives/internals/getReactElementRef.ts
- primitives/internals/getStateAttributesProps.ts
- primitives/internals/mergeObjects.ts
- primitives/internals/popups/getElementProps.ts
- primitives/internals/resolveClassName.ts
- primitives/internals/resolveStyle.ts
- primitives/internals/types.ts
- primitives/internals/useId.ts
- primitives/internals/useIsoLayoutEffect.ts
- primitives/internals/useMergedRefs.ts
- primitives/internals/useRefWithInit.ts
- primitives/internals/useRenderElement.ts
- primitives/internals/useStableCallback.ts
- primitives/merge-props/index.ts
- primitives/scroll-area/index.ts
- primitives/scroll-area/parts.tsx
- scroll-area.tsx
Usage
import { ScrollArea, ScrollBar } from "./components/ui/scroll-area"<ScrollArea className="h-[200px] w-[350px] rounded-md border p-4">
Your scrollable content here.
</ScrollArea>Examples
Reference
See the official Scroll Area documentation for composition patterns and API details. This page uses the Preact port and examples from the pinned upstream revision.
Component source