Magic UI logo

Magic UI

免费开源的 React 动画组件库,专为 SaaS 落地页和营销站设计

ReactTailwind CSS动画组件SaaS 落地页

Magic UI 提供 150+ 动画组件和特效,采用 copy-paste 模式分发,定位为 shadcn/ui 的装饰层,专注于营销页面和落地页的动画视觉特效。

Magic UI

免费开源的 React 动画组件库,专为 SaaS 落地页和营销站设计,提供 150+ 可复制粘贴的动画组件,定位为 "shadcn/ui 的完美搭档"。

技术简介说明

Magic UI 是一个专注于动画效果的 React 组件库,由 Dillion Verma 创建。它提供 150+ 动画组件和特效,采用与 shadcn/ui 相同的复制粘贴模式分发,代码直接进入你的项目,无 npm 运行时依赖。

Magic UI 的核心定位是"shadcn/ui 的装饰层"。shadcn/ui 提供基础应用 UI(表单、表格、对话框、导航),而 Magic UI 专注于动画和视觉特效(粒子、光束、地球仪、文字动画)。两者结合可以快速构建专业级的营销页面和落地页。

截至 2026 年 7 月,Magic UI 拥有 21,500+ GitHub Stars,1,000+ Forks,1,365 次提交。Pro 版本声称有 5,000+ 开发者使用。它是当前 React 生态中最大的动画组件库之一。

基本信息

快速上手

安装

# 初始化(二选一)
npx shadcn@latest init           # 方式一:通过 shadcn CLI(推荐)
npx magicui-cli@latest init      # 方式二:通过 magicui CLI
 
# 添加组件(二选一)
npx shadcn@latest add @magicui/globe    # 方式一
npx magicui-cli add globe               # 方式二

基础配置

初始化后自动生成以下配置:

// components.json(自动生成)
{
  "style": "default",
  "rsc": true,
  "tsx": true,
  "tailwind": {
    "config": "tailwind.config.js",
    "css": "app/globals.css",
    "baseColor": "neutral",
    "cssVariables": true
  },
  "aliases": {
    "components": "@/components",
    "utils": "@/lib/utils",
    "ui": "@/components/ui"
  }
}
// tailwind.config.js(自动注入 Magic UI 动画定义)
module.exports = {
  theme: {
    extend: {
      animation: {
        marquee: "marquee var(--duration) linear infinite",
        "spin-slow": "spin 3s linear infinite",
      },
      keyframes: {
        marquee: {
          from: { transform: "translateX(0)" },
          to: { transform: "translateX(calc(-100% - var(--gap)))" },
        },
      },
    },
  },
}

最小示例

"use client"  // 动画组件必须添加 "use client"
 
import { Globe } from "@/components/ui/globe"
 
export default function LandingPage() {
  return (
    <div className="relative h-screen w-full">
      <Globe />
      <div className="absolute inset-0 flex items-center justify-center">
        <h1 className="text-4xl font-bold text-white">
          全球业务展示
        </h1>
      </div>
    </div>
  )
}

核心概念与架构

定位:shadcn/ui 的装饰层

层级技术职责
基础层shadcn/ui表单、表格、对话框、导航等应用 UI
装饰层Magic UI动画、特效、视觉亮点
动画引擎Motion(原 Framer Motion)驱动所有动画效果
无障碍层Radix UI部分组件的可访问性原语

技术栈

技术角色说明
React 18+基础框架核心运行时
TypeScript类型安全完整类型定义
Tailwind CSS样式系统工具类优先
Motion动画引擎核心动画库(~35KB gzipped)
Radix UI无障碍原语部分组件的可访问性基础
CobeWebGL 地球仪~5KB 轻量 WebGL 库
class-variance-authority变体管理组件变体系统
clsx + tailwind-merge工具函数cn() 合并类名

Copy-Paste 模式

浏览官网 → 选择组件 → 复制源码 → 粘贴到 components/ui/
  • 代码直接进入你的项目
  • 完全可定制,无版本锁定
  • 无 npm 运行时依赖(除动画引擎外)

性能特征

指标
单个组件 bundle<5KB(tree-shaking 后)
共享 Motion 库~35KB gzipped
Three.js 依赖(vs Aceternity UI 的 ~600KB)
Lighthouse 评分Performance: 81, Accessibility: 93, Best Practices: 96, SEO: 100

核心特性

  • 150+ 动画组件:同类库中最多
  • 签名级组件:Globe(WebGL 地球仪)、Marquee(无限滚动)、Bento Grid、Dock、Animated Beam、Border Beam、Particles、Confetti、Animated List
  • 文字动画:Text Animate、Aurora Text、Number Ticker、Morphing Text 等 18 个组件
  • 背景特效:Dot Pattern、Grid Pattern、Retro Grid、Noise Texture 等 11 个组件
  • 设备模型:Safari、iPhone、Android 模型
  • Canvas/WebGL 组件:Globe、Particles、Confetti、Meteors、Interactive Grid Pattern
  • shadcn 原生集成:唯一共享 shadcn CLI 和注册系统的动画库
  • MCP 支持:官方 MCP 服务器支持 AI 编辑器直接使用
  • Pro 模板:$199 一次性获得 50+ 高级页面区块

