Concept · Motion design · 2026

Google Pay Payment Animations

After you enter your UPI PIN, the bank can take one second or ten. I designed nine animations for that wait. They all start, loop and end the same way, so any of them could sit in the same app.

Try them yourself

A concept I started on my own. Not made with or for Google.

Concept
my own project
Motion and code
my role
About 1 week
start to finish
9
animations, one ending
01The problem

A payment isn't instant.

After you enter your PIN, the bank takes its time. Sometimes it's one second, sometimes ten. That wait is the most nervous part of paying. Most payment apps fill it with a spinner, which looks the same at second one and second ten and has nothing to do with paying.

What it had to do
Work for any wait
One second or ten, it should never run out or feel stuck.
End at any moment
When the bank answers, it turns into the tick without a jump.
Feel like Google
Google's colours, shapes and bounce, so it belongs in the app.
Share one ending
Every animation ends on the same tick and the same receipt.
The answer

Every animation has three parts: a start that grows out of the PIN dots, a loop that plays for as long as the bank needs, and an end that turns into the tick.

Timeline0.00s
PIN
Start
Loop
End
Receipt
Last digit
Bank says yes
Tick
Done
PIN

You type the last digit

Start

The dots come together

Loop

Waiting for the bank, however long it takes

End

Everything turns into the tick

Receipt

The payment details come in

UX law
Peak–End Rule

We remember an experience by its best moment and its last one, not the average. So the tick is built as the peak, and the receipt is a calm end.

UX law
Doherty Threshold

Anything that answers in under 0.4 s feels instant. The dots start moving 0.35 s after your last digit, long before the bank replies.

HOW IT FEELS ↑A SKETCH, NOT MEASUREDPINStartLoopEndReceipta plain spinner: the wait drags onmoves 0.35 s after your last digitPeak: the tickEnd: a calm receipt

Swipe the chart to see all of it →

02The system

Nine animations, one set of rules.

Before drawing anything, I fixed what every animation has in common. Those shared rules are why a kolam and a kaleidoscope can sit in the same app.

Four colours, never mixed
Google's blue, red, yellow and green. Each one stays pure. They sit side by side but never blend.
Google's own shapes
Material 3 shapes are designed to turn into each other, so I didn't have to draw a single in-between frame.
Things a payment touches
A coin, your card, your bank, the QR code you scan and a shield for safety. Each object only appears in one colour.
The objects

Each one is a step your money takes. I dropped the phone and a few colour combinations because they looked like clip art.

The coin
coin
Your card
card
Your bank
bank
The QR code
qr
Paid
coin
Safe
shield
The shared start
→
0.30sThe last PIN dot fills
→
0.82sThe dots come together in Google colours
→
1.12sOne dot drops to the middle
→
1.50sIt lands and the petals open
2.40sThe loop: petals breathe, the middle keeps changing

Six PIN dots are already on screen, so they become the animation. Nothing new has to appear.

The shared end
→
WaitingA shape, halfway through a change
→
+0.25sIt rounds off into a circle
→
+0.45sBlue fills it from the middle
→
+0.70sThe tick draws in two strokes
+1.35sA ripple, then it moves up for the receipt

The bank can answer at any moment, even halfway through a change. So the end never waits for the loop to finish. The shape rounds off into a circle, the circle fills blue, and the tick draws.

All nine, standing still
Bloom
Mosaic
Morph
Rings
Ribbons
Kolam
Kaleidoscope
Movies
Shopping bag

A frame from the middle of each loop. They had to look right even when nothing moves.

03Motion rules

One spring for everything.

Every shape change, landing and pop uses the same spring from Material 3. It goes a little past where it's headed, then settles back. That small overshoot gives things weight. Using it everywhere is why nine different ideas feel like one app.

WHERE IT STOPS0TIME →goes a little past, then settlesA normal easeThe M3 spring

Swipe the chart to see all of it →

The shape is the loader.

No spinner needed
A shape that keeps changing already tells you something is happening. No words needed.
Soft and sharp
Round shapes and spiky shapes take turns while it loops. That gives it a rhythm. Everything ends on a circle.
How one shape turns into another

Every shape is a ring of lines drawn out from its centre. To change shape, each line grows or shrinks to its new length, and the whole thing turns a quarter on the way.

