agentsclimarketplace

Page load animations

Skill pivyme/suiperpower/core/skills/build/page-load-animations

Fix janky page-load animations, layout shift, or skeletons in a Sui dapp. Use when the user wants to fix loading animations or first paint.From its SKILL.md

Install
npx -y skills add pivyme/suiperpower --skill page-load-animations

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 2 commands, including `command -v suiperpower >/dev/null 2>&1 && suiperpower track page-load-animations build started >/dev/null 2>&1 &` and 1 more.

SKILL.md

5.9 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Preamble (run first)

# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
#   suiperpower track page-load-animations build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track page-load-animations build started >/dev/null 2>&1 &
true

If TEL_PROMPTED is no, before doing real work, ask the user:

Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in ~/.suiperpower/config.json.

A) Sure, anonymous B) No thanks

Write the answer to ~/.suiperpower/config.json telemetryTier field and create ~/.suiperpower/.telemetry-prompted. Then continue.

What this skill does

Audits page-load and transition animations across the dapp and replaces janky patterns with a small set of calm defaults. Removes layout shift, replaces oversized fade-ins, and uses skeleton loaders that match the final content shape. The result is a UI that feels fast even when the network is slow.

When to use it

  • Page load shows an empty white flash, then content snaps in.
  • Generic spinners run for any duration, including sub-100ms operations.
  • Content layout shifts on first paint (CLS issues).
  • Animations are too long, too bouncy, or chained in a way that feels slow.
  • Wallet-connect or transaction flows have animation that competes for attention with actual feedback.

When NOT to use it

  • Performance issues are caused by network or JS execution, not animation timing. Profile first.
  • The user wants brand-level animation (custom logo intro, marketing landing motion). Route to marketing-video or a custom design skill.
  • There are no animations yet, route to frontend-design-guidelines for component-level state defaults.

If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.

Inputs

  • The frontend code, especially layout components, route transitions, and async-data containers.
  • The user's stated symptom (jank, layout shift, slow feel).
  • Optional: a screen recording or a URL to inspect.

Outputs

  • Concrete change list per file: which animation to remove, replace, or shorten.
  • Skeleton loader components that match the final layout dimensions.
  • Reduced-motion support across the board.

Workflow

  1. Audit existing animations

    • Grep for transition, animate-, motion., framer-motion, keyframes, custom CSS animations.
    • Note timing values. Anything over 300ms for a UI transition is suspect.
  2. Tighten timings

    • UI transitions: 150ms to 200ms.
    • Modal / dialog open: 150ms to 200ms.
    • Page transitions: 250ms to 300ms max.
    • Any value over 300ms is a redesign candidate, not a tweak.
  3. Replace spinners with skeletons

    • For surfaces that load in 200ms or more: use a skeleton with the final layout dimensions.
    • For surfaces that load in under 100ms: no loading state at all (the user will not see it).
    • For surfaces that load in 100-200ms: a delayed spinner (only show after 100ms to avoid flash).
  4. Eliminate layout shift

    • Reserve space for async content with explicit dimensions or skeletons.
    • Use aspect-ratio for images.
    • Set font-display: swap and pre-size containers, OR use font-display: optional to avoid swap-induced shift.
  5. Add reduced-motion support

    • Wrap every animation in @media (prefers-reduced-motion: no-preference), or use the JS query.
    • For users who prefer reduced motion, fall back to instant transitions or simple cross-fades under 100ms.
  6. First-paint pass

    • Inline critical CSS for above-the-fold content.
    • Defer non-critical fonts.
    • Avoid full-page fade-in on first load (it makes the page feel slower than it is).
  7. Sui-specific surfaces

    • Wallet-connect modal: fast in, fast out. No bouncy spring.
    • Transaction-status surfaces: animate state changes (pending -> success), not the whole container.
    • Faucet response: a single in-out animation, not a chain.
  8. Verification

    • Open Chrome DevTools Performance tab, record a page load. Look for layout-shift markers.
    • Throttle network to "Slow 3G". The page should still feel intentional, not broken.
    • Toggle prefers-reduced-motion on. Confirm the page is usable without animation.

Quality gate (anti-slop)

Before reporting done:

  • Are all UI transitions at or under 200ms?
  • Is there zero layout shift on first paint (CLS < 0.1 in Lighthouse)?
  • Does prefers-reduced-motion: reduce produce a usable, non-jarring experience?
  • Are spinners replaced with skeletons or removed where the load is sub-100ms?
  • Do skeletons match the final content shape (not generic grey rectangles in random sizes)?

If any answer is no, the skill keeps working.

References

On-demand references (load when relevant to the user's question):

  • references/timing-defaults.md: Recommended durations and easings per component class.
  • references/skeleton-patterns.md: Skeleton shapes for common Sui dapp surfaces (balance, address list, transaction history, NFT grid).

Use in your agent

  • Claude Code: claude "/suiper:page-load-animations <your message>"
  • Codex: codex "/page-load-animations <your message>"
  • Grok Build: run grok, then /page-load-animations <your message> in the session
  • Cursor: paste a chat message that includes a phrase like "fix my loading animations", or load ~/.cursor/rules/page-load-animations.mdc and reference it.

If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.

What ships with it: 3 files

6.5 KB alongside SKILL.md

agents/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.