生态图

核心组件

项目说明
Magic UI核心开源组件库(150+ 组件)
Magic UI Pro商业付费版本(50+ 页面区块、9+ 模板)
magicui-cli传统 CLI(已不活跃)
@magicuidesign/cli新版 CLI(v1.0.3,2025.4)
@magicuidesign/mcpMCP 服务器(v2.0.0,2026.3)

签名级组件

组件描述适用场景
Globe 🌐WebGL 3D 自转地球(基于 Cobe)落地页、全球业务展示
Marquee无限滚动文字/Logo推荐信、Logo 墙
Bento Grid非对称网格布局功能展示
DockmacOS 风格扩展 Dock导航栏
Animated Beam动画 SVG 光束数据流、连接展示
Border Beam边框光效追踪卡片高亮
ParticlesCanvas 粒子系统背景、Hero 区
Confetti彩纸庆祝爆炸成功状态
Animated List顺序揭示动画通知、活动列表

2025-2026 新增组件

  • Dotted Map — 点状地图可视化
  • Glare Hover — 悬停眩光反射
  • Animated Theme Toggler — 动画明暗切换
  • Smooth Cursor — 物理平滑光标
  • Progressive Blur — 滚动边缘模糊
  • Light Rays — 动态光线束
  • Noise Texture — 胶片噪点纹理
  • Glyph Matrix — 最新主页推荐组件

适用场景

✅ 最适合的场景

场景推荐度说明
SaaS 落地页/营销站⭐⭐⭐⭐⭐核心价值所在,最佳选择
开发者工具/技术文档站⭐⭐⭐⭐⭐完美适配
与 shadcn/ui 配合⭐⭐⭐⭐⭐天然搭档
Portfolio/个人网站⭐⭐⭐⭐非常适合
API 文档站⭐⭐⭐⭐技术产品展示

❌ 不太适合的场景

场景推荐度说明
后台/Dashboard⭐⭐非设计目标,应用 UI 用 shadcn
数据可视化不适用,应选 Tremor
多框架项目仅支持 React
强无障碍要求⭐⭐无障碍支持不一致

开发与工程化

开发流程

  1. 使用 npx shadcn@latest init 初始化项目
  2. 通过 npx shadcn@latest add @magicui/&lt;component&gt; 按需添加组件
  3. 在组件中添加 "use client" 指令(动画组件必须)
  4. 按需调整动画参数和样式

构建部署

npm run build  # 标准 Next.js 或 React 构建

Next.js App Router 兼容性

方面状态
Next.js App Router✅ 完全兼容
React Server Components⚠️ 动画组件需 "use client"
纯 CSS 动画组件✅ 可在 Server Components 使用

MCP 集成

Magic UI 提供官方 MCP 服务器(@magicuidesign/mcp v2.0.0),允许 AI 编辑器(Claude Code、Cursor 等)直接搜索和安装组件。

性能与安全

性能特点

维度说明
Bundle Size极小,单组件 <5KB
Motion 库~35KB gzipped(共享依赖)
Three.js❌ 无依赖(vs Aceternity 的 ~600KB)
Tree Shaking天然支持
Canvas/WebGL部分组件使用,性能开销较大

优化建议

// ✅ 推荐:按需引入组件
import { Globe } from "@/components/ui/globe"
 
// ✅ 推荐:配合 prefers-reduced-motion
const prefersReducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)')
{!prefersReducedMotion && <AnimatedComponent />}
 
// ✅ 推荐:移动端降级
const isMobile = useIsMobile()
{!isMobile && <ComplexAnimation />}
 
// ❌ 避免:过度堆叠动画
// 一个页面使用过多动画组件会导致性能问题

可访问性注意事项

  • 动画组件应尊重 prefers-reduced-motion
  • 并非所有组件都提供键盘可访问性
  • 避免自动播放的动画干扰用户
  • Canvas/WebGL 组件注意性能影响

技术对比

Magic UI vs Aceternity UI

维度Magic UIAceternity UI
组件数量150+(最大广度)80+(更精调)
GitHub Stars~21.5k~28k
动画风格精致的微交互、光泽、光束大胆、戏剧性视觉冲击
依赖仅 Motion(~35KB)Motion + Three.js(~600KB)
主题默认深色 SaaS 美学颜色常硬编码,设计系统集成更难
Bundle 体积更轻较重(Three.js)
最佳场景开发工具、API 文档、技术产品Hero 区、需要最大视觉冲击的落地页

社区共识"要最大视觉冲击 → Aceternity;要更多选择和更小体积 → Magic UI"

Magic UI vs shadcn/ui — 互补关系

