Branded Spinner
A branded spinner is the custom motion treatment that adds your product's unique personality to short duration loading states. It replaces the generic rotating circle with a gradient sweep, a pulsing orb, a shimmering bar or any other micro animation built from your exact design tokens. The key is that it never operates in isolation. It always augments one of the four foundational loading patterns. Those foundations include the skeleton screen that mirrors the final layout down to the pixel so users can start parsing structure before content loads. The optimistic UI pattern that commits user actions locally before the server responds so the interface feels instant. The streaming partial that delivers usable chunks of content as they become available turning the wait into consumption. And progress as content where the loading state itself is the deploy log or reasoning trace the user actively reads. The branded spinner sits on top of these solid structures and delivers the brand impression during the wait. Linear designed theirs as a subtle scale and opacity pulse that uses their signature green accent and lasts less than 300 milliseconds during transitions. Stripe built a shimmering highlight that moves across their pay buttons using the exact purple to blue gradient from their logo. The motion uses cubic bezier curves pulled from their motion system so it feels consistent with every other interaction. This layer turns the loading state from a necessary evil into a brand touchpoint that reinforces trust. Because when users wait they form opinions about how your team handles pressure. A well designed branded spinner signals care and competence.
It is not a generic CSS animation with your primary color swapped in. It is not the pale spinner on a blank white screen that ships when teams run out of design time before launch. That pattern from 2012 stylesheets tells users the product got busy and left them hanging. A branded spinner is also not a replacement for real loading architecture. Teams that throw a fancy animation on top of an unpredictable layout or a long running task without status updates create frustration wrapped in pretty packaging. It is not the primary feedback mechanism for waits over one second. Without skeleton shapes or streaming content the spinner leaves users staring at nothing while they wonder if the request died. It is not an element you design in isolation during a component audit. The best ones emerge only after the team has mapped every loading surface in the product and decided which of the five archetypes fits each context. The anti pattern of the indefinite spinner with no progress gets worse when you brand it because users notice the personality while still feeling lost. A branded spinner without structure underneath is simply a 1996 spinner updated with modern tailwind classes and a fancy hex code.
Concrete examples prove the difference between good implementation and decoration. Stripe's pay button in their 2024 checkout flow triggers a branded spinner that shimmers across the entire surface the instant the form submits. The button height and width lock immediately to prevent any layout shift. Below it skeleton cards shaped exactly like the upcoming receipt appear instantly. The shimmer uses their brand gradient and moves at a speed that feels premium without being distracting. The whole sequence resolves cleanly when the payment confirms. Linear applies their branded spinner to every optimistic action in their issue tracker. When you create an issue with the C key the row appears immediately through optimistic UI then a tiny branded pulse highlights it until the server confirms. The pulse uses the exact same easing curve as their drag and drop animations so the product feels like one cohesive piece of software. Vercel combines their branded gradient bar with streaming deploy logs so the brand animation plays while users read real time build output. Cursor uses a branded loading treatment in their agent panel during multi minute tasks where the spinner sits next to the live reasoning trace. Claude incorporates subtle brand aligned timing in their token streaming UI even though the primary pattern is streaming. Figma uses a custom segmented spinner during complex file loads that echoes the purple in their logo while a canvas skeleton loads behind it. Apple in their 2015 Watch launch used loading indicators with the exact spring physics found in the rest of iOS so the wait felt unmistakably Apple. These teams all follow the same sequence. They design the skeleton or the stream first. They lock the layout. They remove every layout jump. Then and only then do they add the branded spinner as the final personality layer. The result is loading states that feel faster than they measure and that sell the brand during the most viewed screen in the entire product.
Use a branded spinner when the wait is short under 800 milliseconds the surface is high visibility like checkout or onboarding and you have already implemented one of the four structural patterns underneath it. They shine on consumer facing products where the brand impression compounds across thousands of sessions per user. Deploy them during dashboard metric refreshes where skeleton rows already predict the layout or during mobile pull to refresh where the branded animation can match your app icon style. They work particularly well for transitional waits in design tools like Figma where the spinner appears during file version switches on top of a skeleton canvas preview. Never use them when the wait exceeds two seconds without additional content or progress feedback because users need more than personality to stay oriented. Skip them entirely if your loading surface has unpredictable layout because the spinner would sit on top of a layout jump which destroys perceived performance. Avoid branded spinners on purely enterprise internal tools where users prioritize information density over brand expression. Do not ship them if the animation timing does not match your established product motion language. A spinner that uses different physics than the rest of the interface creates cognitive dissonance that makes the product feel unpolished. The loading state audit in the parent article asks the key question. Would the loading screen sell the product to a stranger. A branded spinner helps answer yes only when it rides on top of real structure. Otherwise it is pure overhead that makes bad design more noticeable.
A branded spinner turns the most watched screen in your product into a signature brand moment instead of an afterthought.
Read the full guide
Related terms
Keep exploring
Loading State
The UI a product displays while fetching data, running tasks, or waiting on servers. It is the most viewed screen across all user sessions yet the one most teams design last.
Skeleton Screen
A placeholder layout that mirrors the exact shape of final content using gray blocks and lines so users orient themselves while data loads.
Perceived Performance
Perceived performance is the gap between actual latency and how fast the product feels to the user. It lives in every loading state, skeleton, optimistic update, and branded transition that either builds trust or quietly erodes it.
Brand Touchpoint
Any moment where a person interacts with or encounters a brand, from a website visit to a packaging unboxing to a customer service call.