frontend-magic-ui
Polished SaaS landing page components. Use for number tickers/stats animations, logo marquees, bento grids, device mockups (iPhone, Safari), shimmer/rainbow buttons, typing effects. Professional marketing polish built on Framer Motion + Tailwind. For dramatic hero effects use Aceternity, for basic UI use shadcn.
allowed_tools: Read, Edit, Write, Bash (*)
$ Installieren
git clone https://github.com/petbrains/mvp-builder /tmp/mvp-builder && cp -r /tmp/mvp-builder/.claude/skills/frontend-magic-ui ~/.claude/skills/mvp-builder// tip: Run this command in your terminal to install the skill
SKILL.md
name: frontend-magic-ui description: Polished SaaS landing page components. Use for number tickers/stats animations, logo marquees, bento grids, device mockups (iPhone, Safari), shimmer/rainbow buttons, typing effects. Professional marketing polish built on Framer Motion + Tailwind. For dramatic hero effects use Aceternity, for basic UI use shadcn. allowed-tools: Read, Edit, Write, Bash (*)
Magic UI
150+ animated components for SaaS landing pages. Professional polish, production-ready.
When to Use
- Number/stat animations (tickers, counters)
- Logo walls (marquee)
- Bento grid layouts
- Device mockups (iPhone, Safari)
- Text animations (typing, word rotate)
- Shimmer/rainbow buttons
When NOT to Use
- Basic UI â shadcn/ui
- Dramatic hero effects â Aceternity
- State-driven animations â Rive
Process
NEED â ADD â CUSTOMIZE
- Identify component type
- Install:
npx magicui-cli@latest add [component] - Customize props/styles
Dependencies
npm install framer-motion clsx tailwind-merge
Component Categories
Text: number-ticker, typing-animation, word-rotate, flip-text, morphing-text
Buttons: shimmer-button, rainbow-button, pulsating-button, shiny-button
Patterns: dot-pattern, grid-pattern, retro-grid, particles, meteors
Mockups: iphone-15-pro, safari, android
Layout: bento-grid, marquee, dock, animated-list, file-tree
Effects: orbiting-circles, animated-beam, border-beam, confetti, globe
Decision Tree
Need animated component?
ââ Stats/numbers â number-ticker
ââ Logo carousel â marquee
ââ Feature grid â bento-grid
ââ CTA button â shimmer-button, rainbow-button
ââ App screenshot â safari, iphone-15-pro
ââ Dynamic headline â word-rotate, typing-animation
ââ Integration diagram â orbiting-circles, animated-beam
Quick Patterns
// Number Ticker
<div className="flex gap-12">
<NumberTicker value={10000} className="text-4xl font-bold" />
<span className="text-4xl">+</span>
</div>
// Marquee (logo wall)
<Marquee pauseOnHover className="[--duration:20s]">
{logos.map(logo => <img key={logo.name} src={logo.img} />)}
</Marquee>
// Word Rotate
<h1>Build <WordRotate words={["faster", "better"]} /> apps</h1>
// Safari Mockup
<Safari url="yourapp.com" src="/screenshot.png" />
Customization
// Speed via CSS variables
<Marquee className="[--duration:40s]">...</Marquee>
<NumberTicker className="[--duration:3s]" value={1000} />
// Colors
<ShimmerButton
shimmerColor="#a855f7"
background="linear-gradient(to right, #6366f1, #8b5cf6)"
>
Custom
</ShimmerButton>
// Marquee gap
<Marquee className="[--gap:2rem]">...</Marquee>
SSR & Hydration
// Always 'use client'
'use client'
// Heavy components: dynamic import
import dynamic from 'next/dynamic'
const Globe = dynamic(() => import('@/components/magicui/globe'), { ssr: false })
// Mounted check pattern
const [mounted, setMounted] = useState(false)
useEffect(() => setMounted(true), [])
if (!mounted) return <Skeleton />
Magic UI vs Aceternity
| Use Case | Magic UI | Aceternity |
|---|---|---|
| Number animation | â NumberTicker | â |
| Logo carousel | â Marquee | â InfiniteMovingCards |
| Hero spotlight | â | â Spotlight |
| Device mockup | â Safari/iPhone | â |
| 3D card tilt | â | â 3D Card |
Rule: Magic UI = polished SaaS, Aceternity = dramatic effects
Troubleshooting
"Component not found":
â npx magicui-cli@latest add [name]
â Check components/magicui/[name].tsx
"Animation not playing":
â Add 'use client'
â Check framer-motion installed
"Hydration mismatch":
â dynamic(() => ..., { ssr: false })
"Marquee stuttering":
â Increase [--duration:Xs]
â Use pauseOnHover
References
- components.md â Full component API with all props
External Resources
- https://magicui.design/docs â Documentation
- For latest API â use context7 skill
Repository

petbrains
Author
petbrains/mvp-builder/.claude/skills/frontend-magic-ui
4
Stars
0
Forks
Updated5d ago
Added1w ago