维度shadcn/uiMagic UI
定位基础层 — 表单、对话框、表格、导航装饰层 — 动画、特效、视觉亮点
组件数~50+ 核心原语150+ 动画特效
动画极少(通过 Radix 做无障碍)重度(Motion 驱动)
无障碍优秀(Radix UI 原语 + reduced-motion)因组件而异,不够一致
项目角色应用 Shell、仪表盘、表单落地页、营销首页

常见模式:许多团队使用 shadcn/ui 构建应用 Shell + Magic UI 做公开首页

与其他库对比

与 Magic UI 的关系
Vercel Geist UI极简设计系统,不是竞品。Geist 做功能应用,Magic UI 做视觉冲击
Tremor完全不重叠。Tremor 做仪表盘/数据可视化,Magic UI 做动画
Radix Themes互补。Magic UI 底层就用 Radix。Radix Themes 做应用 UI
ReactBits2025 年新兴竞品,API 更简洁
Annnimate多框架(React + Vue + vanilla),GSAP 驱动,付费 €249/年

最佳实践

使用原则

  1. 按需使用,不要贪多:一个页面 2-3 个动画焦点即可
  2. shadcn 做基础,Magic UI 做亮点:组合使用效果最佳
  3. 性能优先:避免过度堆叠动画
  4. 移动端降级:部分复杂动画在移动端应简化或关闭
  5. 可访问性:注意 prefers-reduced-motion 媒体查询
  6. 深色主题优先:Magic UI 默认深色 SaaS 风格
  7. 不要硬编码颜色:使用 CSS 变量和 Tailwind 主题

代码组织

components/
├── ui/           # shadcn/ui + Magic UI 组件
├── sections/     # 页面区块组合
└── features/     # 业务功能组件

常见陷阱

  • 忘记在动画组件中添加 "use client" 指令
  • 一个页面使用过多动画导致性能问题
  • 忽略 prefers-reduced-motion 可访问性需求
  • 硬编码颜色值而不是使用 CSS 变量
  • 期望所有组件都有完整的键盘可访问性

技术局限与边界

限制说明
范围狭窄无数据表格、表单、导航等应用 UI 模式
无障碍不一致reduced-motion 支持因组件而异,并非所有组件都键盘可访问
性能隐忧重度动画可能导致 CPU/GPU 负载
仅 React不支持 Vue、Svelte 或原生 Web
深色主题偏好默认美学偏深色 SaaS 风格,适配其他品牌需额外工作
Motion 库限制复杂滚动序列和时间线管理较困难
无 Figma 文件Pro 版不含设计文件
"形式大于实质"部分开发者认为动画可能掩盖实际信息

不太适合的场景

  • 需要完整应用 UI 的项目(使用 shadcn/ui)
  • 数据密集型应用(使用 Tremor)
  • 多框架项目(仅支持 React)
  • 强无障碍合规要求(无障碍支持不一致)
  • 亮色主题为主的项目(需要额外调整)

学习资源

官方资源

社区资源

知名用户

公司背景
anara.comYC S24
infisical.comYC W23,融资 $2.8M
langfuse.comYC W23,融资 $4M
million.devYC W24
cognosys.aiGoogle Ventures 投资,融资 $2M

2026 年现状

最新版本

指标
GitHub Stars21,500+
Forks1,000+
Commits1,365
Watchers42
Open Issues0
LicenseMIT

定价模型

层级价格包含内容
免费版$0150+ 动画组件,MIT 许可,社区支持
Pro 版$199 一次性50+ 页面区块、9+ 网站模板、终身更新、商用许可

Pro 内容明细

  • 9 种 Pricing 区块变体
  • 完整落地页区块:Header、Hero、Social Proof、Feature(Scroll/Slideshow/Cards)、Pricing、CTA、FAQ、Footer
  • 7 套完整模板:SaaS、Mobile App、Dev Tool、AI Agent、Startup、Portfolio、Codeforge

发展趋势

  • 持续新增组件:Dotted Map、Glare Hover、Smooth Cursor、Progressive Blur、Light Rays、Noise Texture、Glyph Matrix 等
  • AI 工具集成:MCP 服务器支持 AI 编辑器直接使用
  • shadcn 生态深化:唯一共享 shadcn CLI 和注册系统的动画库
  • Pro 版本扩展:更多页面区块和模板

社区活跃度

  • 21,500+ GitHub Stars
  • 1,000+ Forks
  • 活跃的 Discord 社区
  • 164 篇技术博客
  • 5,000+ Pro 开发者用户

社区评价

正面

"Best fancy UI library for bad designing developer" — r/godot

负面(Hacker News)

"What the fuck did you do to my CPU" — 对展示站性能的评价 "Just visual noise" — 对组件实用性的质疑 "A collection of one-off Dribbble designs" — 对系统性的质疑

未来路线图

  • 持续扩展动画组件库
  • 改进可访问性支持
  • 优化性能
  • 扩展 Pro 模板库