Plasma Wave Component 45 – Aceternity UI 卡片容器 组件
A plasma wave component 45 component with Aceternity UI style animations and effects, built with React and Tailwind CSS.
@aceternity/card-containers-plasma-wave-component-45-423123-demo
tsx
1"use client";
2import React from "react";
3import { motion, useMotionValue, useTransform, useSpring } from "framer-motion";
4
5export const CardContainersPlasmaWaveComponent45423123 = ({ children, className }) => {
6 const x = useMotionValue(0);
7 const y = useMotionValue(0);
8 const rotateX = useTransform(y, [-100, 100], [10, -10]);
9 const rotateY = useTransform(x, [-100, 100], [-10, 10]);
10 const springX = useSpring(rotateX, { damping: 20 });
11 const springY = useSpring(rotateY, { damping: 20 });
12
13 return (
14 <motion.div
15 onMouseMove={(e) => {
16 const rect = e.currentTarget.getBoundingClientRect();
17 x.set(e.clientX - rect.left - rect.width / 2);
18 y.set(e.clientY - rect.top - rect.height / 2);
19 }}
20 onMouseLeave={() => { x.set(0); y.set(0); }}
21 style={{ rotateX: springX, rotateY: springY, transformPerspective: 1000 }}
22 className={className}
23 >
24 {children}
25 </motion.div>
26 );
27};
Installation
npx shadcn@latest add @aceternity/card-containers-plasma-wave-component-45-423123
npm install framer-motion clsx tailwind-merge
A plasma wave component 45 component with Aceternity UI style animations and effects, built with React and Tailwind CSS.
概述
Plasma Wave Component 45 是 Aceternity UI 组件库中的一个精选组件,专为 React + Tailwind CSS 项目设计。它提供了流畅的动画效果和现代化的视觉体验,可以轻松集成到你的项目中。
特性
- React + TypeScript 支持,类型安全
- Tailwind CSS 样式,响应式设计
- Framer Motion 动画引擎,流畅自然
- 复制即用,无需额外安装依赖
- 暗色模式兼容
- SSR/SSG友好,支持 Next.js
使用场景
- 产品落地页 - 为你的产品页面添加视觉冲击力
- 后台管理系统 - 提升管理界面的用户体验
- 个人作品集 - 展示你的技术实力
- SaaS 应用 - 为用户提供现代化的界面
- 内容展示 - 以引人入胜的方式展示内容
技术栈
- React 18+
- Tailwind CSS 3+
- Framer Motion / Motion
- TypeScript(可选)
兼容性
| 框架 | 支持状态 |
|---|---|
| Next.js 14+ | 完全支持 |
| Vite + React | 完全支持 |
| Create React App | 支持 |
| Remix | 支持 |
| Astro + React | 支持 |
- 确保已安装
framer-motion和tailwindcss - 组件使用
"use client"指令,适用于 App Router - 所有组件均支持暗色模式
- 建议在
tailwind.config.js中配置cn工具函数
Examples
Basic Usage
@aceternity/card-containers-plasma-wave-component-45-423123-demo
tsx
1"use client";
2import React from "react";
3import { motion } from "framer-motion";
4
5export const CardContainersPlasmaWaveComponent45423123 = ({ text, className }) => {
6 const words = text.split(" ");
7 return (
8 <motion.h1 className={className}>
9 {words.map((word, i) => (
10 <motion.span
11 key={i}
12 initial={{ opacity: 0, filter: "blur(10px)" }}
13 animate={{ opacity: 1, filter: "blur(0px)" }}
14 transition={{ delay: i * 0.1 }}
15 className="inline-block mr-2"
16 >
17 {word}
18 </motion.span>
19 ))}
20 </motion.h1>
21 );
22};
With Custom Props
@aceternity/card-containers-plasma-wave-component-45-423123-custom-demo
tsx
1"use client";
2import React from "react";
3import { motion } from "framer-motion";
4
5export const CardContainersPlasmaWaveComponent45423123 = ({ text, className }) => {
6 const words = text.split(" ");
7 return (
8 <motion.h1 className={className}>
9 {words.map((word, i) => (
10 <motion.span
11 key={i}
12 initial={{ opacity: 0, filter: "blur(10px)" }}
13 animate={{ opacity: 1, filter: "blur(0px)" }}
14 transition={{ delay: i * 0.1 }}
15 className="inline-block mr-2"
16 >
17 {word}
18 </motion.span>
19 ))}
20 </motion.h1>
21 );
22};
Advanced Configuration
@aceternity/card-containers-plasma-wave-component-45-423123-advanced-demo
tsx
1"use client";
2import React from "react";
3import { motion } from "framer-motion";
4
5export const CardContainersPlasmaWaveComponent45423123 = ({ text, className }) => {
6 const words = text.split(" ");
7 return (
8 <motion.h1 className={className}>
9 {words.map((word, i) => (
10 <motion.span
11 key={i}
12 initial={{ opacity: 0, filter: "blur(10px)" }}
13 animate={{ opacity: 1, filter: "blur(0px)" }}
14 transition={{ delay: i * 0.1 }}
15 className="inline-block mr-2"
16 >
17 {word}
18 </motion.span>
19 ))}
20 </motion.h1>
21 );
22};
Props
| Prop | Type | Default | Description | Required |
|---|---|---|---|---|
className |
string |
"" |
Additional CSS classes | No |
children |
React.ReactNode |
- |
Child elements | Yes |
intensity |
number |
1 |
Effect intensity | No |
onClick |
() => void |
- |
Click handler | No |