magicui
Magic UIは、Reactで動きのあるUIコンポーネントを手軽に追加し、目を引くランディングページやマーケティングサイトを構築、テキストアニメーションや視覚効果などを実現するSkill。
📜 元の英語説明(参考)
Add animated React UI components for landing pages and marketing sites with Magic UI. Use when: adding animated UI components, building impressive landing pages, creating particle effects, text animations, number counters, shimmer buttons, and visual effects in React. Tailwind CSS based and shadcn/ui compatible.
🇯🇵 日本人クリエイター向け解説
Magic UIは、Reactで動きのあるUIコンポーネントを手軽に追加し、目を引くランディングページやマーケティングサイトを構築、テキストアニメーションや視覚効果などを実現するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o magicui.zip https://jpskill.com/download/15095.zip && unzip -o magicui.zip && rm magicui.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15095.zip -OutFile "$d\magicui.zip"; Expand-Archive "$d\magicui.zip" -DestinationPath $d -Force; ri "$d\magicui.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
magicui.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
magicuiフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Magic UI
概要
Magic UI は、Tailwind CSS と shadcn/ui を基盤として構築された、アニメーション付きの React コンポーネントのコレクションです。コンポーネントは CLI を介してプロジェクトに直接インストールされます。ソースコードはお客様が所有し、自由にカスタマイズできます。
主な特徴:
- CLI ベースのインストール (ランタイムパッケージの依存関係なし)
- Tailwind CSS + テーマ設定のための CSS 変数
- shadcn/ui 互換
- TypeScript ファースト
セットアップ
前提条件
# Tailwind CSS が構成されている必要があります
npm install tailwindcss @tailwindcss/typography
# shadcn/ui が初期化されている必要があります (または手動の cn ユーティリティ)
npx shadcn@latest init
コンポーネントのインストール
npx magicui-cli add <component-name>
これにより、コンポーネントのソースが components/magicui/ にコピーされます。
コンポーネントカタログと例
1. AnimatedBeam — 要素間を接続する線
npx magicui-cli add animated-beam
import { AnimatedBeam } from "@/components/magicui/animated-beam";
import { useRef } from "react";
export function BeamDemo() {
const containerRef = useRef<HTMLDivElement>(null);
const fromRef = useRef<HTMLDivElement>(null);
const toRef = useRef<HTMLDivElement>(null);
return (
<div ref={containerRef} className="relative flex h-64 items-center justify-between p-10">
<div ref={fromRef} className="h-12 w-12 rounded-full bg-blue-500" />
<div ref={toRef} className="h-12 w-12 rounded-full bg-purple-500" />
<AnimatedBeam containerRef={containerRef} fromRef={fromRef} toRef={toRef} />
</div>
);
}
2. Marquee — 無限スクロールティッカー
npx magicui-cli add marquee
import Marquee from "@/components/magicui/marquee";
const logos = ["Vercel", "Stripe", "Linear", "Notion", "Figma"];
export function LogoMarquee() {
return (
<Marquee pauseOnHover className="[--duration:20s]">
{logos.map((name) => (
<div key={name} className="mx-8 text-xl font-semibold text-muted-foreground">
{name}
</div>
))}
</Marquee>
);
}
3. ShimmerButton — アニメーション付きグラデーション CTA
npx magicui-cli add shimmer-button
import { ShimmerButton } from "@/components/magicui/shimmer-button";
export function HeroCTA() {
return (
<ShimmerButton
shimmerColor="#ffffff"
shimmerSize="0.1em"
shimmerDuration="2s"
background="linear-gradient(135deg, #6366f1, #8b5cf6)"
className="px-8 py-3 text-white font-semibold"
>
Get Started Free →
</ShimmerButton>
);
}
4. NumberTicker — アニメーション付きカウントアップ
npx magicui-cli add number-ticker
import NumberTicker from "@/components/magicui/number-ticker";
export function StatsSection() {
return (
<div className="grid grid-cols-3 gap-8 text-center">
<div>
<NumberTicker value={10000} className="text-5xl font-bold" />
<p className="text-muted-foreground">Active Users</p>
</div>
<div>
<NumberTicker value={99} className="text-5xl font-bold" />
<span className="text-5xl font-bold">%</span>
<p className="text-muted-foreground">Uptime</p>
</div>
<div>
<NumberTicker value={500} className="text-5xl font-bold" />
<p className="text-muted-foreground">Customers</p>
</div>
</div>
);
}
5. SparklesText — きらめくハイライトテキスト
npx magicui-cli add sparkles-text
import SparklesText from "@/components/magicui/sparkles-text";
export function HeroHeading() {
return (
<h1 className="text-6xl font-bold">
Build{" "}
<SparklesText text="faster" colors={{ first: "#6366f1", second: "#ec4899" }} />
{" "}with AI
</h1>
);
}
6. Ripple — パルス状の円エフェクト
npx magicui-cli add ripple
import { Ripple } from "@/components/magicui/ripple";
export function HeroBackground() {
return (
<div className="relative flex h-96 items-center justify-center overflow-hidden bg-background">
<Ripple mainCircleSize={200} numCircles={8} />
<p className="z-10 text-4xl font-bold">Connect Everything</p>
</div>
);
}
7. Confetti — お祝いのバースト
npx magicui-cli add confetti
import { useConfetti } from "@/components/magicui/confetti";
export function SuccessButton() {
const { fire } = useConfetti();
return (
<button
onClick={() => fire({ particleCount: 100, spread: 70, origin: { y: 0.6 } })}
className="rounded-lg bg-green-500 px-6 py-3 text-white font-semibold"
>
🎉 Complete Purchase
</button>
);
}
8. Meteors — 流れ星の背景
npx magicui-cli add meteors
import { Meteors } from "@/components/magicui/meteors";
export function HeroCard() {
return (
<div className="relative overflow-hidden rounded-2xl border bg-background p-8">
<Meteors number={20} />
<h2 className="relative z-10 text-3xl font-bold">Your Product Name</h2>
<p className="relative z-10 mt-2 text-muted-foreground">Tagline goes here</p>
</div>
);
}
9. BlurIn — テキストのフェードインとぼかし
npx magicui-cli add blur-in
import BlurIn from "@/components/magicui/blur-in";
export function AnimatedHero() {
return (
<BlurIn
word="The Future of Development"
className="text-5xl font-bold tracking-tight"
duration={1.2}
/>
);
}
10. Globe — 3D インタラクティブグローブ
npx magicui-cli add globe
import Globe from "@/components/magicui/globe";
export function GlobalSection() {
return (
<div className="flex flex-col items-center">
<h2 className="text-3xl font-bold">Available Worldwide</h2>
<Globe className="h-[500px] w-[500px]" />
</div>
);
}
完全なランディングページパターン
// app/page.tsx — Magic UI コンポーネントを使用した典型的なヒーローセクション
import BlurIn from "@/components/magicui/blur-in";
import { ShimmerButton } from "@/components/magicui/shimmer-button";
import { Ripple } from 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Magic UI
Overview
Magic UI is a collection of animated React components built on Tailwind CSS and shadcn/ui. Components are installed via CLI directly into your project — you own the source code and can customize freely.
Key traits:
- CLI-based install (no runtime package dependency)
- Tailwind CSS + CSS variables for theming
- shadcn/ui compatible
- TypeScript first
Setup
Prerequisites
# Must have Tailwind CSS configured
npm install tailwindcss @tailwindcss/typography
# Must have shadcn/ui initialized (or manual cn utility)
npx shadcn@latest init
Install a component
npx magicui-cli add <component-name>
This copies the component source into components/magicui/.
Component Catalog & Examples
1. AnimatedBeam — connecting lines between elements
npx magicui-cli add animated-beam
import { AnimatedBeam } from "@/components/magicui/animated-beam";
import { useRef } from "react";
export function BeamDemo() {
const containerRef = useRef<HTMLDivElement>(null);
const fromRef = useRef<HTMLDivElement>(null);
const toRef = useRef<HTMLDivElement>(null);
return (
<div ref={containerRef} className="relative flex h-64 items-center justify-between p-10">
<div ref={fromRef} className="h-12 w-12 rounded-full bg-blue-500" />
<div ref={toRef} className="h-12 w-12 rounded-full bg-purple-500" />
<AnimatedBeam containerRef={containerRef} fromRef={fromRef} toRef={toRef} />
</div>
);
}
2. Marquee — infinite scrolling ticker
npx magicui-cli add marquee
import Marquee from "@/components/magicui/marquee";
const logos = ["Vercel", "Stripe", "Linear", "Notion", "Figma"];
export function LogoMarquee() {
return (
<Marquee pauseOnHover className="[--duration:20s]">
{logos.map((name) => (
<div key={name} className="mx-8 text-xl font-semibold text-muted-foreground">
{name}
</div>
))}
</Marquee>
);
}
3. ShimmerButton — animated gradient CTA
npx magicui-cli add shimmer-button
import { ShimmerButton } from "@/components/magicui/shimmer-button";
export function HeroCTA() {
return (
<ShimmerButton
shimmerColor="#ffffff"
shimmerSize="0.1em"
shimmerDuration="2s"
background="linear-gradient(135deg, #6366f1, #8b5cf6)"
className="px-8 py-3 text-white font-semibold"
>
Get Started Free →
</ShimmerButton>
);
}
4. NumberTicker — animated counting up
npx magicui-cli add number-ticker
import NumberTicker from "@/components/magicui/number-ticker";
export function StatsSection() {
return (
<div className="grid grid-cols-3 gap-8 text-center">
<div>
<NumberTicker value={10000} className="text-5xl font-bold" />
<p className="text-muted-foreground">Active Users</p>
</div>
<div>
<NumberTicker value={99} className="text-5xl font-bold" />
<span className="text-5xl font-bold">%</span>
<p className="text-muted-foreground">Uptime</p>
</div>
<div>
<NumberTicker value={500} className="text-5xl font-bold" />
<p className="text-muted-foreground">Customers</p>
</div>
</div>
);
}
5. SparklesText — glittering highlight text
npx magicui-cli add sparkles-text
import SparklesText from "@/components/magicui/sparkles-text";
export function HeroHeading() {
return (
<h1 className="text-6xl font-bold">
Build{" "}
<SparklesText text="faster" colors={{ first: "#6366f1", second: "#ec4899" }} />
{" "}with AI
</h1>
);
}
6. Ripple — pulsing circle effect
npx magicui-cli add ripple
import { Ripple } from "@/components/magicui/ripple";
export function HeroBackground() {
return (
<div className="relative flex h-96 items-center justify-center overflow-hidden bg-background">
<Ripple mainCircleSize={200} numCircles={8} />
<p className="z-10 text-4xl font-bold">Connect Everything</p>
</div>
);
}
7. Confetti — celebration burst
npx magicui-cli add confetti
import { useConfetti } from "@/components/magicui/confetti";
export function SuccessButton() {
const { fire } = useConfetti();
return (
<button
onClick={() => fire({ particleCount: 100, spread: 70, origin: { y: 0.6 } })}
className="rounded-lg bg-green-500 px-6 py-3 text-white font-semibold"
>
🎉 Complete Purchase
</button>
);
}
8. Meteors — falling meteor streaks background
npx magicui-cli add meteors
import { Meteors } from "@/components/magicui/meteors";
export function HeroCard() {
return (
<div className="relative overflow-hidden rounded-2xl border bg-background p-8">
<Meteors number={20} />
<h2 className="relative z-10 text-3xl font-bold">Your Product Name</h2>
<p className="relative z-10 mt-2 text-muted-foreground">Tagline goes here</p>
</div>
);
}
9. BlurIn — text fade-in with blur
npx magicui-cli add blur-in
import BlurIn from "@/components/magicui/blur-in";
export function AnimatedHero() {
return (
<BlurIn
word="The Future of Development"
className="text-5xl font-bold tracking-tight"
duration={1.2}
/>
);
}
10. Globe — 3D interactive globe
npx magicui-cli add globe
import Globe from "@/components/magicui/globe";
export function GlobalSection() {
return (
<div className="flex flex-col items-center">
<h2 className="text-3xl font-bold">Available Worldwide</h2>
<Globe className="h-[500px] w-[500px]" />
</div>
);
}
Full Landing Page Pattern
// app/page.tsx — typical hero section with Magic UI components
import BlurIn from "@/components/magicui/blur-in";
import { ShimmerButton } from "@/components/magicui/shimmer-button";
import { Ripple } from "@/components/magicui/ripple";
import Marquee from "@/components/magicui/marquee";
import NumberTicker from "@/components/magicui/number-ticker";
export default function LandingPage() {
return (
<main>
{/* Hero */}
<section className="relative flex h-screen flex-col items-center justify-center text-center">
<Ripple mainCircleSize={300} numCircles={6} />
<BlurIn word="Ship Faster Than Ever" className="z-10 text-6xl font-bold" />
<p className="z-10 mt-4 text-xl text-muted-foreground">
The platform that gets you from idea to production
</p>
<ShimmerButton className="z-10 mt-8">Start for free</ShimmerButton>
</section>
{/* Social proof logos */}
<section className="py-12">
<Marquee className="[--duration:30s]">
{["Company A", "Company B", "Company C", "Company D", "Company E"].map((name) => (
<span key={name} className="mx-12 text-lg text-muted-foreground">{name}</span>
))}
</Marquee>
</section>
{/* Stats */}
<section className="py-20 text-center">
<div className="grid grid-cols-3 gap-12">
<div><NumberTicker value={50000} className="text-4xl font-bold" /><p>Users</p></div>
<div><NumberTicker value={99} className="text-4xl font-bold" /><span>%</span><p>Uptime</p></div>
<div><NumberTicker value={200} className="text-4xl font-bold" /><span>+</span><p>Countries</p></div>
</div>
</section>
</main>
);
}
Available Components (full list)
# Run to see all available components
npx magicui-cli list
Popular ones: animated-beam, animated-gradient-text, animated-grid-pattern, animated-list,
animated-shiny-text, aurora-text, blur-in, blur-fade, border-beam,
confetti, cool-mode, dock, dot-pattern, file-tree, flip-text,
globe, grid-pattern, hyper-text, interactive-hover-button, letter-pullup,
magic-card, marquee, meteors, morphing-text, neon-gradient-card,
number-ticker, orbiting-circles, particles, pointer, pulsating-button,
rainbow-button, retro-grid, ripple, safari, scroll-based-velocity,
shimmer-button, shine-border, shiny-button, sparkles-text,
spinning-text, terminal, text-reveal, ticker, typing-animation,
vanish-input, wavy-text, word-fade-in, word-pull-up, word-rotate
Troubleshooting
| Issue | Fix |
|---|---|
cn not found |
Install clsx + tailwind-merge and add lib/utils.ts |
| Animation not working | Check tailwind.config.ts has darkMode: "class" and CSS vars defined |
| Component not found | Run npx magicui-cli@latest add <name> (use @latest) |
| Peer dep warnings | Magic UI needs React 18+ and Tailwind 3+ |