Skip to main content
InteractionLevel 2

Pull to Refresh

下拉刷新

MobileDifficulty: Medium

Pull down at the top of a list and release to reload the data.

01

Live Demo

Actually clickable

Press and drag down here

3 new updates
2 new photos
1 new comment
Press inside the content area and drag down (a mobile gesture). Notice the damping — it gets heavier the further you pull, and that's what makes it feel right.

What you just saw:Pulling down on a WeChat Moments feed or a mail app, and the spinning arrow that appears at the top of virtually every news app.

02

What it actually is

Pull to refresh replaces a refresh button with the physical intuition of "pull downward". Its biggest weakness is discoverability — users have to discover it by trying. So the majority of apps still keep a refresh button in the nav bar as a backup.

pull to refreshpull down refreshrefresh gesturepull to reloadoverscroll refresh
03

Anatomy · What it's made of

  1. Threshold触发阈值

    Roughly 64–80px

  2. Indicator指示器

    Arrow rotates into a spinner as you pull

  3. Refresh刷新中

    Locks the list and disables re-triggering

  4. Overscroll阻尼

    Gets heavier the further you pull, for physical feedback

04

When to Use

When it fits, and when it doesn't
Pull to Refresh usage recommendations
SituationUse it?
A mobile list whose content changes over timeYes
Content is ordered with "newest first" (feed, messages, news)Yes
Users actively want to updateYes
DesktopNo
There is little content and it all fits on one screenDepends

The feel of the gesture lives in the threshold (roughly 60–80px) and the damping factor — copying someone else's numbers will not feel right.

You must lock the list while refreshing so it cannot be pulled again, otherwise multiple refreshes fire.

05

Similar Patterns

Don't mix these up
06

How to tell AI

Three levels of prompt

Add the component name and specifics

Add pull to refresh to a list: pulling past 72px at the top triggers it, the indicator rotates with the pull progress, the list locks while refreshing, and it springs back and updates the content when done.

07

Don't just say this to AI

Bad → Better

Don't say this to AI

Pulling down refreshes.

Say this instead

Add Pull to Refresh: damp the touch displacement with a 0.5 factor, trigger past 72px and switch the indicator from an arrow to a spinner, lock the list with refreshLock while refreshing to prevent duplicate triggers, spring back on completion, and provide a separate explicit refresh button on desktop.

08

Share this card

Social-ready

Turn this pattern into a 3:4 or 1:1 knowledge card and export it as PNG right in the browser. No backend needed.