AgentStack
SKILL verified MIT Self-run

Loading States

skill-tommylower-cortex-loading-states · by tommylower

Design and implement loading states, skeletons, spinners, progress indicators, and dot-matrix micro-loaders. Use when the user asks for a loader, loading state, skeleton, pending state, progress UI, shadcn loader, Dot Matrix, smooth loader animation, reduced-motion loading behavior, or empty/pending state polish.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-tommylower-cortex-loading-states

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Loading States? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Loading States

Loading states should reduce uncertainty. Pick the least distracting treatment that tells the user the system is working.

Source: https://dotmatrix.zzzzshawn.cloud/

Choose the Right Pattern

| Wait type | Pattern | | --- | --- | | Under 500ms | optimistic UI or no loader | | 500ms to 2s | small spinner, dot loader, or inline status text | | 2s+ | skeleton, progress region, or staged status | | Known progress | progress bar with percent or steps | | Background refresh | quiet inline state; avoid blocking | | Empty data | empty state with one next action |

Dot Matrix

Use Dot Matrix when the product wants a compact, crafted loader. It is React, TypeScript, Tailwind, and shadcn-oriented.

Install one loader through the shadcn registry:

npx shadcn@latest add @dotmatrix/dotm-square-3

Use it for small pending states, buttons, command palettes, creative tools, or branded surfaces. Avoid using multiple animated loaders on the same screen.

Smooth Loader Rules

  • Drive continuous opacity with requestAnimationFrame, not a coarse interval.
  • Use smooth ramps (smoothstep style falloffs) instead of hard opacity thresholds.
  • For path loaders, use a floating head position and a soft tail.
  • Freeze or simplify animation for prefers-reduced-motion.
  • Pause looping animation when off-screen.
  • Keep loading motion calm in dense SaaS/admin interfaces.

Accessibility Rules

  • Use aria-busy on regions that are updating.
  • Use role="status" or visible status text for important pending states.
  • Do not rely on animation alone to communicate progress.
  • Skeletons should match the final layout closely enough to prevent layout shift.
  • Button-level loaders must preserve the button size and accessible name.

Button Pending Pattern


  {isPending ?  : null}
  {isPending ? "Saving..." : "Save Changes"}

Keep the label specific. Prefer Saving... over generic Loading... when the action is known.

Preflight

Before shipping:

  • The layout does not jump when loading begins or ends.
  • Reduced motion has a stable fallback.
  • The pending state cannot be mistaken for disabled without progress.
  • The user has a path forward if loading fails or returns empty.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.