back to top

back to top

back to top

back to top

Fake Header

Fake Header

A fresh take on Pinteres't loading spinner, from concept to implementation

Role

Product Designer

Team

Gestalt Team

Motion Team

Year

2024

Tools

Role

Motion Designer

Team

Product Designer

Year

2024

Tools

Fake Header

Fake Header

Overview

Problem

In 2025, Pinterest launched a comprehensive Visual Refresh initiative, aimed at redefining the app’s visual language around three key qualities: Playful, Cozy, and Real. As part of this update, all system elements, including the Spinner, needed to be reimagined.

The previous spinner felt outdated and didn’t reflect the new brand principles. The challenge was to create a fresh, engaging, and visually appealing loading indicator that works consistently across iOS, Android, and Web, while seamlessly fitting into the updated visual language.

This project wasn’t just about a small animation, it was about bringing motion principles into practice, aligning cross-platform experiences, and shaping how waiting moments feel for millions of users.

My role

Concept & Visual Identity: Designed a new visual look for the spinner that reflected Pinterest’s refreshed style as playful, cozy, and real.

End-to-End Ownership: Drove the project from ideation to prototyping and alignment with designers. After this engineering collaboration and implementation.

Engineering collaboration: Worked closely with engineers to define technically feasible animations and ensure consistent behavior across iOS, Android, and Web.

Motion Specifications & Guidelines: Delivered comprehensive motion specs, usage documentation, and case descriptions for the design system.

Consistency & Cohesion: Ensured the spinner’s motion and visual style enhanced the overall user experience and aligned with the new Visual Refresh language.

Fake Header

Design process

Ideation

At the early stage, our team generated multiple explorations of what the new spinner could look like. We experimented with different shapes, scaling behaviors, easing curves, and timing variations to find the right balance between clarity and playfulness.


These explorations went through several iterations, where we tested how the spinner might feel in motion and discussed pros and cons in team reviews. Some ideas were discarded for being too complex, others felt distracting or inconsistent with the Visual Refresh direction.


After a few rounds of reviews and refinements, the final direction was chosen — the concept I designed. It captured the right level of liveliness, worked well across platforms, and aligned seamlessly with the goals of the Visual Refresh.

Explorations of the new spinner

Final Concept

After the final concept was selected, I expanded it into a full set of variations to cover different themes and use cases across the app.


Light Mode and Dark Mode adaptations ensured visual consistency and accessibility.

visual states of the new spinner

before & after - Spinner redesign

Use cases: The spinner was designed to work seamlessly across multiple scenarios, including:


Pull to Refresh
Infinite Scroll Loading
Text Field
Toast Notifications
Overlay Loading
Partial Page Loading

This stage was about ensuring that the spinner was not just a standalone animation, but a flexible system element that could adapt to different contexts and still feel cohesive within the Visual Refresh design language.

Use cases for the spinner

Use cases for the spinner

Motion Specifications

Once the final spinner design was approved, my next responsibility was to make sure the motion translated consistently across platforms. To achieve this, I created detailed motion specifications that described timing, easing, delays, and scale changes for every state. The final specifications were integrated into the Gestalt Design System, with visual references, technical specs, and guidelines for engineers. This made the spinner fully scalable across Pinterest

Motion Specifications

Motion Specifications

Motion specifications for the spinner

Motion specifications for the spinner

Engineering Collaboration

After finalizing the design and motion specs, the next step was to bring the spinner to life across platforms. This stage required close collaboration with engineers from Android, iOS, and Web teams.


Web: implemented natively, with the spinner integrated directly into the front-end codebase. I worked with engineers to make sure easing, timing, and scale matched the motion specs.

Android: built using a Lottie animation, ensuring smooth performance and consistency with the design system.

iOS: successfully implemented after multiple iterations and syncs with engineers, achieving the same level of quality and motion consistency as on other platforms.


Throughout this process, I regularly tested implementations, provided visual feedback, and compared builds with prototypes to ensure accuracy. The collaboration ensured the spinner works seamlessly across all platforms and use cases.

After finalizing the design and motion specs, the next step was to bring the spinner to life across platforms. This stage required close collaboration with engineers from Android, iOS, and Web teams.


Web: implemented natively, with the spinner integrated directly into the front-end codebase. I worked with engineer to make sure easing, timing, and scale matched the motion specs.


Android: built using a Lottie animation, ensuring smooth performance and consistency with the design system.


iOS: successfully implemented after multiple iterations and syncs with engineers, achieving the same level of quality and motion consistency as on other platforms.


Throughout this process, I regularly tested implementations, provided visual feedback, and compared builds with prototypes to ensure accuracy. The collaboration ensured the spinner works seamlessly across all platforms and use cases.

Results

The new spinner was successfully implemented on Android, iOS, and Web, delivering a fresh and playful motion experience consistent with the Visual Refresh. Its cross-platform implementation added a new level of consistency and reliability to the product, making the spinner a fully integrated component within the design system.

Results

The new spinner was successfully implemented on Android, iOS, and Web, delivering a fresh and playful motion experience consistent with the Visual Refresh. Its cross-platform implementation added a new level of consistency and reliability to the product, making the spinner a fully integrated component within the design system.

new Spinner in Production (iOS)

new Spinner in Production (iOS)

Desktop updates with new spinner

Desktop updates with new spinner

HOME FEED LOADING with new spinner

HOME FEED LOADING with new spinner

Learnings

This project taught me that even small UI elements, like a spinner, can involve complex design, iteration, and cross-platform collaboration.

I learned the importance of:


Iterating and refining ideas with design peers.
Building strong collaboration with engineers early in the process.
Documenting thoroughly so motion can scale across platforms.

The implementation process was not fast, but seeing the final spinner live and fully functional on all platforms was extremely rewarding —

a clear example of thoughtful design and careful execution.

Learnings

Check out some of my other projects

Check out some
of my other projects

Contacts

Contacts

Contacts

Contacts

Contacts