CookiePentagon
CookiePentagonNow
The nine · Bloom, Mosaic, Morph

Three ways to wait.

Bloom

A flower opening is a calm way to say “hold on”.

UX law
Aesthetic-Usability Effect

We're more patient with things that look good. A calm, pretty wait feels shorter.

Mosaic

A payment touches many things. The grid shows them all at once.

UX law
Law of Common Fate

Things that move together look like one thing. The wave makes twelve tiles feel like one change.

Morph

It tells your money's story: coin, card, bank, QR code, shield.

UX law
Goal-Gradient Effect

We feel better when we can see progress. Each object feels like a step closer to done.

How a change moves across the grid
→
3.6sTiles at rest
→
4.0sThe wave starts top left
→
4.3sIt crosses the middle
→
4.7sThe far corner turns
5.3sEvery tile has changed

Each tile waits a little longer the further it is from the top left corner. So one change rolls across the grid like a wave, instead of twelve things happening at once.

The nine · Rings, Ribbons

Colour that never mixes.

The simplest ideas here: just the four Google colours, moving. They say Google before you read a single word. Where two ribbons cross, a thin white gap shows which one is on top.

UX law
Jakob's Law

People expect things to work like what they already know. A spinning ring already means “loading”, so nobody has to learn it.

Rings

Rings of arcs, with one ring cycling through all four colours

Ribbons

Four ribbons weave together and settle into a ring

The nine · Kolam

One unbroken line through a grid of dots.

UPI is Indian. Every morning, kolams are drawn at Indian doorsteps to welcome people in, with one line that never lifts. Here, that line is the payment. It weaves while the bank thinks, and at the end it pulls in to become the tick.

Kolam

Google colours travel along the thread

UX law
Zeigarnik Effect

We keep watching things that aren't finished. The line is always about to close, so your eyes stay on it instead of the clock.

The only rule
Cross over
Turn back

At every gap between two dots, the line either crosses over or turns back.

But most patterns fall apart
3 separate loops
One line. A kolam.

Choose at random and the line usually breaks into separate loops. Only about 1 in 8 patterns joins up into one line, so the code keeps trying until it finds one. That happens before the animation starts.

From weave to tick
→
StartThe PIN dot lands and the dots spread out
→
WeaveOne line that never lifts
→
ClosedThe line meets its own start
→
Pull inIt pulls in from one end
TickThe same line becomes the tick
The nine · Kaleidoscope

One slice, twelve mirrors.

A kaleidoscope never looks the same twice, so the wait never feels repetitive. It works like the real thing. I draw one thin slice, then copy it twelve times around the centre, flipping every other copy.

Glow

Bright M3 shapes on a night sky

Six styles
Six styles, from ten
It started as glowing M3 shapes on a night sky. Then I brought in Indian festivals and art: diyas for Diwali, rangoli flowers, peacock feathers.
UX law
Von Restorff Effect

We remember the thing that stands out. A payment that opens into a kaleidoscope is hard to forget.

Open, flow, close
→
1.30sThe PIN dot opens the kaleidoscope
→
1.55sThe mirrors fan out
→
2.40sShapes flow out from the middle
→
+0.50sEverything spirals in
+0.90sThe middle becomes the tick
The nine · Movies, Shopping bag

Small physical stories.

Little scenes that show what you paid for, built from a kit of simple blue shapes. Popcorn for a movie ticket, a bag for shopping. Each has a bit of real physics in it, and both end on the same tick.

Movies

Popcorn pops, the tub squashes, the pile bubbles

Shopping bag

Something drops in, the cloth bounces, the tag swings

TUB8 FALL BACK INTO THE TUB · 2 BOUNCE ONTO THE FLOOR
Movies: the path of each popcorn kernel. Most drop back into the pile. A few fly out, bounce and settle on the floor.
0s0.5s1s1.5s2sITEM LANDSBag squash: a quick bounceTag swing: a slower sway
Shopping bag: when something lands, the cloth bounces fast and settles. The tag keeps swinging a little longer.
Two kept, from twelve
I made one for each kind of payment and kept two. The bag was redrawn from scratch to feel like real cloth, with a tag that swings and the banana tucked inside.
UX law
Mental Model

