Motion Menu
596 live patterns · built for coding agents

Give your agent a motion director.

Motion Menu is the interaction layer your component library stops short of: working scroll scenes, shaders, WebGL, seams, product tools and the quiet motion that makes a whole page feel composed. Your agent can search it, inspect it and install the tested code directly.

Start free Explore the live catalogue → 26 patterns. No card. No expiry.
596live patterns
18page roles
4frameworks
$149usd once
What it is

Code that runs, not screenshots of code.

Every pattern is a working demo on one page you can scroll right now. Ask for one by number and you get its complete HTML, CSS and JavaScript — the shared runtime helpers it needs, the stack pins it was tested against, and the gotchas that were hit building it.

The range is the point: Lenis-driven scroll spines, GSAP choreography, GLSL passes, WebGPU compute, Gaussian splats, MediaPipe try-on, transformers.js search, view transitions, physics letters, cloth, flow fields — alongside the quiet things a real page needs, like preloaders, seams between sections, and a device-tier gate that degrades the heavy work on a weak phone.

Six themes re-skin any pattern in one call — token block plus every colour literal baked into the JavaScript, GLSL and canvas code rewritten. The easing curves, durations and lerp factors are never touched. Those are the part you are actually paying for.

Integration

One line into your agent. No SDK, no build step.

It is an MCP server and a set of plain URLs. Anything that speaks either — Claude Code, Cursor, your own script, a model with a browser — is a client.

# components.json — one line, then it is a registry like any other
{
  "registries": {
    "@motionmenu": {
      "url": "https://motion-menu-two.vercel.app/r/{name}.json",
      "headers": { "Authorization": "Bearer ${MOTION_MENU_KEY}" }
    }
  }
}

# then install like anything else — deps and the runtime come with it
npx shadcn add @motionmenu/velocity-image-bend

# or let the official shadcn MCP do it:
#   "add a hero from the motionmenu registry"
Pricing

One price. Yours forever.

No subscription, no seat count, no renewal. 14-day refund, no questions — the licence is one page and worth reading before you buy, especially the part where what you already shipped stays yours.

Free
$0
Wire it up, see whether your agent actually uses it.
  • 26 sample patterns
  • The mm theme
  • Full catalogue + kit.md
  • MCP endpoint
  • The other 570 patterns
  • compose_page + publish
Get a free key
Lifetime
$149 usd
✓ 14-day money-back guarantee
Every pattern. Every theme. Every update. Forever.
  • All 596 patterns
  • React, Vue, Svelte, vanilla TS wrappers
  • All themes, themed on delivery
  • compose_page — full working pages
  • Publish — a live URL, via MCP/API
  • 5 keys for your team
  • Every new pattern, free, forever
Buy once — $149 USD

14-day money-back guarantee · works inside Claude Code, Cursor and Windsurf via MCP — your agent reads the library directly

Free key

26 patterns, the mm theme, no card, no expiry.

Before you buy

What this is, exactly.

It is a library, not a framework
Patterns are transplanted into your page and become your code. There is no runtime dependency on us, and nothing phones home. If you cancel, what you already shipped keeps working — you lose access to fetch more.
It is not a design system
No component library, no Figma kit, no tokens for buttons and inputs. Figma and its Code Connect do that, and do it better. This is the motion layer: the part that moves.
It expects a real stack
Patterns are pinned to three@0.170.0, gsap@3.13.0 and lenis@1.3.17, tested together. Most drop into plain HTML or a React useEffect without ceremony. A handful — WebGPU compute, Gaussian splats, webcam try-on — need a capable browser, and each one says so.
Nothing you wire up breaks
Every pattern has a permanent slug and a permanent URL. Numbers are stable aliases, so /p/150.json and /p/velocity-image-bend.json return the same bytes and both keep resolving forever. Categories are tags, which means the catalogue can be reorganised without moving anything you depend on. That is a commitment about addressing, not a release cadence — there is no promised weekly drop.
Support is one person
Email gets a real answer, usually within a couple of days. There is no phone line, no SLA, and no enterprise tier pretending otherwise. If a pattern is broken, say so and it gets fixed.
Competition is real, and mostly free
Aceternity ships 200+ components free and sells Pro for $199. Magic UI and react-bits are MIT. shadcn/ui is the foundation everyone builds on. If you need buttons, cards, bento grids and fade-ins, use those — they are excellent and they cost nothing. Where they stop is the heavy end: Aceternity ships three shader blocks. This library ships fifty. That gap is the only thing being sold here.
Every framework, one pattern
Patterns are framework-free HTML, CSS and JavaScript. Every registry item ships ready-to-use wrappers for React (.tsx), Vue (.vue), Svelte (.svelte), and vanilla TypeScript (.ts). The React wrapper is a useEffect with cleanup; Vue uses onMounted/onBeforeUnmount; Svelte uses onMount. The MCP and shadcn registry both accept ?framework= to get the right format.
FAQ

Questions, answered straight.

What's included in the Lifetime plan?

Every pattern in the library, every theme, compose_page for full working pages, exporting a composed page straight to your own GitHub repo or Vercel project, wrappers in React, Vue, Svelte and vanilla TypeScript, and 5 keys so a small team can each hold their own. One payment, no subscription.

Do I get future patterns at no extra cost?

Yes — every pattern added after you buy is already included in your Lifetime licence, forever. There's no promised release schedule (that's a commitment about addressing, not volume), but nothing new is ever billed separately.

Can I use this for client work or commercial projects?

On the Lifetime plan, yes — build for yourself, your employer, or a client, and hand the finished site over. What you can't do is resell the library itself, redistribute it as a collection, or publish pattern source as your own kit. The Free plan is personal projects and evaluation only — the licence has the exact line.

What if I'm not happy with it?

A 14-day refund, no questions asked, one per customer — email support and it's done. Anything you already shipped with the patterns keeps working; a refund only removes access to fetch more.

I lost my key — how do I get back in?

Full keys are never stored, only their hash, so a lost one can't be looked up — only replaced. Go to /account and use "lost a key you already have?", which emails a fresh one to your account address.

Is there a team license?

Not as a separate paid tier. Lifetime already includes 5 keys per account, so a small team can each hold their own — no per-seat billing on top of the one $149 payment.

Do you offer subscriptions?

No. Lifetime is a single $149 payment — no subscription, no renewal, no recurring charge, and no trial period.

What is MCP, and why does it matter?

MCP (Model Context Protocol) is how a coding agent talks to Motion Menu directly. Point Claude Code, Cursor, Windsurf or any other MCP client at the endpoint and it can list, fetch and compose patterns without you opening a browser or copy-pasting code. Setup commands for each client are on /connect.

What can't I do with a Motion Menu licence?

Redistribute the library — or a substantial part of it — as a collection, resell access or publish pattern source as your own kit, share a key outside your plan's seats, or use the library to train a model meant to reproduce it. The full list is on /terms.

Does Lifetime unlock every theme?

Yes — every theme, re-skinned on request. The Free plan includes the default mm theme only.

What frameworks are supported?

Every pattern is plain HTML, CSS and JavaScript, plus ready wrappers for React, Vue, Svelte and vanilla TypeScript — the MCP and shadcn registry both take a framework parameter to get the one you need.

Will I be charged again later, or is my card stored?

No. It's a single one-time charge, and Stripe holds your payment details — this site never sees a card number. There's nothing recurring to cancel.