-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathApp.js
More file actions
45 lines (37 loc) · 1.13 KB
/
App.js
File metadata and controls
45 lines (37 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import {motion, AnimatePresence} from 'framer-motion';
import { useState } from 'react';
import './App.css';
function App() {
const [isOpen, setIsOpen] = useState(false);
return (
<div className="App">
<motion.div
transition={{layout: { duration: 1, type:"spring"}}}
onClick={() => setIsOpen(!isOpen)}
style={{borderRadius: "1rem", boxShadow: '0px 10px 30px rgba(0,0,0)'}}
className="card">
<motion.h2 layout="position">Card Animation 🚀</motion.h2>
<AnimatePresence>
{isOpen && (
<motion.div
initial={{opacity: 0}}
animate={{opacity: 1}}
transition={{duration: 1}}
exit={{ opacity: 0}}
className="expand"
layout
>
<p>
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Animi maxime asperiores culpa, omnis vel, repellat atque doloribus, quis in est facilis magni. Ut suscipit culpa corrupti similique possimus nulla sit.
</p>
<p>
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Voluptas, quam.
</p>
</motion.div>
)}
</AnimatePresence>
</motion.div>
</div>
);
}
export default App;