Agent Skillsnexu-io/motion-anything › magnetic-button

magnetic-button

GitHub

为按钮添加跟随鼠标的磁吸微交互效果,增强主操作按钮的生动感。适用于少量核心CTA,禁用密集按钮区、触屏及减弱动效环境。

recipes/web/magnetic-button/SKILL.md nexu-io/motion-anything

Trigger Scenarios

需要为单个主要行动号召(如“开始使用”)添加生动的鼠标跟随效果 希望提升主按钮的视觉吸引力但保持界面简洁

Install

npx skills add nexu-io/motion-anything --skill magnetic-button -g -y
More Options

Non-standard path

npx skills add https://github.com/nexu-io/motion-anything/tree/main/recipes/web/magnetic-button -g -y

Use without installing

npx skills use nexu-io/motion-anything@magnetic-button

指定 Agent (Claude Code)

npx skills add nexu-io/motion-anything --skill magnetic-button -a claude-code -g -y

安装 repo 全部 skill

npx skills add nexu-io/motion-anything --all -g -y

预览 repo 内 skill

npx skills add nexu-io/motion-anything --list

SKILL.md

Frontmatter
{
    "od": {
        "mode": "prototype",
        "preview": {
            "type": "html"
        },
        "surface": "web",
        "category": "animation-motion",
        "platform": "desktop",
        "upstream": null,
        "design_system": {
            "requires": false
        },
        "example_prompt": "Use magnetic-button on the hero \"Get started\" CTA: a subtle pull toward the cursor with a\nsnappy spring back. Only the primary button; disable on touch and reduced-motion."
    },
    "name": "magnetic-button",
    "triggers": [
        "magnetic button",
        "playful hover",
        "button that follows cursor",
        "make this button alive",
        "磁吸按钮",
        "活泼"
    ],
    "description": "Make a primary button feel alive by gently pulling it toward the cursor as it approaches, then\nspringing back. Keep it subtle and reserve it for one or two primary actions. Disabled on touch\nand under prefers-reduced-motion. Do not use it on dense UIs full of buttons.\n"
}

magnetic-button

A button that leans toward the cursor, then springs back. Part of motion-anything; obeys MOTION-SPEC.md.

When to use it

  • A single primary call-to-action you want to feel alive (hero "Get started" / "Try it").

When NOT to use it (restraint)

  • Dense UIs with many buttons — it becomes chaotic. Reserve for 1–2 primary targets.
  • Touch-only contexts (no cursor). The recipe disables itself there automatically.

How to apply

  1. Copy magnetic-button.css and magnetic-button.js into the project, and link them.
  2. Mark the button:
    <button class="magnetic" data-magnet-strength="0.3">Get started</button>
    
  3. Auto-attaches to .magnetic. Keep strength small (~0.2–0.4) so the pull stays subtle.

Accessibility & performance

  • Disabled under prefers-reduced-motion and on (hover: none) touch devices.
  • Transform only; resets on pointerleave.

Framework notes

  • React: call attachMagnetic(ref.current) in useEffect, guarded by the same reduced-motion/touch checks.

Version History

  • b016900 Current 2026-07-11 17:09

Same Skill Collection

