Pull to Refresh

New

Native-feeling pull-to-refresh container with drag resistance, threshold feedback and async refresh handling.

Updated

Pull to refresh

Activity

Pull down to check for updates

live

Motion review approved

4m

The pull request is ready to merge.

New component feedback

18m

The spring feels much closer to native now.

Registry checks passed

31m

All component files resolved successfully.

Preview deployed

1h

The latest build is ready to inspect.

Docs comment resolved

2h

The usage example now covers async refreshes.

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @beui/pull-to-refresh

API Reference

onRefresh
() => any

Runs after the user pulls beyond the threshold and releases.

refreshing?
boolean

Keeps the indicator active while an externally managed refresh runs.

false
disabled?
boolean
false
threshold?
number

Resisted pull distance in pixels required to refresh.

76
maxPull?
number

Maximum resisted pull distance in pixels.

132
holdDistance?
number

Content offset in pixels while refreshing.

68
pullingLabel?
any
Pull to refresh
releaseLabel?
any
Release to refresh
refreshingLabel?
any
Refreshing
ariaLabel?
string
Refreshable content
className?
string
contentClassName?
string
indicatorClassName?
string

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.