
Loading States
Guide your coding agent to pick skeleton screens, spinners, optimistic UI, and duration-appropriate loading patterns so pages feel fast while data arrives.
Overview
Loading States is an agent skill most often used in Build (also Ship perf) that designs skeleton, spinner, progressive, and optimistic loading patterns with duration-based guidance for solo builders.
Install
npx skills add https://github.com/owl-listener/designer-skills --skill loading-statesWhat is this skill?
- Skeleton screens with subtle shimmer for known content structure
- Spinner vs determinate progress bar guidance by measurability
- Progressive loading: critical path first, lazy below-fold, blur-up images
- Optimistic UI with server reconciliation and rollback on failure
- Duration tiers from under 100ms (no indicator) through 10s+ (estimates and background option)
- Duration guidance spans under 100ms through over 10s with distinct indicator rules
- List stagger recommendation of 30–50ms between items
Adoption & trust: 593 installs on skills.sh; 1.5k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You ship blank screens or jarring layout pops while data loads, so users think the app is broken even when the backend is fine.
Who is it for?
SaaS or mobile UIs with lists, dashboards, and image-heavy pages where structure is known before content arrives.
Skip if: Backend-only APIs, batch ETL jobs, or teams that already have a locked design-system loading spec with no UX changes planned.
When should I use this skill?
Designing or refactoring loading, skeleton, progressive reveal, or optimistic UI before users see empty or jumping layouts.
What do I get? / Deliverables
You get a concrete loading pattern choice per screen with transitions that reduce perceived wait and layout shift before you implement components.
- Chosen loading pattern per view
- Duration-tier indicator rules
- Transition and layout-shift avoidance checklist
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Loading UX is implemented in the frontend layer where layout, placeholders, and transitions ship to users. Skeleton shimmer, progressive lazy-load, and blur-up images are core frontend implementation and component design concerns.
Where it fits
Choose skeleton rows for an orders table before wiring the data hook.
Replace full-page spinners with staggered list fade-in to cut perceived latency.
Add blur-up heroes on a marketing page so LCP feels instant on slow mobile.
How it compares
UX pattern guidance for agents, not a spinner component library or a performance monitoring MCP.
Common Questions / FAQ
Who is loading-states for?
Solo and indie builders using AI coding agents on React, Next, or mobile web apps who own both layout and interaction polish.
When should I use loading-states?
During Build frontend when adding routes or data hooks; during Ship perf when fixing CLS; at Launch when slow third-party APIs hurt first impressions; and in Grow when lifecycle screens need trustworthy refresh states.
Is loading-states safe to install?
It is procedural design guidance with no shell or network requirements—review the Security Audits panel on this page before adding any third-party skill repo to your agent.
SKILL.md
READMESKILL.md - Loading States
# Loading States You are an expert in designing loading experiences that maintain user confidence and perceived performance. ## What You Do You design loading patterns that keep users informed and reduce perceived wait time. ## Loading Patterns ### Skeleton Screens Show the layout shape before content loads. Use for known content structure. Animate with subtle shimmer. ### Spinner/Progress Indeterminate spinner for unknown duration. Determinate progress bar when progress is measurable. Keep spinners small and unobtrusive. ### Progressive Loading Load critical content first, enhance progressively. Lazy-load below-fold content. Blur-up images (low-res placeholder to full). ### Optimistic UI Show the expected result immediately. Reconcile with server response. Roll back if the action fails. ### Placeholder Content Show placeholder text/images while loading. Use realistic proportions. Transition smoothly to real content. ## Duration Guidelines - Under 100ms: no loading indicator needed - 100ms-1s: subtle indicator (opacity change, skeleton) - 1-10s: clear loading state with progress if possible - Over 10s: detailed progress, time estimate, background option ## Transition Behavior - Fade content in (don't pop) - Stagger items for lists (30-50ms intervals) - Avoid layout shifts when content loads - Maintain scroll position on content refresh ## Best Practices - Show something immediately (never a blank screen) - Match skeleton shapes to actual content - Avoid multiple competing loading indicators - Provide cancel/back options for long loads - Test on slow connections - Respect reduced-motion for shimmer animations