Scroll Animation

Smooth Scroll

smooth-scroll.tsx
Section 1
Section 2
Section 3
Section 4
Section 5
Section 6
Section 7
Section 8
Section 9
Section 10
Section 11
Section 12
Section 13
Section 14
Section 15
Section 16

Install

$ bunx --bun shadcn add @beui/smooth-scroll

API Reference

root?
boolean

Drive the page (window) when true, or a contained scroll area when false.

Defaulttrue
lerp?
number

Smoothing factor; lower is smoother and heavier.

Default0.1
duration?
number

Wheel / programmatic ease duration in seconds.

Default1.2
orientation?
"horizontal" | "vertical"
Defaultvertical
wheelMultiplier?
number

Wheel scroll speed multiplier.

Default1
touch?
boolean

Smooth touch scrolling. Off by default — native momentum is good on mobile.

Defaultfalse
className?
string
Default—

Scroll Progress

scroll-progress.tsx
Section 1
Section 2
Section 3
Section 4
Section 5
Section 6
Section 7
Section 8
Section 9
Section 10
Section 11
Section 12
Section 13
Section 14
Section 15
Section 16
Section 17
Section 18

Install

$ bunx --bun shadcn add @beui/scroll-progress

API Reference

variant?
"circle" | "bar"
Default—
position?
"bottom" | "top"
Default—
height?
number

Bar thickness in px.

Default—
fixed?
boolean

Position the bar with `fixed` (page) or `absolute` (embedded).

Default—
progress?
MotionValue<number>

Override the scroll source. Defaults to the page via useSmoothScroll.

Default—
spring?
boolean

Spring-smooth the value. Disabled automatically under reduced motion.

Default—
className?
string
Default—
size?
number

Diameter in px.

Default—
thickness?
number

Stroke width in px.

Default—

Parallax

parallax.tsx
Scroll down ↓
Parallax
↑ Scroll up

Install

$ bunx --bun shadcn add @beui/parallax

API Reference

speed?
number

Drift as a fraction of the element's travel through the viewport. Positive moves with the scroll (foreground), negative against it (background). ~0.1–0.5 reads best.

Default0.3
axis?
"x" | "y"
Defaulty
container?
RefObject<HTMLElement | null>

Scroll container for contained scroll areas. Defaults to the viewport.

Default—
spring?
boolean

Spring-smooth the drift. Disabled automatically under reduced motion.

Defaulttrue
className?
string
Default—

Scroll To

scroll-to.tsx
Intro
Features
Pricing
FAQ

Install

$ bunx --bun shadcn add @beui/scroll-to

API Reference

to
ScrollTarget

Where to scroll: px offset, selector string or element.

Default—
offset?
number

Extra px offset from the target (e.g. to clear a sticky header).

Default—
duration?
number

Override the ease duration in seconds.

Default—
className?
string
Default—

Scroll Reveal

scroll-reveal.tsx
Scroll ↓
Spring slide
Blur in
Staggered by delay
Reveal once
End

Install

$ bunx --bun shadcn add @beui/scroll-reveal

API Reference

y?
number

Slide distance in px before reveal.

Default16
blur?
number

Enter blur in px (kept ≤ 10 per motion conventions).

Default8
duration?
number

Reveal duration in seconds.

Default0.6
delay?
number
Default0
once?
boolean

Reveal only once (default) or every time it enters view.

Defaulttrue
amount?
number | "all" | "some"

Portion of the element that must be visible to trigger.

Default0.3
root?
RefObject<Element | null>

Scroll root for contained scroll areas. Defaults to the viewport.

Default—
className?
string
Default—

Updated