Aceternity UI
面向营销页面和创意网站的动画组件集合
ReactTailwind CSS动画组件Framer Motion
Aceternity UI 是基于 Framer Motion 和 Tailwind CSS 的动画 UI 组件集合,提供 200+ 电影级视觉特效组件,采用 copy-paste 模式分发,专为营销页面和 Landing Page 设计。
Aceternity UI
面向营销页面和创意网站的动画组件集合,基于 Framer Motion 和 Tailwind CSS,采用 copy-paste 模式分发。
技术简介说明
Aceternity UI 是由 Manu Arora 创建的动画 UI 组件集合,专注于为营销页面、Landing Page 和产品首页提供视觉冲击力极强的动画效果。它不是传统的 UI 组件库,而是一个"动画特效库"——提供 3D 翻转卡片、光束碰撞、粒子背景、滚动驱动动画等电影级视觉效果。
Aceternity UI 采用与 shadcn/ui 相同的 copy-paste 模式,组件源码直接复制到项目中,完全可定制。所有动画基于 Framer Motion 实现,支持弹簧物理、布局动画、滚动动画、手势交互等高级特性。
截至 2026 年初,Aceternity UI 拥有 15K-28K GitHub Stars(不同来源统计口径不同),是 Tailwind 生态中最受欢迎的动画组件库之一。2025 年 12 月入选 shadcn/ui Awesome 组件注册表。
基本信息
- 官网:https://ui.aceternity.com
- GitHub:https://github.com/aceternity
- License:免费组件开源可用;Pro 部分商业授权
- 最新版本:持续更新(非 npm 包,无传统版本号)
- 主要维护者:Manu Arora(@manuarora700 / @mannupaaji)
快速上手
安装
# 前置要求:Next.js 或 React 项目 + Tailwind CSS
# 安装 Framer Motion(核心依赖)
npm install framer-motion
# 可选:常用工具依赖
npm install clsx tailwind-merge基础配置
# 1. 浏览 https://ui.aceternity.com/components
# 2. 选择组件,复制源码
# 3. 粘贴到项目 components/ 目录
# 4. 确保 Tailwind CSS 配置包含所需工具类最小示例
// components/ui/background-beams.tsx(从官网复制)
import { BackgroundBeams } from '@/components/ui/background-beams'
export default function HeroSection() {
return (
<div className="h-[40rem] w-full rounded-md bg-neutral-950 relative flex flex-col items-center justify-center antialiased">
<div className="max-w-2xl p-4">
<h1 className="relative z-10 text-lg md:text-7xl bg-clip-text text-transparent bg-gradient-to-b from-neutral-200 to-neutral-600 text-center font-sans font-bold">
加入等待列表
</h1>
<p className="text-neutral-500 max-w-lg mx-auto my-2 text-sm text-center relative z-10">
欢迎加入我们的产品等待列表
</p>
</div>
<BackgroundBeams />
</div>
)
}核心概念与架构
动画引擎:Framer Motion
Aceternity UI 的所有动画完全基于 Framer Motion:
| 动画技术 | 描述 |
|---|---|
| Spring Physics | 基于弹簧物理的自然动画,流畅不生硬 |
| Layout Animations | 元素尺寸/位置变化时自动平滑过渡 |
| Scroll Animations | 滚动触发动画(3D 旋转、视差等) |
| Direction-Aware Hover | 感知鼠标进入方向的悬停效果 |
| Gesture Support | 交互式 hover、tap、drag 动画 |
| SVG Displacement Filters | SVG 变位滤镜特效 |
| Variants | 预构建动画变体,便于定制 |
架构模式:Copy-Paste
浏览网站 → 选择组件 → 复制源码 → 粘贴到项目
- 组件直接成为你代码库的一部分
- 完全可定制,无版本锁定
- 无 npm 包依赖
组件解剖(以 Spotlight 为例)
// components/ui/spotlight.tsx
import { motion } from 'framer-motion'
export const Spotlight = ({ gradientFirst, ...props }) => {
return (
<motion.div
className="pointer-events-none fixed z-[100] h-screen w-screen opacity-0"
animate={{ opacity: 1 }}
transition={{ duration: 0.5 }}
>
{/* SVG 渐变和滤镜实现聚光灯效果 */}
</motion.div>
)
}核心特性
- 200+ 组件:覆盖卡片、背景、文字动画、导航、滚动效果等
- Framer Motion 驱动:弹簧物理、布局动画、滚动动画、手势交互
- 暗色优先设计:默认暗色主题,科技感强
- Copy-Paste 模式:完全源码控制,无版本锁定
- 3D 效果:3D 卡片翻转、GitHub Globe 等
- 滚动驱动:视差滚动、3D 旋转、容器滚动动画
- SVG 特效:变位滤镜、光束碰撞、粒子效果
- Pro 模板:SaaS、营销页等完整模板(付费)
生态图
核心组件
| 项目 | 说明 |
|---|---|
| Aceternity UI | 核心动画组件库 |
| AceStitch | 配套工具 |
| saasternity | 开源 SaaS 模板 |
组件分类
| 类别 | 示例 |
|---|---|
| Cards(卡片) | 3D 翻转卡片、发光边框卡片、悬停卡片 |
| Backgrounds(背景) | Aurora Background、光束碰撞、点阵网格、涟漪效果 |
| Text(文字动画) | 打字机效果、加密揭示、翻页显示器、渐变文字 |
| Navigation(导航) | 动画导航栏、侧边栏 |
| Scroll Effects(滚动效果) | 容器滚动动画、3D 旋转、视差滚动 |
| 3D Elements(3D 元素) | 3D 卡片、GitHub Globe |
| Hero Sections(英雄区) | 动画首屏模板 |
| Feature Sections(功能区) | 产品特性展示组件 |
| Loaders(加载器) | 创意加载动画 |
| Blocks / Templates | 博客区块、空状态、页脚、FAQ |
相关工具
| 工具 | 说明 |
|---|---|
| shadcn/ui Awesome | 收录为社区组件 |
| 21st.dev | 组件展示平台 |
| MCP 工具 | AI 集成工具 |
| Svelte 移植 | 社区 Svelte 版本 |
适用场景
- 营销页面 / Landing Page:核心定位,视觉冲击力强
- 作品集 / Portfolio:动画展示个人作品
- SaaS 产品首页:Pro 提供 SaaS 模板
- 产品发布页:动画叙事、滚动驱动
- 创意机构网站:"电影级"视觉体验
- 技术产品首页:暗色科技感风格
- 活动页面:动态视觉吸引注意力
开发与工程化
开发流程
- 浏览官网选择所需动画组件
- 复制组件源码到项目
- 确保 Framer Motion 已安装
- 按需调整动画参数(颜色、速度、触发条件)
- 搭配 shadcn/ui 构建完整页面
构建部署
Aceternity UI 组件是普通 React 代码,构建流程与标准 Next.js/React 项目一致:
npm run build # Next.js 或 React 构建性能优化注意事项
- 复杂动画使用
will-change优化 - 避免在主线程触发大量 layout 动画
- 移动端适当简化或关闭复杂动画
- 注意
prefers-reduced-motion媒体查询
性能与安全
性能特点
| 维度 | 说明 |
|---|---|
| Framer Motion | 核心依赖,约 30KB(gzip) |
| Canvas 动画 | 部分组件使用 Canvas,性能开销较大 |
| 3D 效果 | WebGL/3D 变换在低端设备可能卡顿 |
| 滚动动画 | 监听滚动事件,需注意性能影响 |
优化建议
// ✅ 推荐:减少动画复杂度
<motion.div
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.3 }}
/>
// ✅ 推荐:响应 prefers-reduced-motion
const prefersReducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)')
// ✅ 推荐:移动端降级
const isMobile = useIsMobile()
{!isMobile && <ComplexAnimation />}可访问性注意事项
- 所有动画组件应尊重
prefers-reduced-motion - 避免自动播放的动画干扰用户
- 注意动画不应阻塞主要内容渲染
技术对比
| 维度 | Aceternity UI | Magic UI | react-bits | shadcn/ui |
|---|---|---|---|---|
| 定位 | 电影级动画 | 专业感动画 | 轻量动画片段 | 基础 UI 组件 |
| 动画引擎 | Framer Motion | Framer Motion | CSS / GSAP | 无内置动画 |
| 组件数 | 200+ | 50+ | 多 | 50+ |
| GitHub Stars | 15K-28K | ~20K+ | 37K | 118K+ |
| 风格 | 暗色、炫酷、科技感 | 简洁、专业 | 灵活、轻量 | 中性、基础 |
| 安装模式 | Copy-Paste | Copy-Paste | Copy-Paste | Copy-Paste |
| 最佳场景 | 营销页、创意网站 | 客户提案、SaaS | 快速原型 | 所有场景基础组件 |
关键差异
- vs Magic UI:Aceternity 更"炫酷"适合创意网站;Magic UI 更"专业"适合客户提案
- vs react-bits:Aceternity 组件更完整;react-bits 更轻量灵活
- vs shadcn/ui:Aceternity 专注动画视觉;shadcn/ui 提供基础功能组件
最佳实践
使用原则
- 按需使用,不要贪多:一个页面 2-3 个动画焦点即可
- 性能优先:复杂动画使用
will-change - 移动端降级:部分复杂动画在移动端应简化或关闭
- 可访问性:注意
prefers-reduced-motion媒体查询 - 暗色模式优先:Aceternity 组件默认暗色设计
- 搭配 shadcn/ui:Aceternity 负责视觉,shadcn/ui 负责功能
代码组织
components/
├── ui/ # shadcn/ui 基础组件
├── effects/ # Aceternity 动画组件
├── sections/ # 页面区块组合
└── features/ # 业务功能组件
常见陷阱
- 一个页面使用过多动画导致视觉疲劳
- 忽略移动端性能问题
- 忘记处理
prefers-reduced-motion - 硬编码动画参数不便后续调整
技术局限与边界
| 限制 | 说明 |
|---|---|
| Framer Motion 依赖 | 所有组件强依赖 Framer Motion |
| 非 npm 包 | Copy-paste 模式意味着更新需手动同步 |
| 暗色优先 | 亮色主题适配需要额外工作 |
| 可访问性风险 | 大量动画可能导致 prefers-reduced-motion 兼容问题 |
| 性能 | 复杂动画(3D、Canvas)在低端设备可能卡顿 |
| 组件覆盖不完整 | 缺少表单、表格、数据密集等实用组件 |
| Pro 付费 | 高级模板/Blocks 需要购买 All-Access Pass |
| React/Next.js 绑定 | 主要面向 React 生态 |
不太适合的场景
- 后台管理系统(过于花哨)
- 表单密集型应用(动画价值有限)
- 企业级数据展示(缺少实用组件)
- 亮色主题为主的项目(需要大量调整)
- 非 React 项目(主要面向 React 生态)
学习资源
官方资源
社区资源
- GitHub
- Twitter/X - @mannupaaji
- YouTube 教程(Manu Arora 频道)
- Reddit r/reactjs
- 21st.dev
配套项目
- saasternity — 开源 SaaS 模板
- AceStitch — 配套工具
2026 年现状
最新版本
| 时间 | 事件 |
|---|---|
| 2026 年初 | 组件总量突破 200+,每月新增 |
| 2026.3 | 多篇对比评测文章发布 |
发展趋势
- 持续新增组件:每月新增动画组件和 Blocks
- Pro 版本扩展:更多商业模板和 Blocks
- AI 工具集成:Claude Code Skill、MCP Server
- saasternity 模板:开源 SaaS 模板持续更新
社区活跃度
- 15K-28K GitHub Stars
- 入选 shadcn/ui Awesome 注册表
- YouTube 教程持续产出
- Reddit 活跃讨论
未来路线图
- 更多动画组件和效果
- 扩展 Pro 模板库
- 改进可访问性支持
- 优化移动端性能