It matches the picture already in your head. You see popcorn and you know it was the movie tickets.

04Try it

Try them yourself.

Pick an animation, then decide how slow the bank is today.

Pick an animation
The bank takes

Even a one second answer lets the start finish first. Use Loop under the phone to keep the bank waiting, then turn it off to let it answer.

05How it's built

Drawn in code.

There are no video or image files here. Each animation is drawn live, frame by frame, the same way on every phone on this page.

0
image or video files
Under 60 KB
of code for all nine, zipped
1
thing the app has to tell it
One clock
Each animation works out what to draw from the time alone. So it can pause, rewind or jump to any moment. The frame strips on this page are made that way.
One signal
The app only has to say when the bank answers. The animation finishes its move and becomes the tick.
For the engineer
// on every frame
kolam.draw(canvas, time, answeredAt)

// answeredAt stays empty while the bank thinks.
// Set it, and the loop turns into the tick.

Made with Claude Opus 5.5.

My motion skills

What I know about timing, springs and colour, written down once as instructions Claude follows.

Claude Opus 5.5

Takes an idea and builds it to that standard, straight away.

Me

I pick the ideas, cut most of them, and keep pushing the good ones until they feel right.

Every animation here was built with Claude Opus 5.5, using a set of motion skills I wrote for it. Because the skills already knew my standards, the first versions came out close to right. I spent my time on direction and taste, not on drawing. That's how nine of them came together in about a week.

Less time drawing. More time deciding.

06Challenges

What went wrong first.

01 · Rings and Ribbons
The colours went muddy.

The first versions blended one colour into the next. Blue into yellow turned a dull green, and it stopped looking like Google.

The fix: one rule. Colours never blend.

Before: blue and yellow blur into a muddy green
Now: each colour stays pure
02 · Bloom, Mosaic, Morph
The shapes meant nothing.

The motion worked from the first try. But plain shapes said nothing about money, so the animation felt empty.

The fix: same motion, better things. The shapes became what a payment touches.

First try
Now
03 · Kolam
The kolam wouldn't close.

A kolam is one line that ends where it began. My first grids never closed into one line, however many times I tried.

The fix: I tested thousands of patterns to find which grids can close. It only uses those now.

How the ideas came, in order
  1. 01
    The PIN dots

    Six dots are already on screen. What if they became the animation?

  2. 02
    M3 shapes

    Material 3 shapes morph into each other, so they became the first loaders.

  3. 03
    Payment objects

    The shapes felt empty. Coins, cards and banks felt like money.

  4. 04
    Pure colour

    Blended colours went muddy. Now they never mix.

  5. 05
    Indian roots

    UPI is Indian, so I looked to kolams and festivals.

  6. 06
    Real physics

    Small scenes where things squash, bounce and swing.

Made vs kept
Big ideas
8 of 14
Kaleidoscope styles
6 of 10
Category scenes
2 of 12
Objects drawn
5 of 17
Why things got cut
Didn't feel like GoogleGoogle already had itLooked like clip artColours went muddy
07Results

Did it work?

This is a concept, so there are no numbers from real payments. Here is what I can show: the four goals from the start, checked one by one.

  • Work for any waitThe loop has no set length. Try 1 s and 10 s in the playground.
  • End at any momentTurn Loop off whenever you like. Whatever is on screen rounds into the tick.
  • Feel like GoogleThis one is my call, not a measurement. I kept to four colours and Material 3 shapes, and cut what drifted.
  • Share one endingAll nine do.
One of them, posted on LinkedIn
17,019
impressions
224
likes
22
saves
16
comments
What I'd do next
Festival versions
Diwali, Onam and Uttarayan, each built on the same start, loop and end.
One for each kind of payment
Food, travel and fuel, to go with movies and shopping.
Test the wait with people
Show a spinner and one of these for the same wait, and ask which one felt shorter.

Looking back, one timeline, one spring and one ending are what held it together. The hardest part was choosing. I made a lot more than what you see here and cut most of it, because it either didn't feel like Google or wasn't new.

Let's Collaborate

Have an idea?
Let's build it.

From zero to one, or scaling to millions. Let's build products that are visually stunning and technically robust.

Start a Project