Back

Redefining the Wait

Overview

Every loader is a moment when users lose control. For years, monday.com's answer was a spinner. Sixteen different spinners, from sixteen different teams. I led the research and design initiative to replace that chaos with a single, coherent system: one that doesn't just reduce wait time, but reframes the wait entirely.

Role

Motion Design Team Lead

Lead Motion Designer & UX Researcher

THE PROBLEM

A “Hectic” Start

An audit of the platform revealed what I called “Hectic Flow”: 16 loading indicators across a single dashboard, 6 different types, zero shared logic. Every squad had solved the same problem in isolation. The result wasn't just inconsistent; it read as broken.

APPROACH

Ex: Dashboard “hectic” loading flow

  • 16 loading indicator
  • 6 different types
  • no consistency message

THE STRATEGY

Research-Driven Motion

The solution wasn't to make spinners prettier. Research on perceived performance showed that loading isn't a speed problem. It's an information problem. Skeleton screens orient users before content arrives. We shifted our philosophy from “The Wait” to “The Preview.”

The Insight: 90% of users notice design quality during loading. 0% perceive skeleton screens as slow.

The Active Wait Test: We rebuilt the app entrance from a passive logo loop into a progressive, active build. In testing, 100% of users rated the new experience as faster, perceiving the 8-second load as roughly 4. Same performance, completely different feeling.

Ex 2: Welcome Screen to platform

Before

  • Passive waiting was perceived as longer by 100% of testers.
  • Logo loop: Lottie-driven DOM animation.

After

  • Active waiting: progressing elements felt like ~4 seconds when the real load was 8.
  • All motion, including the logo build, is authored in code.

OPERATIONALIZING

The System Library

A good concept doesn't scale on its own. To ship consistent loading across 30+ product squads, I built a Loading Design System and Specs Library, documentation that made the right choice the easy choice.

The One-Loader Rule: One governing principle to prevent Hectic Flow from returning. One dominant loading treatment per surface, no exceptions.

Motion Tokens: Shimmer duration (720ms), easing (cubic-bezier), color: all defined as shared tokens. What used to be solved case-by-case became a decision already made.

Realistic layouts with progressive loading and varied component treatments

Realistic Layout

Layouts should be realistic so users stay oriented and understand where they are. The loader should make the gradual reveal of the interface feel intentional, not abrupt. When similar components sit together, vary the treatment so the screen feels versatile rather than repetitive.
Minimal loading components with varied line lengths

Component Design

Keep the treatment simple so the interface stays clean and never feels overloaded with detail. Vary line lengths where it helps placeholders read as natural rather than rigid. The loader should communicate progress, not mirror the final component down to every control.
Layout spec for placeholders and motion

Layout spec

A layout spec for placeholders and animation: structure, rhythm, and timing documented so implementation stays consistent across surfaces.
Color tokens for loading and motion

Color tokens

Defined color tokens for loaders and motion so shimmer, pulse, and state changes stay on-brand and legible in every theme.
Realistic layouts with progressive loading and varied component treatments

Realistic Layout

Layouts should be realistic so users stay oriented and understand where they are. The loader should make the gradual reveal of the interface feel intentional, not abrupt. When similar components sit together, vary the treatment so the screen feels versatile rather than repetitive.
Minimal loading components with varied line lengths

Component Design

Keep the treatment simple so the interface stays clean and never feels overloaded with detail. Vary line lengths where it helps placeholders read as natural rather than rigid. The loader should communicate progress, not mirror the final component down to every control.
Layout spec for placeholders and motion

Layout spec

A layout spec for placeholders and animation: structure, rhythm, and timing documented so implementation stays consistent across surfaces.
Color tokens for loading and motion

Color tokens

Defined color tokens for loaders and motion so shimmer, pulse, and state changes stay on-brand and legible in every theme.
Realistic layouts with progressive loading and varied component treatments

Realistic Layout

Layouts should be realistic so users stay oriented and understand where they are. The loader should make the gradual reveal of the interface feel intentional, not abrupt. When similar components sit together, vary the treatment so the screen feels versatile rather than repetitive.
Minimal loading components with varied line lengths

Component Design

Keep the treatment simple so the interface stays clean and never feels overloaded with detail. Vary line lengths where it helps placeholders read as natural rather than rigid. The loader should communicate progress, not mirror the final component down to every control.
Layout spec for placeholders and motion

Layout spec

A layout spec for placeholders and animation: structure, rhythm, and timing documented so implementation stays consistent across surfaces.
Color tokens for loading and motion

Color tokens

Defined color tokens for loaders and motion so shimmer, pulse, and state changes stay on-brand and legible in every theme.
Active slide 1 of 4

EXTENDED STATES

Storytelling & Duration

The system handles most cases. But two specific load types needed something different.

Branded Narrative: A generic shimmer undersells high-value product moments. Across AI, Docs, Canvas, and more, we designed animated loops that visualize what the product is actually doing. The wait becomes part of the product story.

The Long Load (20s+): A shimmer held for 20 seconds reads as frozen. For heavy backend processes like exports and duplications, we designed progress-segmented loaders that communicate active work in phases, keeping users anchored rather than anxious.

Forms

Presents layouts and mediums for different forms.

Canvas

Presents how dynamic the artboard can be.

Docs

Presents types of fields you could use in Docs.

Sidekick

The user isn't just "waiting", they are "watching the AI build."

THE SEARCH-TO-EMPTY STATE

Continuity

Most loading systems stop at success. But what happens when the result is nothing? A hard cut from loader to empty state reads as failure. I designed the transition as a continuation. The loader flows directly into the empty state, maintaining visual momentum. The system doesn't fail; it resolves.

THE IMPACT

The Impact

The solution graduated from a focused prototype into the core design system, replacing ad-hoc loaders across thirty-plus squads. Along the way, the Active Wait study showed that perceived speed can move when the underlying load time does not.

  • Adopted across 30+ squads

    The loading system was absorbed into the core design system and became the standard pattern across every product surface, replacing ad-hoc decisions with a shared language.

  • Perception over performance

    The Active Wait test proved the principle in numbers: 100% of testers perceived the new entrance as faster. The real load time didn't change. The experience did.