-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathLoader.jsx
77 lines (72 loc) · 1.62 KB
/
Loader.jsx
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import React from "react";
import { motion } from "framer-motion";
const loadingContainer = {
width: "4rem",
height: "4rem",
display: "flex",
justifyContent: "space-around",
};
const loadingCircle = {
display: "block",
width: "1rem",
height: "1rem",
backgroundColor: "#3A36DB",
borderRadius: "0.5rem",
};
const loadingContainerVariants = {
start: {
transition: {
staggerChildren: 0.2,
},
},
end: {
transition: {
staggerChildren: 0.2,
},
},
};
const loadingCircleVariants = {
start: {
y: "0%",
},
end: {
y: "60%",
},
};
const loadingCircleTransition = {
duration : 0.4,
yoyo : Infinity,
ease: 'easeInOut'
}
const Loader = () => {
return (
<div>
<div className="fixed w-full min-h-screen z-50 bg-black opacity-30" />
<div className="flex fixed w-full justify-center items-center h-screen">
<motion.div
style={loadingContainer}
variants={loadingContainerVariants}
initial="start"
animate="end"
>
<motion.span
style={loadingCircle}
variants={loadingCircleVariants}
transition={loadingCircleTransition}
></motion.span>
<motion.span
style={loadingCircle}
variants={loadingCircleVariants}
transition={loadingCircleTransition}
></motion.span>
<motion.span
style={loadingCircle}
variants={loadingCircleVariants}
transition={loadingCircleTransition}
></motion.span>
</motion.div>
</div>
</div>
);
};
export default Loader;