@@ -3,80 +3,174 @@ import Link from "next/link";
3
3
import { FaGithub , FaEnvelope } from "react-icons/fa" ;
4
4
import { RiKakaoTalkFill } from "react-icons/ri" ;
5
5
import { motion } from "framer-motion" ;
6
+ import { useState } from "react" ;
6
7
7
8
export default function Footer ( ) {
8
- const currentYear = new Date ( ) . getFullYear ( ) ;
9
+ const currentYear = new Date ( ) . getFullYear ( ) ;
10
+ const [ footerVisible , setFooterVisible ] = useState ( false ) ;
9
11
10
- return (
11
- < footer className = "w-full border-border/40 bg-background/50 backdrop-blur-sm py-6 md:py-8 mt-10" >
12
- < div className = "max-w-screen-2xl mx-auto px-4 sm:px-6 lg:px-8" >
13
- < div className = "flex flex-col md:flex-row justify-between items-center gap-4" >
14
- { /* Left side - Nav links */ }
15
- < div className = "flex flex-wrap justify-center md:justify-start gap-6" >
16
- < Link
17
- href = "/"
18
- className = "text-sm text-muted-foreground hover:text-primary transition-colors"
19
- >
20
- Home
21
- </ Link >
22
- < Link
23
- href = "/projects"
24
- className = "text-sm text-muted-foreground hover:text-primary transition-colors"
25
- >
26
- Portfolio
27
- </ Link >
28
- < Link
29
- href = "https://github.com/lazy-dinosaur"
30
- target = "_blank"
31
- className = "text-sm text-muted-foreground hover:text-primary transition-colors"
32
- >
33
- GitHub
34
- </ Link >
35
- </ div >
12
+ return (
13
+ < >
14
+ { footerVisible ? (
15
+ < > </ >
16
+ ) : (
17
+ < motion . div
18
+ initial = { { opacity : 0 , y : 20 } }
19
+ animate = { { opacity : 1 , y : 0 } }
20
+ exit = { { opacity : 0 , y : 20 } }
21
+ className = "fixed bottom-0 right-8 py-6 border-border/60 hidden xl:block"
22
+ >
23
+ { /* 소셜 링크 */ }
24
+ < div className = "flex items-center justify-center gap-4 mb-4" >
25
+ < Link
26
+ href = "https://github.com/lazy-dinosaur"
27
+ target = "_blank"
28
+ className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
29
+ >
30
+ < svg
31
+ xmlns = "http://www.w3.org/2000/svg"
32
+ viewBox = "0 0 24 24"
33
+ fill = "none"
34
+ stroke = "currentColor"
35
+ strokeWidth = "2"
36
+ strokeLinecap = "round"
37
+ strokeLinejoin = "round"
38
+ className = "w-4 h-4"
39
+ >
40
+ < path d = "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22" > </ path >
41
+ </ svg >
42
+ </ Link >
43
+ < Link
44
+
45
+ target = "_blank"
46
+ className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
47
+ >
48
+ < svg
49
+ xmlns = "http://www.w3.org/2000/svg"
50
+ viewBox = "0 0 24 24"
51
+ fill = "none"
52
+ stroke = "currentColor"
53
+ strokeWidth = "2"
54
+ strokeLinecap = "round"
55
+ strokeLinejoin = "round"
56
+ className = "w-4 h-4"
57
+ >
58
+ < path d = "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" > </ path >
59
+ < polyline points = "22,6 12,13 2,6" > </ polyline >
60
+ </ svg >
61
+ </ Link >
62
+ < Link
63
+ href = "https://open.kakao.com/o/sdG4BPjh"
64
+ target = "_blank"
65
+ className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
66
+ >
67
+ < svg
68
+ xmlns = "http://www.w3.org/2000/svg"
69
+ viewBox = "0 0 24 24"
70
+ fill = "currentColor"
71
+ className = "w-4 h-4"
72
+ >
73
+ < path
74
+ fillRule = "evenodd"
75
+ d = "M12 2C6.486 2 2 5.677 2 10.2c0 2.933 1.904 5.41 4.666 6.82-.193.86-.707 3.088-.73 3.266-.036.268.127.517.364.593.085.028.174.041.262.041.147 0 .291-.054.404-.155.16-.143 2.398-1.647 3.484-2.384.503.07 1.026.118 1.55.118 5.514 0 10-3.675 10-8.2C22 5.677 17.514 2 12 2z"
76
+ clipRule = "evenodd"
77
+ />
78
+ </ svg >
79
+ </ Link >
80
+ </ div >
36
81
37
- { /* Right side - Social links */ }
38
- < div className = "flex items-center gap-4" >
39
- < motion . div whileHover = { { scale : 1.1 } } whileTap = { { scale : 0.95 } } >
40
- < Link
41
- href = "https://github.com/lazy-dinosaur"
42
- target = "_blank"
43
- className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
44
- >
45
- < FaGithub size = { 16 } />
46
- </ Link >
47
- </ motion . div >
82
+ { /* 저작권 정보 */ }
83
+ { /* <div className="text-xs text-muted-foreground text-center"> */ }
84
+ { /* Copyright © {new Date().getFullYear()} by Hyeongseok Woo */ }
85
+ { /* </div> */ }
86
+ { /* <div className="text-xs text-muted-foreground text-center mt-1"> */ }
87
+ { /* Built with Next.js, TypeScript, and Tailwind CSS */ }
88
+ { /* </div> */ }
89
+ </ motion . div >
90
+ ) }
91
+ < motion . footer
92
+ onViewportEnter = { ( ) => setFooterVisible ( true ) }
93
+ onViewportLeave = { ( ) => setFooterVisible ( false ) }
94
+ className = "w-full border-border/40 bg-background/50 backdrop-blur-sm py-6 md:py-8 mt-10"
95
+ >
96
+ < div className = "max-w-screen-2xl mx-auto px-4 sm:px-6 lg:px-8" >
97
+ < div className = "flex flex-col md:flex-row justify-between items-center gap-4" >
98
+ { /* Left side - Nav links */ }
99
+ < div className = "flex flex-wrap justify-center md:justify-start gap-6" >
100
+ < Link
101
+ href = "/"
102
+ className = "text-sm text-muted-foreground hover:text-primary transition-colors"
103
+ >
104
+ Home
105
+ </ Link >
106
+ < Link
107
+ href = "/projects"
108
+ className = "text-sm text-muted-foreground hover:text-primary transition-colors"
109
+ >
110
+ Portfolio
111
+ </ Link >
112
+ < Link
113
+ href = "https://github.com/lazy-dinosaur"
114
+ target = "_blank"
115
+ className = "text-sm text-muted-foreground hover:text-primary transition-colors"
116
+ >
117
+ GitHub
118
+ </ Link >
119
+ </ div >
48
120
49
- < motion . div whileHover = { { scale : 1.1 } } whileTap = { { scale : 0.95 } } >
50
- < Link
51
-
52
- target = "_blank"
53
- className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
54
- >
55
- < FaEnvelope size = { 16 } />
56
- </ Link >
57
- </ motion . div >
121
+ { /* Right side - Social links */ }
122
+ < div className = "flex items-center gap-4" >
123
+ < motion . div
124
+ whileHover = { { scale : 1.1 } }
125
+ whileTap = { { scale : 0.95 } }
126
+ >
127
+ < Link
128
+ href = "https://github.com/lazy-dinosaur"
129
+ target = "_blank"
130
+ className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
131
+ >
132
+ < FaGithub size = { 16 } />
133
+ </ Link >
134
+ </ motion . div >
58
135
59
- < motion . div whileHover = { { scale : 1.1 } } whileTap = { { scale : 0.95 } } >
60
- < Link
61
- href = "https://open.kakao.com/o/sdG4BPjh"
62
- target = "_blank"
63
- className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
64
- >
65
- < RiKakaoTalkFill size = { 18 } />
66
- </ Link >
67
- </ motion . div >
68
- </ div >
69
- </ div >
136
+ < motion . div
137
+ whileHover = { { scale : 1.1 } }
138
+ whileTap = { { scale : 0.95 } }
139
+ >
140
+ < Link
141
+
142
+ target = "_blank"
143
+ className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
144
+ >
145
+ < FaEnvelope size = { 16 } />
146
+ </ Link >
147
+ </ motion . div >
70
148
71
- < div className = "mt-6 pt-4 border-t border-border/20 flex flex-col md:flex-row justify-between items-center" >
72
- < div className = "text-xs text-muted-foreground" >
73
- Copyright © { currentYear } by Hyeongseok Woo. All rights reserved.
74
- </ div >
75
- < div className = "text-xs text-muted-foreground mt-2 md:mt-0" >
76
- Built with Next.js, TypeScript, and Tailwind CSS
77
- </ div >
78
- </ div >
79
- </ div >
80
- </ footer >
81
- ) ;
149
+ < motion . div
150
+ whileHover = { { scale : 1.1 } }
151
+ whileTap = { { scale : 0.95 } }
152
+ >
153
+ < Link
154
+ href = "https://open.kakao.com/o/sdG4BPjh"
155
+ target = "_blank"
156
+ className = "flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary hover:bg-primary/20 transition-colors"
157
+ >
158
+ < RiKakaoTalkFill size = { 18 } />
159
+ </ Link >
160
+ </ motion . div >
161
+ </ div >
162
+ </ div >
163
+
164
+ < div className = "mt-6 pt-4 border-t border-border/20 flex flex-col md:flex-row justify-between items-center" >
165
+ < div className = "text-xs text-muted-foreground" >
166
+ Copyright © { currentYear } by Hyeongseok Woo. All rights reserved.
167
+ </ div >
168
+ < div className = "text-xs text-muted-foreground mt-2 md:mt-0" >
169
+ Built with Next.js, TypeScript, and Tailwind CSS
170
+ </ div >
171
+ </ div >
172
+ </ div >
173
+ </ motion . footer >
174
+ </ >
175
+ ) ;
82
176
}
0 commit comments