| 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
 | | import { useEffect } from "react" |  | import { motion, stagger, useAnimate } from "framer-motion" |  |   |  | export const WordEffect = ({ |  |     words, |  |     filter = true, |  |     duration = 0.5, |  |     delay = 0.1, |  |     color = "black", |  | }) => { |  |     const [scope, animate] = useAnimate() |  |     const wordsArray = words.split(" ") |  |     useEffect(() => { |  |         animate( |  |             "span", |  |             { |  |                 opacity: 1, |  |                 filter: filter ? "blur(0px)" : "none", |  |             }, |  |             { |  |                 duration: duration ?? 1, |  |                 delay: stagger(delay ?? 0.1), |  |             }, |  |         ) |  |     }, [scope.current]) |  |   |  |     const renderWords = () => { |  |         return ( |  |             <motion.div ref={scope}> |  |                 {wordsArray.map((word, idx) => { |  |                     return ( |  |                         <motion.span |  |                             key={word + idx} |  |                             style={{ |  |                                 opacity: 0, |  |                                 filter: filter ? "blur(10px)" : "none", |  |                                 color: color, |  |                                 fontWeight: 'bold', |  |                                 display: 'inline-block', |  |                             }} |  |                         > |  |                             {word}  |  |                         </motion.span> |  |                     ) |  |                 })} |  |             </motion.div> |  |         ) |  |     } |  |   |  |     return ( |  |         <div |  |             style={{ |  |                 fontWeight: 'bold', |  |             }} |  |         > |  |             <div style={{ marginTop: '1rem' }}> |  |                 <div |  |                     style={{ |  |                         color: 'black', |  |                         fontSize: '1.5rem', |  |                         lineHeight: '2rem', |  |                         letterSpacing: '0.05em', |  |                     }} |  |                 > |  |                     {renderWords()} |  |                 </div> |  |             </div> |  |         </div > |  |     ) |  | } | 
 |