recipes/animxyz/xyz-fade-big/SKILL.md
recipes/animxyz/xyz-fade-down/SKILL.md
recipes/animxyz/xyz-fade-left/SKILL.md
recipes/animxyz/xyz-fade-right/SKILL.md
recipes/animxyz/xyz-fade-small/SKILL.md
recipes/animxyz/xyz-fade-up/SKILL.md
recipes/animxyz/xyz-flip-left/SKILL.md
recipes/animxyz/xyz-flip-up/SKILL.md
recipes/animxyz/xyz-rise-big/SKILL.md
recipes/animxyz/xyz-rotate/SKILL.md
recipes/app/bottom-sheet/SKILL.md
recipes/app/button-press/SKILL.md
recipes/app/checkbox-pop/SKILL.md
recipes/app/ripple/SKILL.md
recipes/app/tab-bar-slide/SKILL.md
recipes/app/toast-pop/SKILL.md
recipes/css/anim-backindown/SKILL.md
recipes/css/anim-backinleft/SKILL.md
recipes/css/anim-backinright/SKILL.md
recipes/css/anim-backinup/SKILL.md
recipes/css/anim-backoutdown/SKILL.md
recipes/css/anim-backoutleft/SKILL.md
recipes/css/anim-backoutright/SKILL.md
recipes/css/anim-backoutup/SKILL.md
recipes/css/anim-bounce/SKILL.md
recipes/css/anim-bouncein/SKILL.md
recipes/css/anim-bounceindown/SKILL.md
recipes/css/anim-bounceinleft/SKILL.md
recipes/css/anim-bounceinright/SKILL.md
recipes/css/anim-bounceinup/SKILL.md
recipes/css/anim-bounceout/SKILL.md
recipes/css/anim-bounceoutdown/SKILL.md
recipes/css/anim-bounceoutleft/SKILL.md
recipes/css/anim-bounceoutright/SKILL.md
recipes/css/anim-bounceoutup/SKILL.md
recipes/css/anim-fadein/SKILL.md
recipes/css/anim-fadeinbottomleft/SKILL.md
recipes/css/anim-fadeinbottomright/SKILL.md
recipes/css/anim-fadeindown/SKILL.md
recipes/css/anim-fadeindownbig/SKILL.md
recipes/css/anim-fadeinleft/SKILL.md
recipes/css/anim-fadeinleftbig/SKILL.md
recipes/css/anim-fadeinright/SKILL.md
recipes/css/anim-fadeinrightbig/SKILL.md
recipes/css/anim-fadeintopleft/SKILL.md
recipes/css/anim-fadeintopright/SKILL.md
recipes/css/anim-fadeinup/SKILL.md
recipes/css/anim-fadeinupbig/SKILL.md
recipes/css/anim-fadeout/SKILL.md
recipes/css/anim-fadeoutbottomleft/SKILL.md
recipes/css/anim-fadeoutbottomright/SKILL.md
recipes/css/anim-fadeoutdown/SKILL.md
recipes/css/anim-fadeoutdownbig/SKILL.md
recipes/css/anim-fadeoutleft/SKILL.md
recipes/css/anim-fadeoutleftbig/SKILL.md
recipes/css/anim-fadeoutright/SKILL.md
recipes/css/anim-fadeoutrightbig/SKILL.md
recipes/css/anim-fadeouttopleft/SKILL.md
recipes/css/anim-fadeouttopright/SKILL.md
recipes/css/anim-fadeoutup/SKILL.md
recipes/css/anim-fadeoutupbig/SKILL.md
recipes/css/anim-flash/SKILL.md
recipes/css/anim-flipinx/SKILL.md
recipes/css/anim-flipiny/SKILL.md
recipes/css/anim-headshake/SKILL.md
recipes/css/anim-heartbeat/SKILL.md
recipes/css/anim-hinge/SKILL.md
recipes/css/anim-jackinthebox/SKILL.md
recipes/css/anim-jello/SKILL.md
recipes/css/anim-lightspeedinleft/SKILL.md
recipes/css/anim-lightspeedinright/SKILL.md
recipes/css/anim-pulse/SKILL.md
recipes/css/anim-rollin/SKILL.md
recipes/css/anim-rollout/SKILL.md
recipes/css/anim-rotatein/SKILL.md
recipes/css/anim-rotateindownleft/SKILL.md
recipes/css/anim-rotateindownright/SKILL.md
recipes/css/anim-rotateinupleft/SKILL.md
recipes/css/anim-rotateinupright/SKILL.md
recipes/css/anim-rotateout/SKILL.md
recipes/css/anim-rotateoutdownleft/SKILL.md
recipes/css/anim-rotateoutdownright/SKILL.md
recipes/css/anim-rotateoutupleft/SKILL.md
recipes/css/anim-rotateoutupright/SKILL.md
recipes/css/anim-rubberband/SKILL.md
recipes/css/anim-shake/SKILL.md
recipes/css/anim-shakex/SKILL.md
recipes/css/anim-shakey/SKILL.md
recipes/css/anim-slideindown/SKILL.md
recipes/css/anim-slideinleft/SKILL.md
recipes/css/anim-slideinright/SKILL.md
recipes/css/anim-slideinup/SKILL.md
recipes/css/anim-slideoutdown/SKILL.md
recipes/css/anim-slideoutleft/SKILL.md
recipes/css/anim-slideoutright/SKILL.md
recipes/css/anim-slideoutup/SKILL.md
recipes/css/anim-swing/SKILL.md
recipes/css/anim-tada/SKILL.md
recipes/css/anim-wobble/SKILL.md
recipes/css/anim-zoomin/SKILL.md
recipes/css/anim-zoomindown/SKILL.md
recipes/css/anim-zoominleft/SKILL.md
recipes/css/anim-zoominright/SKILL.md
recipes/css/anim-zoominup/SKILL.md
recipes/css/anim-zoomout/SKILL.md
recipes/css/anim-zoomoutdown/SKILL.md
recipes/css/anim-zoomoutleft/SKILL.md
recipes/css/anim-zoomoutright/SKILL.md
recipes/css/anim-zoomoutup/SKILL.md
recipes/lottie/lottie-fab/SKILL.md
recipes/lottie/lottie-favorite/SKILL.md
recipes/lottie/lottie-pagination/SKILL.md
recipes/lottie/lottie-tab/SKILL.md
recipes/slides/fx-chain-react/SKILL.md
recipes/slides/fx-confetti/SKILL.md
recipes/slides/fx-constellation/SKILL.md
recipes/slides/fx-counter-explosion/SKILL.md
recipes/slides/fx-data-stream/SKILL.md
recipes/slides/fx-firework/SKILL.md
recipes/slides/fx-galaxy-swirl/SKILL.md
recipes/slides/fx-gradient-blob/SKILL.md
recipes/slides/fx-knowledge-graph/SKILL.md
recipes/slides/fx-letter-explode/SKILL.md
recipes/slides/fx-magnetic-field/SKILL.md
recipes/slides/fx-matrix-rain/SKILL.md
recipes/slides/fx-neural-net/SKILL.md
recipes/slides/fx-orbit-ring/SKILL.md
recipes/slides/fx-particle-burst/SKILL.md
recipes/slides/fx-shockwave/SKILL.md
recipes/slides/fx-sparkle-trail/SKILL.md
recipes/slides/fx-starfield/SKILL.md
recipes/slides/fx-typewriter-multi/SKILL.md
recipes/slides/fx-word-cascade/SKILL.md
recipes/web/attention-pulse/SKILL.md
recipes/web/aurora/SKILL.md
recipes/web/balatro/SKILL.md
recipes/web/border-beam/SKILL.md
recipes/web/card-lift-hover/SKILL.md
recipes/web/count-up/SKILL.md
recipes/web/dark-veil/SKILL.md
recipes/web/decrypted-text/SKILL.md
recipes/web/dither/SKILL.md
recipes/web/dot-field/SKILL.md
recipes/web/dot-grid/SKILL.md
recipes/web/elastic-slider/SKILL.md
recipes/web/fade-in-up/SKILL.md
recipes/web/faulty-terminal/SKILL.md
recipes/web/ferrofluid/SKILL.md
recipes/web/galaxy/SKILL.md
recipes/web/glare-hover/SKILL.md
recipes/web/glitch-text/SKILL.md
recipes/web/gradient-blinds/SKILL.md
recipes/web/gradient-text/SKILL.md
recipes/web/grainient/SKILL.md
recipes/web/iridescence/SKILL.md
recipes/web/kinetic-headline/SKILL.md
recipes/web/light-rays/SKILL.md
recipes/web/lightfall/SKILL.md
recipes/web/lightning/SKILL.md
recipes/web/like-burst/SKILL.md
recipes/web/line-waves/SKILL.md
recipes/web/liquid-chrome/SKILL.md
recipes/web/loading-shimmer/SKILL.md
recipes/web/particles/SKILL.md
recipes/web/pixel-blast/SKILL.md
recipes/web/pixel-snow/SKILL.md
recipes/web/pixel-transition/SKILL.md
recipes/web/plasma-wave/SKILL.md
recipes/web/plasma/SKILL.md
recipes/web/prismatic-burst/SKILL.md
recipes/web/ripple-grid/SKILL.md
recipes/web/ripple-press/SKILL.md
recipes/web/scroll-reveal/SKILL.md
recipes/web/shimmer-button/SKILL.md
recipes/web/shine-border/SKILL.md
recipes/web/shiny-text/SKILL.md
recipes/web/shuffle-text/SKILL.md
recipes/web/side-rays/SKILL.md
recipes/web/soft-aurora/SKILL.md
recipes/web/splash-cursor/SKILL.md
recipes/web/spotlight-card/SKILL.md
recipes/web/stagger-list/SKILL.md
recipes/web/star-border/SKILL.md
recipes/web/stepper/SKILL.md
recipes/web/strands/SKILL.md
recipes/web/text-scramble/SKILL.md
recipes/web/threads/SKILL.md
recipes/web/tilt-3d/SKILL.md
recipes/web/toggle-spring/SKILL.md
skills/gsap/gsap-frameworks/SKILL.md
skills/gsap/gsap-performance/SKILL.md
skills/gsap/gsap-plugins/SKILL.md
skills/gsap/gsap-react/SKILL.md
skills/gsap/gsap-scrolltrigger/SKILL.md
skills/gsap/gsap-timeline/SKILL.md
skills/gsap/gsap-utils/SKILL.md
skills/web-clone/SKILL.md
skills/gsap/gsap-core/SKILL.md
skills/web-shader-extractor/SKILL.md
skills/web-to-design-md/SKILL.md
recipes/web/blob-cursor/SKILL.md
recipes/web/blur-text/SKILL.md
recipes/web/bounce-cards/SKILL.md
recipes/web/circular-text/SKILL.md
recipes/web/click-spark/SKILL.md
recipes/web/counter/SKILL.md
recipes/web/crosshair/SKILL.md
recipes/web/dock/SKILL.md
recipes/web/electric-border/SKILL.md
recipes/web/fade-content/SKILL.md
recipes/web/falling-text/SKILL.md
recipes/web/glass-icons/SKILL.md
recipes/web/gooey-nav/SKILL.md
recipes/web/gradual-blur/SKILL.md
recipes/web/image-trail/SKILL.md
recipes/web/magnet-lines/SKILL.md
recipes/web/noise/SKILL.md
recipes/web/orb/SKILL.md
recipes/web/pixel-card/SKILL.md
recipes/web/prism/SKILL.md
recipes/web/radar/SKILL.md
recipes/web/rotating-text/SKILL.md
recipes/web/scroll-float/SKILL.md
recipes/web/silk/SKILL.md
recipes/web/target-cursor/SKILL.md
recipes/web/true-focus/SKILL.md
recipes/web/waves/SKILL.md
skills/motion-anything/SKILL.md

Metadata

Files
0
Version
b016900
Hash
91930d99
Indexed
2026-07-11 17:09

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-13 21:19
浙ICP备14020137号-1 $Map of visitor$