nkjoy commited on
Commit
53fa6e8
·
verified ·
1 Parent(s): 1b11024

로그인 페이지도 만들어 - Initial Deployment

Browse files
Files changed (8) hide show
  1. README.md +6 -4
  2. chat.html +341 -0
  3. friends.html +312 -0
  4. index.html +403 -18
  5. login.html +184 -0
  6. profile.html +252 -0
  7. prompts.txt +11 -0
  8. signup.html +305 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Friend
3
- emoji: 🔥
4
  colorFrom: green
5
- colorTo: yellow
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: friend
3
+ emoji: 🐳
4
  colorFrom: green
5
+ colorTo: purple
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
chat.html ADDED
@@ -0,0 +1,341 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PinkFriend - 채팅</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
15
+
16
+ body {
17
+ font-family: 'Noto Sans KR', sans-serif;
18
+ background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 50%, #FF69B4 100%);
19
+ min-height: 100vh;
20
+ }
21
+
22
+ .shimmer-btn {
23
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1, #FF69B4);
24
+ background-size: 200% 200%;
25
+ animation: shimmer 2s ease infinite;
26
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .shimmer-btn:hover {
31
+ transform: translateY(-2px);
32
+ box-shadow: 0 6px 20px rgba(255, 105, 180, 0.4);
33
+ }
34
+
35
+ @keyframes shimmer {
36
+ 0% { background-position: 0% 50%; }
37
+ 50% { background-position: 100% 50%; }
38
+ 100% { background-position: 0% 50%; }
39
+ }
40
+
41
+ .glow-effect {
42
+ box-shadow: 0 0 10px rgba(255, 182, 193, 0.5),
43
+ 0 0 20px rgba(255, 192, 203, 0.3),
44
+ 0 0 30px rgba(255, 105, 180, 0.2);
45
+ }
46
+
47
+ .chat-card {
48
+ transition: all 0.3s ease;
49
+ border-radius: 16px;
50
+ overflow: hidden;
51
+ }
52
+
53
+ .chat-card:hover {
54
+ transform: translateY(-2px);
55
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
56
+ }
57
+
58
+ .message-bubble {
59
+ max-width: 70%;
60
+ border-radius: 18px;
61
+ padding: 12px 16px;
62
+ margin: 4px 0;
63
+ position: relative;
64
+ word-wrap: break-word;
65
+ }
66
+
67
+ .message-bubble.sent {
68
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1);
69
+ color: white;
70
+ margin-left: auto;
71
+ border-bottom-right-radius: 4px;
72
+ }
73
+
74
+ .message-bubble.received {
75
+ background: white;
76
+ color: #333;
77
+ margin-right: auto;
78
+ border-bottom-left-radius: 4px;
79
+ }
80
+
81
+ .chat-container {
82
+ height: calc(100vh - 200px);
83
+ overflow-y: auto;
84
+ padding-bottom: 80px;
85
+ }
86
+
87
+ /* Custom scrollbar */
88
+ ::-webkit-scrollbar {
89
+ width: 6px;
90
+ }
91
+
92
+ ::-webkit-scrollbar-track {
93
+ background: rgba(255, 255, 255, 0.2);
94
+ border-radius: 10px;
95
+ }
96
+
97
+ ::-webkit-scrollbar-thumb {
98
+ background: rgba(255, 105, 180, 0.5);
99
+ border-radius: 10px;
100
+ }
101
+
102
+ ::-webkit-scrollbar-thumb:hover {
103
+ background: rgba(255, 105, 180, 0.7);
104
+ }
105
+
106
+ .typing-indicator {
107
+ display: inline-flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ }
111
+
112
+ .typing-indicator span {
113
+ height: 8px;
114
+ width: 8px;
115
+ background: #FF69B4;
116
+ border-radius: 50%;
117
+ display: inline-block;
118
+ margin: 0 2px;
119
+ animation: typing 1.5s infinite;
120
+ }
121
+
122
+ .typing-indicator span:nth-child(2) {
123
+ animation-delay: 0.2s;
124
+ }
125
+
126
+ .typing-indicator span:nth-child(3) {
127
+ animation-delay: 0.4s;
128
+ }
129
+
130
+ @keyframes typing {
131
+ 0%, 100% { transform: translateY(0); }
132
+ 50% { transform: translateY(-5px); }
133
+ }
134
+ </style>
135
+ </head>
136
+ <body class="min-h-screen flex flex-col">
137
+ <!-- Navigation -->
138
+ <nav class="bg-white bg-opacity-90 backdrop-blur-md py-4 px-6 flex justify-between items-center sticky top-0 z-50 glow-effect">
139
+ <div class="flex items-center">
140
+ <a href="friends.html" class="mr-3 text-pink-500">
141
+ <i data-feather="arrow-left" class="w-5 h-5"></i>
142
+ </a>
143
+ <div class="w-10 h-10 rounded-full bg-pink-200 flex items-center justify-center mr-3">
144
+ <span class="text-xl">👩</span>
145
+ </div>
146
+ <div>
147
+ <h1 class="text-lg font-bold text-pink-600">지현</h1>
148
+ <p class="text-xs text-gray-500 typing-indicator">
149
+ <span></span><span></span><span></span>
150
+ </p>
151
+ </div>
152
+ </div>
153
+ <div class="flex space-x-4">
154
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
155
+ <i data-feather="phone"></i>
156
+ </button>
157
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
158
+ <i data-feather="video"></i>
159
+ </button>
160
+ </div>
161
+ </nav>
162
+
163
+ <!-- Chat Container -->
164
+ <main class="flex-1 container mx-auto px-4 py-4">
165
+ <div class="chat-container space-y-3" id="chatMessages">
166
+ <!-- Received Message -->
167
+ <div class="message-bubble received" data-aos="fade-right">
168
+ 안녕하세요! 같이 커피 마실래요? ☕
169
+ </div>
170
+
171
+ <!-- Sent Message -->
172
+ <div class="message-bubble sent" data-aos="fade-left" data-aos-delay="100">
173
+ 네, 좋아요! 어디서 만날까요? 💖
174
+ </div>
175
+
176
+ <!-- Received Message -->
177
+ <div class="message-bubble received" data-aos="fade-right" data-aos-delay="200">
178
+ 스타벅스 강남점으로 오시면 될 것 같아요! 🎯
179
+ </div>
180
+
181
+ <!-- Sent Message -->
182
+ <div class="message-bubble sent" data-aos="fade-left" data-aos-delay="300">
183
+ 알겠습니다! 30분 후에 만나요~ ⏰
184
+ </div>
185
+
186
+ <!-- Received Message -->
187
+ <div class="message-bubble received" data-aos="fade-right" data-aos-delay="400">
188
+ 네! 기대할게요 💕
189
+ </div>
190
+ </div>
191
+ </main>
192
+
193
+ <!-- Message Input -->
194
+ <div class="bg-white bg-opacity-90 backdrop-blur-md py-3 px-4 sticky bottom-0 z-50 glow-effect">
195
+ <div class="flex items-center space-x-2">
196
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors" onclick="toggleEmojiPicker()">
197
+ <i data-feather="smile" class="w-5 h-5"></i>
198
+ </button>
199
+ <input type="text" placeholder="메시지를 입력하세요..."
200
+ class="flex-1 bg-gray-100 rounded-full px-4 py-2 focus:outline-none focus:ring-2 focus:ring-pink-300" id="messageInput">
201
+ <button class="shimmer-btn p-3 rounded-full text-white" onclick="sendMessage()">
202
+ <i data-feather="send" class="w-5 h-5"></i>
203
+ </button>
204
+ </div>
205
+
206
+ <!-- Emoji Picker -->
207
+ <div id="emojiPicker" class="hidden bg-white rounded-xl p-3 mt-2 shadow-lg">
208
+ <div class="grid grid-cols-8 gap-2 text-xl">
209
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😊')">😊</span>
210
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😂')">😂</span>
211
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('❤️')">❤️</span>
212
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('👍')">👍</span>
213
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😍')">😍</span>
214
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🎉')">🎉</span>
215
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🙏')">🙏</span>
216
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😎')">😎</span>
217
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😢')">😢</span>
218
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😡')">😡</span>
219
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🤔')">🤔</span>
220
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😴')">😴</span>
221
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🥰')">🥰</span>
222
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🤩')">🤩</span>
223
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('😋')">😋</span>
224
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🥺')">🥺</span>
225
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('✨')">✨</span>
226
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('💕')">💕</span>
227
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🌟')">🌟</span>
228
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🔥')">🔥</span>
229
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('💖')">💖</span>
230
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🎶')">🎶</span>
231
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🌈')">🌈</span>
232
+ <span class="cursor-pointer hover:bg-pink-100 rounded p-1 text-center" onclick="addEmoji('🍕')">🍕</span>
233
+ </div>
234
+ </div>
235
+ </div>
236
+
237
+ <!-- Bottom Navigation -->
238
+ <div class="bg-white bg-opacity-90 backdrop-blur-md py-3 px-8 flex justify-around items-center sticky bottom-16 z-40 glow-effect">
239
+ <a href="index.html" class="flex flex-col items-center text-gray-400">
240
+ <i data-feather="map-pin" class="w-6 h-6"></i>
241
+ <span class="text-xs mt-1">지도</span>
242
+ </a>
243
+ <a href="friends.html" class="flex flex-col items-center text-gray-400">
244
+ <i data-feather="users" class="w-6 h-6"></i>
245
+ <span class="text-xs mt-1">친구</span>
246
+ </a>
247
+ <a href="chat.html" class="flex flex-col items-center text-pink-500">
248
+ <i data-feather="message-circle" class="w-6 h-6"></i>
249
+ <span class="text-xs mt-1">채팅</span>
250
+ </a>
251
+ <a href="profile.html" class="flex flex-col items-center text-gray-400">
252
+ <i data-feather="user" class="w-6 h-6"></i>
253
+ <span class="text-xs mt-1">프로필</span>
254
+ </a>
255
+ </div>
256
+
257
+ <script>
258
+ // Initialize animations
259
+ AOS.init({
260
+ duration: 800,
261
+ once: true,
262
+ offset: 50
263
+ });
264
+
265
+ // Initialize feather icons
266
+ feather.replace();
267
+
268
+ // Auto scroll to bottom of chat
269
+ function scrollToBottom() {
270
+ const chatContainer = document.getElementById('chatMessages');
271
+ chatContainer.scrollTop = chatContainer.scrollHeight;
272
+ }
273
+
274
+ // Scroll to bottom on page load
275
+ window.addEventListener('load', scrollToBottom);
276
+
277
+ // Send message functionality
278
+ const messageInput = document.getElementById('messageInput');
279
+
280
+ messageInput.addEventListener('keypress', function(e) {
281
+ if (e.key === 'Enter') {
282
+ sendMessage();
283
+ }
284
+ });
285
+
286
+ function sendMessage() {
287
+ const message = messageInput.value.trim();
288
+ if (message) {
289
+ const messageElement = document.createElement('div');
290
+ messageElement.className = 'message-bubble sent';
291
+ messageElement.innerHTML = message.replace(/\n/g, '<br>');
292
+ messageElement.setAttribute('data-aos', 'fade-left');
293
+
294
+ document.getElementById('chatMessages').appendChild(messageElement);
295
+ messageInput.value = '';
296
+
297
+ // Hide emoji picker if open
298
+ document.getElementById('emojiPicker').classList.add('hidden');
299
+
300
+ // Scroll to bottom after sending message
301
+ setTimeout(scrollToBottom, 100);
302
+
303
+ // Simulate reply after a delay
304
+ setTimeout(simulateReply, 1500);
305
+ }
306
+ }
307
+
308
+ // Emoji picker functionality
309
+ function toggleEmojiPicker() {
310
+ const emojiPicker = document.getElementById('emojiPicker');
311
+ emojiPicker.classList.toggle('hidden');
312
+ }
313
+
314
+ function addEmoji(emoji) {
315
+ const input = document.getElementById('messageInput');
316
+ input.value += emoji;
317
+ input.focus();
318
+ }
319
+
320
+ function simulateReply() {
321
+ const replies = [
322
+ "네, 알겠습니다! 👍",
323
+ "재미있겠네요! 🎉",
324
+ "좋아요! 그렇게 할게요 💕",
325
+ "고마워요! 기대될 것 같아요 ✨",
326
+ "알겠습니다! 만나서 반가워요 😊"
327
+ ];
328
+
329
+ const randomReply = replies[Math.floor(Math.random() * replies.length)];
330
+
331
+ const replyElement = document.createElement('div');
332
+ replyElement.className = 'message-bubble received';
333
+ replyElement.textContent = randomReply;
334
+ replyElement.setAttribute('data-aos', 'fade-right');
335
+
336
+ document.getElementById('chatMessages').appendChild(replyElement);
337
+ scrollToBottom();
338
+ }
339
+ </script>
340
+ </body>
341
+ </html>
friends.html ADDED
@@ -0,0 +1,312 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PinkFriend - 친구 목록</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
15
+
16
+ body {
17
+ font-family: 'Noto Sans KR', sans-serif;
18
+ background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 50%, #FF69B4 100%);
19
+ min-height: 100vh;
20
+ }
21
+
22
+ .shimmer-btn {
23
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1, #FF69B4);
24
+ background-size: 200% 200%;
25
+ animation: shimmer 2s ease infinite;
26
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .shimmer-btn:hover {
31
+ transform: translateY(-2px);
32
+ box-shadow: 0 6px 20px rgba(255, 105, 180, 0.4);
33
+ }
34
+
35
+ @keyframes shimmer {
36
+ 0% { background-position: 0% 50%; }
37
+ 50% { background-position: 100% 50%; }
38
+ 100% { background-position: 0% 50%; }
39
+ }
40
+
41
+ .glow-effect {
42
+ box-shadow: 0 0 10px rgba(255, 182, 193, 0.5),
43
+ 0 0 20px rgba(255, 192, 203, 0.3),
44
+ 0 0 30px rgba(255, 105, 180, 0.2);
45
+ }
46
+
47
+ .friend-card {
48
+ transition: all 0.3s ease;
49
+ border-radius: 16px;
50
+ overflow: hidden;
51
+ }
52
+
53
+ .friend-card:hover {
54
+ transform: translateY(-5px);
55
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
56
+ }
57
+
58
+ /* Custom scrollbar */
59
+ ::-webkit-scrollbar {
60
+ width: 6px;
61
+ }
62
+
63
+ ::-webkit-scrollbar-track {
64
+ background: rgba(255, 255, 255, 0.2);
65
+ border-radius: 10px;
66
+ }
67
+
68
+ ::-webkit-scrollbar-thumb {
69
+ background: rgba(255, 105, 180, 0.5);
70
+ border-radius: 10px;
71
+ }
72
+
73
+ ::-webkit-scrollbar-thumb:hover {
74
+ background: rgba(255, 105, 180, 0.7);
75
+ }
76
+
77
+ .tab-active {
78
+ background: rgba(255, 255, 255, 0.9);
79
+ color: #FF69B4;
80
+ font-weight: 600;
81
+ box-shadow: 0 4px 12px rgba(255, 105, 180, 0.2);
82
+ }
83
+ </style>
84
+ </head>
85
+ <body class="min-h-screen flex flex-col">
86
+ <!-- Navigation -->
87
+ <nav class="bg-white bg-opacity-90 backdrop-blur-md py-4 px-6 flex justify-between items-center sticky top-0 z-50 glow-effect">
88
+ <div class="flex items-center">
89
+ <i data-feather="users" class="text-pink-500 mr-2"></i>
90
+ <h1 class="text-xl font-bold text-pink-600">PinkFriend</h1>
91
+ </div>
92
+ <div class="flex space-x-4">
93
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
94
+ <i data-feather="search"></i>
95
+ </button>
96
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
97
+ <i data-feather="settings"></i>
98
+ </button>
99
+ </div>
100
+ </nav>
101
+
102
+ <!-- Main Content -->
103
+ <main class="flex-1 container mx-auto px-4 py-6">
104
+ <!-- Header Section -->
105
+ <section class="mb-6 text-center" data-aos="fade-down">
106
+ <h2 class="text-2xl font-bold text-white mb-2">내 친구 목록</h2>
107
+ <p class="text-white text-opacity-90">총 24명의 친구가 있습니다</p>
108
+ </section>
109
+
110
+ <!-- Tabs -->
111
+ <div class="flex bg-white bg-opacity-20 rounded-xl p-1 mb-6" data-aos="fade-up">
112
+ <button class="flex-1 py-2 px-4 rounded-xl text-white transition-all tab-active" onclick="switchTab('all')">
113
+ 전체 친구
114
+ </button>
115
+ <button class="flex-1 py-2 px-4 rounded-xl text-white transition-all" onclick="switchTab('female')">
116
+ 👩 여자 친구
117
+ </button>
118
+ <button class="flex-1 py-2 px-4 rounded-xl text-white transition-all" onclick="switchTab('male')">
119
+ 👨 남자 친구
120
+ </button>
121
+ </div>
122
+
123
+ <!-- Friends List Section -->
124
+ <section data-aos="fade-up" data-aos-delay="200">
125
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
126
+ <div class="flex justify-between items-center mb-4">
127
+ <h3 class="font-semibold text-pink-600">친구 목록</h3>
128
+ <div class="flex space-x-2">
129
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
130
+ <i data-feather="filter" class="w-4 h-4"></i>
131
+ </button>
132
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
133
+ <i data-feather="plus" class="w-4 h-4"></i>
134
+ </button>
135
+ </div>
136
+ </div>
137
+
138
+ <div class="space-y-4 max-h-96 overflow-y-auto pr-2" id="friendsList">
139
+ <!-- Friend Card - Female -->
140
+ <div class="friend-card bg-pink-50 p-4 flex items-center">
141
+ <div class="w-12 h-12 rounded-full bg-pink-200 flex items-center justify-center mr-4">
142
+ <span class="text-xl">👩</span>
143
+ </div>
144
+ <div class="flex-1">
145
+ <div class="flex items-center">
146
+ <h4 class="font-medium">지현</h4>
147
+ <span class="text-xs bg-pink-100 text-pink-600 px-2 py-1 rounded-full ml-2">온라인</span>
148
+ </div>
149
+ <p class="text-sm text-gray-600">함께 커피 마실 분 구해요!</p>
150
+ </div>
151
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
152
+ <i data-feather="message-circle" class="w-4 h-4"></i>
153
+ </button>
154
+ </div>
155
+
156
+ <!-- Friend Card - Male -->
157
+ <div class="friend-card bg-blue-50 p-4 flex items-center">
158
+ <div class="w-12 h-12 rounded-full bg-blue-200 flex items-center justify-center mr-4">
159
+ <span class="text-xl">👨</span>
160
+ </div>
161
+ <div class="flex-1">
162
+ <div class="flex items-center">
163
+ <h4 class="font-medium">민수</h4>
164
+ <span class="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded-full ml-2">오프라인</span>
165
+ </div>
166
+ <p class="text-sm text-gray-600">등산 좋아하는 사람</p>
167
+ </div>
168
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
169
+ <i data-feather="message-circle" class="w-4 h-4"></i>
170
+ </button>
171
+ </div>
172
+
173
+ <!-- Friend Card - Female -->
174
+ <div class="friend-card bg-pink-50 p-4 flex items-center">
175
+ <div class="w-12 h-12 rounded-full bg-pink-200 flex items-center justify-center mr-4">
176
+ <span class="text-xl">👩</span>
177
+ </div>
178
+ <div class="flex-1">
179
+ <div class="flex items-center">
180
+ <h4 class="font-medium">수진</h4>
181
+ <span class="text-xs bg-pink-100 text-pink-600 px-2 py-1 rounded-full ml-2">온라인</span>
182
+ </div>
183
+ <p class="text-sm text-gray-600">영화 보러 갈 사람?</p>
184
+ </div>
185
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
186
+ <i data-feather="message-circle" class="w-4 h-4"></i>
187
+ </button>
188
+ </div>
189
+
190
+ <!-- Friend Card - Male -->
191
+ <div class="friend-card bg-blue-50 p-4 flex items-center">
192
+ <div class="w-12 h-12 rounded-full bg-blue-200 flex items-center justify-center mr-4">
193
+ <span class="text-xl">👨</span>
194
+ </div>
195
+ <div class="flex-1">
196
+ <div class="flex items-center">
197
+ <h4 class="font-medium">현우</h4>
198
+ <span class="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded-full ml-2">온라인</span>
199
+ </div>
200
+ <p class="text-sm text-gray-600">게임 친구 구합니다</p>
201
+ </div>
202
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
203
+ <i data-feather="message-circle" class="w-4 h-4"></i>
204
+ </button>
205
+ </div>
206
+
207
+ <!-- Friend Card - Female -->
208
+ <div class="friend-card bg-pink-50 p-4 flex items-center">
209
+ <div class="w-12 h-12 rounded-full bg-pink-200 flex items-center justify-center mr-4">
210
+ <span class="text-xl">👩</span>
211
+ </div>
212
+ <div class="flex-1">
213
+ <div class="flex items-center">
214
+ <h4 class="font-medium">예은</h4>
215
+ <span class="text-xs bg-pink-100 text-pink-600 px-2 py-1 rounded-full ml-2">온라인</span>
216
+ </div>
217
+ <p class="text-sm text-gray-600">요리 같이 할 분!</p>
218
+ </div>
219
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
220
+ <i data-feather="message-circle" class="w-4 h-4"></i>
221
+ </button>
222
+ </div>
223
+
224
+ <!-- Friend Card - Male -->
225
+ <div class="friend-card bg-blue-50 p-4 flex items-center">
226
+ <div class="w-12 h-12 rounded-full bg-blue-200 flex items-center justify-center mr-4">
227
+ <span class="text-xl">👨</span>
228
+ </div>
229
+ <div class="flex-1">
230
+ <div class="flex items-center">
231
+ <h4 class="font-medium">준호</h4>
232
+ <span class="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded-full ml-2">오프라인</span>
233
+ </div>
234
+ <p class="text-sm text-gray-600">축구 같이 하실 분</p>
235
+ </div>
236
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
237
+ <i data-feather="message-circle" class="w-4 h-4"></i>
238
+ </button>
239
+ </div>
240
+ </div>
241
+ </div>
242
+ </section>
243
+ </main>
244
+
245
+ <!-- Bottom Navigation -->
246
+ <div class="bg-white bg-opacity-90 backdrop-blur-md py-3 px-8 flex justify-around items-center sticky bottom-0 z-50 glow-effect">
247
+ <a href="index.html" class="flex flex-col items-center text-gray-400">
248
+ <i data-feather="map-pin" class="w-6 h-6"></i>
249
+ <span class="text-xs mt-1">지도</span>
250
+ </a>
251
+ <a href="friends.html" class="flex flex-col items-center text-pink-500">
252
+ <i data-feather="users" class="w-6 h-6"></i>
253
+ <span class="text-xs mt-1">친구</span>
254
+ </a>
255
+ <a href="chat.html" class="flex flex-col items-center text-gray-400">
256
+ <i data-feather="message-circle" class="w-6 h-6"></i>
257
+ <span class="text-xs mt-1">채팅</span>
258
+ </a>
259
+ <a href="profile.html" class="flex flex-col items-center text-gray-400">
260
+ <i data-feather="user" class="w-6 h-6"></i>
261
+ <span class="text-xs mt-1">프로필</span>
262
+ </a>
263
+ </div>
264
+
265
+ <script>
266
+ // Initialize animations
267
+ AOS.init({
268
+ duration: 800,
269
+ once: true,
270
+ offset: 50
271
+ });
272
+
273
+ // Initialize feather icons
274
+ feather.replace();
275
+
276
+ // Tab switching function
277
+ function switchTab(tab) {
278
+ // Remove active class from all tabs
279
+ document.querySelectorAll('.flex-1.py-2.px-4.rounded-xl').forEach(btn => {
280
+ btn.classList.remove('tab-active');
281
+ btn.classList.add('text-white');
282
+ });
283
+
284
+ // Add active class to clicked tab
285
+ event.target.classList.add('tab-active');
286
+ event.target.classList.remove('text-white');
287
+
288
+ // Filter friends based on tab
289
+ const friendsList = document.getElementById('friendsList');
290
+ const allFriends = friendsList.querySelectorAll('.friend-card');
291
+
292
+ allFriends.forEach(friend => {
293
+ if (tab === 'all') {
294
+ friend.style.display = 'flex';
295
+ } else if (tab === 'female') {
296
+ if (friend.classList.contains('bg-pink-50')) {
297
+ friend.style.display = 'flex';
298
+ } else {
299
+ friend.style.display = 'none';
300
+ }
301
+ } else if (tab === 'male') {
302
+ if (friend.classList.contains('bg-blue-50')) {
303
+ friend.style.display = 'flex';
304
+ } else {
305
+ friend.style.display = 'none';
306
+ }
307
+ }
308
+ });
309
+ }
310
+ </script>
311
+ </body>
312
+ </html>
index.html CHANGED
@@ -1,19 +1,404 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PinkFriend - 주변 친구 찾기</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
15
+
16
+ body {
17
+ font-family: 'Noto Sans KR', sans-serif;
18
+ background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 50%, #FF69B4 100%);
19
+ min-height: 100vh;
20
+ }
21
+
22
+ .shimmer-btn {
23
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1, #FF69B4);
24
+ background-size: 200% 200%;
25
+ animation: shimmer 2s ease infinite;
26
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .shimmer-btn:hover {
31
+ transform: translateY(-2px);
32
+ box-shadow: 0 6px 20px rgba(255, 105, 180, 0.4);
33
+ }
34
+
35
+ @keyframes shimmer {
36
+ 0% { background-position: 0% 50%; }
37
+ 50% { background-position: 100% 50%; }
38
+ 100% { background-position: 0% 50%; }
39
+ }
40
+
41
+ .glow-effect {
42
+ box-shadow: 0 0 10px rgba(255, 182, 193, 0.5),
43
+ 0 0 20px rgba(255, 192, 203, 0.3),
44
+ 0 0 30px rgba(255, 105, 180, 0.2);
45
+ }
46
+
47
+ .friend-card {
48
+ transition: all 0.3s ease;
49
+ border-radius: 16px;
50
+ overflow: hidden;
51
+ }
52
+
53
+ .friend-card:hover {
54
+ transform: translateY(-5px);
55
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
56
+ }
57
+
58
+ .map-container {
59
+ height: 400px;
60
+ border-radius: 16px;
61
+ overflow: hidden;
62
+ }
63
+
64
+ /* Custom scrollbar */
65
+ ::-webkit-scrollbar {
66
+ width: 6px;
67
+ }
68
+
69
+ ::-webkit-scrollbar-track {
70
+ background: rgba(255, 255, 255, 0.2);
71
+ border-radius: 10px;
72
+ }
73
+
74
+ ::-webkit-scrollbar-thumb {
75
+ background: rgba(255, 105, 180, 0.5);
76
+ border-radius: 10px;
77
+ }
78
+
79
+ ::-webkit-scrollbar-thumb:hover {
80
+ background: rgba(255, 105, 180, 0.7);
81
+ }
82
+ </style>
83
+ </head>
84
+ <body class="min-h-screen flex flex-col">
85
+ <!-- Navigation -->
86
+ <nav class="bg-white bg-opacity-90 backdrop-blur-md py-4 px-6 flex justify-between items-center sticky top-0 z-50 glow-effect">
87
+ <div class="flex items-center">
88
+ <i data-feather="users" class="text-pink-500 mr-2"></i>
89
+ <h1 class="text-xl font-bold text-pink-600">PinkFriend</h1>
90
+ </div>
91
+ <div class="flex space-x-4">
92
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
93
+ <i data-feather="map"></i>
94
+ </button>
95
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
96
+ <i data-feather="settings"></i>
97
+ </button>
98
+ </div>
99
+ </nav>
100
+
101
+ <!-- Main Content -->
102
+ <main class="flex-1 container mx-auto px-4 py-6">
103
+ <!-- Welcome Section -->
104
+ <section class="mb-8 text-center" data-aos="fade-down">
105
+ <h2 class="text-2xl font-bold text-white mb-2">주변 친구를 찾아보세요</h2>
106
+ <p class="text-white text-opacity-90">실시간으로 가까운 친구들을 발견하고 연결하세요</p>
107
+ </section>
108
+
109
+ <!-- Map Section -->
110
+ <section class="mb-8" data-aos="fade-up">
111
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
112
+ <div class="flex justify-between items-center mb-4">
113
+ <h3 class="font-semibold text-pink-600">지도에서 친구 찾기</h3>
114
+ <div class="flex space-x-2">
115
+ <button class="shimmer-btn px-4 py-2 rounded-full text-white font-medium text-sm">내 위치</button>
116
+ <button class="shimmer-btn px-4 py-2 rounded-full text-white font-medium text-sm" onclick="toggleFilterModal()">
117
+ <i data-feather="filter" class="w-4 h-4 mr-1"></i> 필터
118
+ </button>
119
+ </div>
120
+ </div>
121
+ <div class="map-container bg-gray-200 rounded-xl flex items-center justify-center">
122
+ <p class="text-gray-500">Google Maps가 여기에 표시됩니다</p>
123
+ <!-- Google Maps will be initialized here with JavaScript -->
124
+ </div>
125
+ </div>
126
+ </section>
127
+
128
+ <!-- Friends List Section -->
129
+ <section data-aos="fade-up" data-aos-delay="200">
130
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
131
+ <div class="flex justify-between items-center mb-4">
132
+ <h3 class="font-semibold text-pink-600">주변 친구</h3>
133
+ <span class="text-sm text-gray-500">12명 발견</span>
134
+ </div>
135
+
136
+ <div class="space-y-4 max-h-96 overflow-y-auto pr-2">
137
+ <!-- Friend Card - Female -->
138
+ <div class="friend-card bg-pink-50 p-4 flex items-center">
139
+ <div class="w-12 h-12 rounded-full bg-pink-200 flex items-center justify-center mr-4">
140
+ <span class="text-xl">👩</span>
141
+ </div>
142
+ <div class="flex-1">
143
+ <div class="flex items-center">
144
+ <h4 class="font-medium">지현</h4>
145
+ <span class="text-xs bg-pink-100 text-pink-600 px-2 py-1 rounded-full ml-2">0.5km</span>
146
+ </div>
147
+ <p class="text-sm text-gray-600">함께 커피 마실 분 구해요!</p>
148
+ </div>
149
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
150
+ <i data-feather="message-circle" class="w-4 h-4"></i>
151
+ </button>
152
+ </div>
153
+
154
+ <!-- Friend Card - Male -->
155
+ <div class="friend-card bg-blue-50 p-4 flex items-center">
156
+ <div class="w-12 h-12 rounded-full bg-blue-200 flex items-center justify-center mr-4">
157
+ <span class="text-xl">👨</span>
158
+ </div>
159
+ <div class="flex-1">
160
+ <div class="flex items-center">
161
+ <h4 class="font-medium">민수</h4>
162
+ <span class="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded-full ml-2">0.8km</span>
163
+ </div>
164
+ <p class="text-sm text-gray-600">등산 좋아하는 사람</p>
165
+ </div>
166
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
167
+ <i data-feather="message-circle" class="w-4 h-4"></i>
168
+ </button>
169
+ </div>
170
+
171
+ <!-- Friend Card - Female -->
172
+ <div class="friend-card bg-pink-50 p-4 flex items-center">
173
+ <div class="w-12 h-12 rounded-full bg-pink-200 flex items-center justify-center mr-4">
174
+ <span class="text-xl">👩</span>
175
+ </div>
176
+ <div class="flex-1">
177
+ <div class="flex items-center">
178
+ <h4 class="font-medium">수진</h4>
179
+ <span class="text-xs bg-pink-100 text-pink-600 px-2 py-1 rounded-full ml-2">1.2km</span>
180
+ </div>
181
+ <p class="text-sm text-gray-600">영화 보러 갈 사람?</p>
182
+ </div>
183
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
184
+ <i data-feather="message-circle" class="w-4 h-4"></i>
185
+ </button>
186
+ </div>
187
+
188
+ <!-- Friend Card - Male -->
189
+ <div class="friend-card bg-blue-50 p-4 flex items-center">
190
+ <div class="w-12 h-12 rounded-full bg-blue-200 flex items-center justify-center mr-4">
191
+ <span class="text-xl">👨</span>
192
+ </div>
193
+ <div class="flex-1">
194
+ <div class="flex items-center">
195
+ <h4 class="font-medium">현우</h4>
196
+ <span class="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded-full ml-2">1.5km</span>
197
+ </div>
198
+ <p class="text-sm text-gray-600">게임 친구 구합니���</p>
199
+ </div>
200
+ <button class="shimmer-btn px-3 py-1 rounded-full text-white text-sm">
201
+ <i data-feather="message-circle" class="w-4 h-4"></i>
202
+ </button>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ </section>
207
+ </main>
208
+
209
+ <!-- Bottom Navigation -->
210
+ <div class="bg-white bg-opacity-90 backdrop-blur-md py-3 px-8 flex justify-around items-center sticky bottom-0 z-50 glow-effect">
211
+ <button class="flex flex-col items-center text-pink-500">
212
+ <i data-feather="map-pin" class="w-6 h-6"></i>
213
+ <span class="text-xs mt-1">지도</span>
214
+ </button>
215
+ <a href="friends.html" class="flex flex-col items-center text-gray-400">
216
+ <i data-feather="users" class="w-6 h-6"></i>
217
+ <span class="text-xs mt-1">친구</span>
218
+ </a>
219
+ <a href="chat.html" class="flex flex-col items-center text-gray-400">
220
+ <i data-feather="message-circle" class="w-6 h-6"></i>
221
+ <span class="text-xs mt-1">채팅</span>
222
+ </a>
223
+ <a href="profile.html" class="flex flex-col items-center text-gray-400">
224
+ <i data-feather="user" class="w-6 h-6"></i>
225
+ <span class="text-xs mt-1">프로필</span>
226
+ </a>
227
+ </div>
228
+
229
+ <!-- Filter Modal -->
230
+ <div id="filterModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden">
231
+ <div class="bg-white rounded-2xl p-6 w-11/12 max-w-md">
232
+ <div class="flex justify-between items-center mb-6">
233
+ <h3 class="text-lg font-semibold text-pink-600">친구 필터</h3>
234
+ <button onclick="toggleFilterModal()">
235
+ <i data-feather="x" class="w-6 h-6"></i>
236
+ </button>
237
+ </div>
238
+
239
+ <div class="space-y-4">
240
+ <div>
241
+ <h4 class="font-medium mb-2">성별</h4>
242
+ <div class="flex space-x-3">
243
+ <button class="px-4 py-2 rounded-full bg-pink-100 text-pink-600 font-medium">전체</button>
244
+ <button class="px-4 py-2 rounded-full bg-gray-100 text-gray-600 font-medium">👩 여성</button>
245
+ <button class="px-4 py-2 rounded-full bg-gray-100 text-gray-600 font-medium">👨 남성</button>
246
+ </div>
247
+ </div>
248
+
249
+ <div>
250
+ <h4 class="font-medium mb-2">거리</h4>
251
+ <input type="range" min="1" max="10" value="5" class="w-full h-2 bg-pink-200 rounded-lg appearance-none cursor-pointer">
252
+ <div class="flex justify-between text-sm text-gray-500 mt-1">
253
+ <span>1km</span>
254
+ <span>5km</span>
255
+ <span>10km</span>
256
+ </div>
257
+ </div>
258
+
259
+ <div>
260
+ <h4 class="font-medium mb-2">관심사</h4>
261
+ <div class="flex flex-wrap gap-2">
262
+ <span class="px-3 py-1 bg-pink-100 text-pink-600 rounded-full text-sm">🎬 영화</span>
263
+ <span class="px-3 py-1 bg-gray-100 text-gray-600 rounded-full text-sm">☕ 커피</span>
264
+ <span class="px-3 py-1 bg-gray-100 text-gray-600 rounded-full text-sm">🎵 음악</span>
265
+ <span class="px-3 py-1 bg-gray-100 text-gray-600 rounded-full text-sm">🏃 운동</span>
266
+ <span class="px-3 py-1 bg-gray-100 text-gray-600 rounded-full text-sm">🎮 게임</span>
267
+ <span class="px-3 py-1 bg-gray-100 text-gray-600 rounded-full text-sm">📚 독서</span>
268
+ </div>
269
+ </div>
270
+ </div>
271
+
272
+ <button class="shimmer-btn w-full py-3 rounded-xl text-white font-medium mt-6">적용하기</button>
273
+ </div>
274
+ </div>
275
+
276
+ <script>
277
+ // Initialize animations
278
+ AOS.init({
279
+ duration: 800,
280
+ once: true,
281
+ offset: 50
282
+ });
283
+
284
+ // Initialize feather icons
285
+ feather.replace();
286
+
287
+ // Toggle filter modal
288
+ function toggleFilterModal() {
289
+ const modal = document.getElementById('filterModal');
290
+ modal.classList.toggle('hidden');
291
+ }
292
+
293
+ // Request location permission
294
+ if (navigator.geolocation) {
295
+ navigator.geolocation.getCurrentPosition(
296
+ function(position) {
297
+ console.log("위치 정보 수신:", position.coords.latitude, position.coords.longitude);
298
+ // 여기에 Google Maps 초기화 코드 추가
299
+ },
300
+ function(error) {
301
+ console.error("위치 정보를 가져오지 못했습니다:", error);
302
+ alert("위치 정보 접근 권한이 필요합니다. 설��에서 권한을 허용해주세요.");
303
+ },
304
+ { enableHighAccuracy: true, timeout: 10000, maximumAge: 60000 }
305
+ );
306
+ } else {
307
+ alert("이 브라우저는 위치 정보 기능을 지원하지 않습니다.");
308
+ }
309
+
310
+ // Google Maps API 초기화 함수 (API 키 필요)
311
+ function initMap() {
312
+ // Google Maps API 키가 필요합니다
313
+ // const map = new google.maps.Map(document.querySelector('.map-container'), {
314
+ // center: { lat: -34.397, lng: 150.644 },
315
+ // zoom: 15,
316
+ // styles: [
317
+ // {
318
+ // "featureType": "all",
319
+ // "elementType": "geometry.fill",
320
+ // "stylers": [{"weight": "2.00"}]
321
+ // },
322
+ // {
323
+ // "featureType": "all",
324
+ // "elementType": "geometry.stroke",
325
+ // "stylers": [{"color": "#9c9c9c"}]
326
+ // },
327
+ // {
328
+ // "featureType": "all",
329
+ // "elementType": "labels.text",
330
+ // "stylers": [{"visibility": "on"}]
331
+ // },
332
+ // {
333
+ // "featureType": "landscape",
334
+ // "elementType": "all",
335
+ // "stylers": [{"color": "#f2f2f2"}]
336
+ // },
337
+ // {
338
+ // "featureType": "landscape",
339
+ // "elementType": "geometry.fill",
340
+ // "stylers": [{"color": "#ffffff"}]
341
+ // },
342
+ // {
343
+ // "featureType": "poi",
344
+ // "elementType": "all",
345
+ // "stylers": [{"visibility": "off"}]
346
+ // },
347
+ // {
348
+ // "featureType": "road",
349
+ // "elementType": "all",
350
+ // "stylers": [{"saturation": -100}, {"lightness": 45}]
351
+ // },
352
+ // {
353
+ // "featureType": "road",
354
+ // "elementType": "geometry.fill",
355
+ // "stylers": [{"color": "#eeeeee"}]
356
+ // },
357
+ // {
358
+ // "featureType": "road",
359
+ // "elementType": "labels.text.fill",
360
+ // "stylers": [{"color": "#7b7b7b"}]
361
+ // },
362
+ // {
363
+ // "featureType": "road",
364
+ // "elementType": "labels.text.stroke",
365
+ // "stylers": [{"color": "#ffffff"}]
366
+ // },
367
+ // {
368
+ // "featureType": "road.highway",
369
+ // "elementType": "all",
370
+ // "stylers": [{"visibility": "simplified"}]
371
+ // },
372
+ // {
373
+ // "featureType": "road.arterial",
374
+ // "elementType": "labels.icon",
375
+ // "stylers": [{"visibility": "off"}]
376
+ // },
377
+ // {
378
+ // "featureType": "transit",
379
+ // "elementType": "all",
380
+ // "stylers": [{"visibility": "off"}]
381
+ // },
382
+ // {
383
+ // "featureType": "water",
384
+ // "elementType": "all",
385
+ // "stylers": [{"color": "#FFB6C1"}, {"visibility": "on"}]
386
+ // }
387
+ // ]
388
+ // });
389
+ }
390
+
391
+ // Google Maps API 로드
392
+ // function loadGoogleMaps() {
393
+ // const script = document.createElement('script');
394
+ // script.src = `https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap`;
395
+ // script.async = true;
396
+ // script.defer = true;
397
+ // document.head.appendChild(script);
398
+ // }
399
+
400
+ // DOM이 로드된 후 Google Maps 로드
401
+ // document.addEventListener('DOMContentLoaded', loadGoogleMaps);
402
+ </script>
403
+ </body>
404
  </html>
login.html ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PinkFriend - 로그인</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
15
+
16
+ body {
17
+ font-family: 'Noto Sans KR', sans-serif;
18
+ background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 50%, #FF69B4 100%);
19
+ min-height: 100vh;
20
+ }
21
+
22
+ .shimmer-btn {
23
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1, #FF69B4);
24
+ background-size: 200% 200%;
25
+ animation: shimmer 2s ease infinite;
26
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .shimmer-btn:hover {
31
+ transform: translateY(-2px);
32
+ box-shadow: 0 6px 20px rgba(255, 105, 180, 0.4);
33
+ }
34
+
35
+ @keyframes shimmer {
36
+ 0% { background-position: 0% 50%; }
37
+ 50% { background-position: 100% 50%; }
38
+ 100% { background-position: 0% 50%; }
39
+ }
40
+
41
+ .glow-effect {
42
+ box-shadow: 0 0 10px rgba(255, 182, 193, 0.5),
43
+ 0 0 20px rgba(255, 192, 203, 0.3),
44
+ 0 0 30px rgba(255, 105, 180, 0.2);
45
+ }
46
+
47
+ .input-field {
48
+ background: rgba(255, 255, 255, 0.9);
49
+ border: 2px solid transparent;
50
+ transition: all 0.3s ease;
51
+ }
52
+
53
+ .input-field:focus {
54
+ border-color: #FF69B4;
55
+ box-shadow: 0 0 0 3px rgba(255, 105, 180, 0.2);
56
+ }
57
+
58
+ /* Custom scrollbar */
59
+ ::-webkit-scrollbar {
60
+ width: 6px;
61
+ }
62
+
63
+ ::-webkit-scrollbar-track {
64
+ background: rgba(255, 255, 255, 0.2);
65
+ border-radius: 10px;
66
+ }
67
+
68
+ ::-webkit-scrollbar-thumb {
69
+ background: rgba(255, 105, 180, 极光);
70
+ border-radius: 10px;
71
+ }
72
+
73
+ ::-webkit-scrollbar-thumb:hover {
74
+ background: rgba(255, 105, 180, 0.7);
75
+ }
76
+ </style>
77
+ </head>
78
+ <body class="min-h-screen flex flex-col">
79
+ <!-- Navigation -->
80
+ <nav class="bg-white bg-opacity-90 backdrop-blur-md py-4 px-6 flex justify-between items-center sticky top-0 z-50 glow-effect">
81
+ <div class="flex items-center">
82
+ <a href="index.html" class="mr-3 text-pink-500">
83
+ <i data-feather="arrow-left" class="w-5 h-5"></i>
84
+ </a>
85
+ <i data-feather="users" class="text-pink-500 mr-2"></i>
86
+ <h1 class="text-xl font-bold text-pink-600">PinkFriend</h1>
87
+ </div>
88
+ </nav>
89
+
90
+ <!-- Main Content -->
91
+ <main class="flex-1 container mx-auto px-4 py-6">
92
+ <!-- Header Section -->
93
+ <section class="mb-8 text-center" data-aos="fade-down">
94
+ <h2 class="text-2xl font-bold text-white mb-2">로그인 🔐</h2>
95
+ <p class="text-white text-opacity-90">PinkFriend에 다시 오신 것을 환영합니다!</p>
96
+ </section>
97
+
98
+ <!-- Login Form -->
99
+ <section data-aos="fade-up">
100
+ <div class="bg-white rounded-2xl p-6 shadow-lg">
101
+ <form id="loginForm">
102
+ <!-- Email -->
103
+ <div class="mb-4">
104
+ <label class="block text-sm font-medium text-pink-600 mb-2">이메일 📧</label>
105
+ <input type="email" placeholder="이메일을 입력하세요"
106
+ class="w-full input-field rounded-xl px-4 py-3 focus:outline-none" required>
107
+ </div>
108
+
109
+ <!-- Password -->
110
+ <div class="mb-6">
111
+ <label class="block text-sm font-medium text-pink-600 mb-2">비밀번호 🔑</label>
112
+ <input type="password" placeholder="비밀번호를 입력하세요"
113
+ class="w-full input-field rounded-xl px-4 py-3 focus:outline-none" required>
114
+ </div>
115
+
116
+ <!-- Remember Me & Forgot Password -->
117
+ <div class="flex justify-between items-center mb-6">
118
+ <label class="flex items-center">
119
+ <input type="checkbox" class="w-4 h-4 text-pink-600 rounded focus:ring-pink-500">
120
+ <span class="ml-2 text-sm text-gray-600">로그인 상태 유지</span>
121
+ </label>
122
+ <a href="#" class="text-sm text-pink-600 hover:underline">비밀번호 찾기</a>
123
+ </div>
124
+
125
+ <!-- Submit Button -->
126
+ <button type="submit" class="shimmer-btn w-full py-4 rounded-xl text-white font-bold text-lg">
127
+ 로그인하기 ✨
128
+ </button>
129
+ </form>
130
+
131
+ <!-- Social Login -->
132
+ <div class="mt-6">
133
+ <div class="relative flex items-center">
134
+ <div class="flex-grow border-t border-gray-300"></div>
135
+ <span class="flex-shrink mx-4 text-gray-600 text-sm">간편 로그인</span>
136
+ <div class="flex-grow border-t border-gray-300"></div>
137
+ </div>
138
+
139
+ <div class="grid grid-cols-3 gap-3 mt-4">
140
+ <button class="p-3 bg-gray-100 rounded-xl hover:bg-gray-200 transition-colors">
141
+ <i data-feather="facebook" class="w-6 h-6 text-blue-600 mx-auto"></i>
142
+ </button>
143
+ <button class="p-3 bg-gray-100 rounded-xl hover:bg-gray-200 transition-colors">
144
+ <i data-feather="twitter" class="w-6 h-6 text-blue-400 mx-auto"></i>
145
+ </button>
146
+ <button class="p-3 bg-gray-100 rounded-xl hover:bg-gray-200 transition-colors">
147
+ <i data-feather="instagram" class="w-6 h-6 text-pink-500 mx-auto"></i>
148
+ </button>
149
+ </div>
150
+ </div>
151
+
152
+ <!-- Signup Link -->
153
+ <div class="text-center mt-6">
154
+ <p class="text-sm text-gray-600">계정이 없으신가요?
155
+ <a href="signup.html" class="text-pink-600 font-medium hover:underline">회원가입하기</a>
156
+ </p>
157
+ </div>
158
+ </div>
159
+ </section>
160
+ </main>
161
+
162
+ <script>
163
+ // Initialize animations
164
+ AOS.init({
165
+ duration: 800,
166
+ once: true,
167
+ offset: 50
168
+ });
169
+
170
+ // Initialize feather icons
171
+ feather.replace();
172
+
173
+ // Form submission
174
+ document.getElementById('loginForm').addEventListener('submit', function(e) {
175
+ e.preventDefault();
176
+ // Form validation would go here in a real app
177
+
178
+ // Simulate successful login
179
+ alert('로그인 성공! 환영합니다! 🎉');
180
+ window.location.href = 'index.html';
181
+ });
182
+ </script>
183
+ </body>
184
+ </html>
profile.html ADDED
@@ -0,0 +1,252 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PinkFriend - 프로필</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
15
+
16
+ body {
17
+ font-family: 'Noto Sans KR', sans-serif;
18
+ background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 50%, #FF69B4 100%);
19
+ min-height: 100vh;
20
+ }
21
+
22
+ .shimmer-btn {
23
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1, #FF69B4);
24
+ background-size: 200% 200%;
25
+ animation: shimmer 2s ease infinite;
26
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .shimmer-btn:hover {
31
+ transform: translateY(-2px);
32
+ box-shadow: 0 6px 20px rgba(255, 105, 180, 0.4);
33
+ }
34
+
35
+ @keyframes shimmer {
36
+ 0% { background-position: 0% 50%; }
37
+ 50% { background-position: 100% 50%; }
38
+ 100% { background-position: 0% 50%; }
39
+ }
40
+
41
+ .glow-effect {
42
+ box-shadow: 0 0 10px rgba(255, 182, 193, 0.5),
43
+ 0 0 20px rgba(255, 192, 203, 0.3),
44
+ 0 0 30px rgba(255, 105, 180, 0.2);
45
+ }
46
+
47
+ .profile-card {
48
+ transition: all 0.3s ease;
49
+ border-radius: 16px;
50
+ overflow: hidden;
51
+ }
52
+
53
+ .profile-card:hover {
54
+ transform: translateY(-5px);
55
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
56
+ }
57
+
58
+ /* Custom scrollbar */
59
+ ::-webkit-scrollbar {
60
+ width: 6px;
61
+ }
62
+
63
+ ::-webkit-scrollbar-track {
64
+ background: rgba(255, 255, 255, 0.2);
65
+ border-radius: 10px;
66
+ }
67
+
68
+ ::-webkit-scrollbar-thumb {
69
+ background: rgba(255, 105, 180, 0.5);
70
+ border-radius: 10px;
71
+ }
72
+
73
+ ::-webkit-scrollbar-thumb:hover {
74
+ background: rgba(255, 105, 180, 0.7);
75
+ }
76
+
77
+ .tab-active {
78
+ background: rgba(255, 255, 255, 0.9);
79
+ color: #FF69B4;
80
+ font-weight: 600;
81
+ box-shadow: 0 4px 12px rgba(255, 105, 180, 0.2);
82
+ }
83
+
84
+ .interest-tag {
85
+ display: inline-block;
86
+ padding: 6px 12px;
87
+ background: rgba(255, 255, 255, 0.8);
88
+ border-radius: 20px;
89
+ margin: 4px;
90
+ font-size: 14px;
91
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
92
+ }
93
+ </style>
94
+ </head>
95
+ <body class="min-h-screen flex flex-col">
96
+ <!-- Navigation -->
97
+ <nav class="bg-white bg-opacity-90 backdrop-blur-md py-4 px-6 flex justify-between items-center sticky top-0 z-50 glow-effect">
98
+ <div class="flex items-center">
99
+ <i data-feather="user" class="text-pink-500 mr-2"></i>
100
+ <h1 class="text-xl font-bold text-pink-600">PinkFriend</h1>
101
+ </div>
102
+ <div class="flex space-x-4">
103
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
104
+ <i data-feather="edit"></i>
105
+ </button>
106
+ <button class="p-2 rounded-full bg-pink-100 text-pink-600 hover:bg-pink-200 transition-colors">
107
+ <i data-feather="settings"></i>
108
+ </button>
109
+ </div>
110
+ </nav>
111
+
112
+ <!-- Main Content -->
113
+ <main class="flex-1 container mx-auto px-4 py-6">
114
+ <!-- Profile Header -->
115
+ <section class="mb-8 text-center" data-aos="fade-down">
116
+ <div class="relative mx-auto w-24 h-24 mb-4">
117
+ <div class="w-full h-full rounded-full bg-pink-200 flex items-center justify-center text-4xl">
118
+ 👩
119
+ </div>
120
+ <div class="absolute bottom-0 right-0 w-8 h-8 bg-pink-500 rounded-full flex items-center justify-center text-white">
121
+ <i data-feather="camera" class="w-4 h-4"></i>
122
+ </div>
123
+ </div>
124
+ <h2 class="text-2xl font-bold text-white mb-1">예진</h2>
125
+ <p class="text-white text-opacity-90">서울시 강남구 · 25세</p>
126
+ <div class="mt-3">
127
+ <span class="inline-block px-4 py-1 bg-white bg-opacity-20 text-white rounded-full text-sm">
128
+ 🎵 음악 · ☕ 커피 · 📚 독서
129
+ </span>
130
+ </div>
131
+ </section>
132
+
133
+ <!-- Stats Section -->
134
+ <section class="mb-6" data-aos="fade-up">
135
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
136
+ <div class="grid grid-cols-3 gap-4 text-center">
137
+ <div>
138
+ <p class="text-2xl font-bold text-pink-600">24</p>
139
+ <p class="text-sm text-gray-600">친구</p>
140
+ </div>
141
+ <div>
142
+ <p class="text-2xl font-bold text-pink-600">156</p>
143
+ <p class="text-sm text-gray-600">매칭</p>
144
+ </div>
145
+ <div>
146
+ <p class="text-2xl font-bold text-pink-600">89%</p>
147
+ <p class="text-sm text-gray-600">활동률</p>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ </section>
152
+
153
+ <!-- About Me Section -->
154
+ <section class="mb-6" data-aos="fade-up" data-aos-delay="100">
155
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
156
+ <h3 class="font-semibold text-pink-600 mb-3">자기소개</h3>
157
+ <p class="text-gray-700">
158
+ 안녕하세요! 저는 커피와 음악을 좋아하는 예진입니다.
159
+ 주로 스타벅스에서 작업하거나 친구들을 만나요.
160
+ 새로운 사람들과의 대화를 즐기고, 다양한 경험을 나누는 것을 좋아해요! ✨
161
+ </p>
162
+ </div>
163
+ </section>
164
+
165
+ <!-- Interests Section -->
166
+ <section class="mb-6" data-aos="fade-up" data-aos-delay="200">
167
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
168
+ <h3 class="font-semibold text-pink-600 mb-3">관심사</h3>
169
+ <div class="flex flex-wrap">
170
+ <span class="interest-tag">🎵 음악 감상</span>
171
+ <span class="interest-tag">☕ 커피</span>
172
+ <span class="interest-tag">📚 독서</span>
173
+ <span class="interest-tag">🎬 영화</span>
174
+ <span class="interest-tag">✈️ 여행</span>
175
+ <span class="interest-tag">🍳 요리</span>
176
+ <span class="interest-tag">🏃‍♀️ 러닝</span>
177
+ <span class="interest-tag">🎨 드로잉</span>
178
+ </div>
179
+ </div>
180
+ </section>
181
+
182
+ <!-- Settings Section -->
183
+ <section data-aos="fade-up" data-aos-delay="300">
184
+ <div class="bg-white rounded-2xl p-4 shadow-lg">
185
+ <h3 class="font-semibold text-pink-600 mb-3">설정</h3>
186
+ <div class="space-y-3">
187
+ <div class="flex items-center justify-between py-2">
188
+ <div class="flex items-center">
189
+ <i data-feather="bell" class="w-5 h-5 text-pink-500 mr-3"></i>
190
+ <span>알림 설정</span>
191
+ </div>
192
+ <i data-feather="chevron-right" class="w-5 h-5 text-gray-400"></i>
193
+ </div>
194
+ <div class="flex items-center justify-between py-2">
195
+ <div class="flex items-center">
196
+ <i data-feather="shield" class="w-5 h-5 text-pink-500 mr-3"></i>
197
+ <span>개인정보 보호</span>
198
+ </div>
199
+ <i data-feather="chevron-right" class="w-5 h-5 text-gray-400"></i>
200
+ </div>
201
+ <div class="flex items-center justify-between py-2">
202
+ <div class="flex items-center">
203
+ <i data-feather="map-pin" class="w-5 h-5 text-pink-500 mr-3"></i>
204
+ <span>위치 서비스</span>
205
+ </div>
206
+ <i data-feather="chevron-right" class="w-5 h-5 text-gray-400"></i>
207
+ </div>
208
+ <div class="flex items-center justify-between py-2">
209
+ <div class="flex items-center">
210
+ <i data-feather="help-circle" class="w-5 h-5 text-pink-500 mr-3"></i>
211
+ <span>도움말 및 지원</span>
212
+ </div>
213
+ <i data-feather="chevron-right" class="w-5 h-5 text-gray-400"></i>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </section>
218
+ </main>
219
+
220
+ <!-- Bottom Navigation -->
221
+ <div class="bg-white bg-opacity-90 backdrop-blur-md py-3 px-8 flex justify-around items-center sticky bottom-0 z-50 glow-effect">
222
+ <a href="index.html" class="flex flex-col items-center text-gray-400">
223
+ <i data-feather="map-pin" class="w-6 h-6"></i>
224
+ <span class="text-xs mt-1">지도</span>
225
+ </a>
226
+ <a href="friends.html" class="flex flex-col items-center text-gray-400">
227
+ <i data-feather="users" class="w-6 h-6"></i>
228
+ <span class="text-xs mt-1">친구</span>
229
+ </a>
230
+ <a href="chat.html" class="flex flex-col items-center text-gray-400">
231
+ <i data-feather="message-circle" class="w-6 h-6"></i>
232
+ <span class="text-xs mt-1">채팅</span>
233
+ </a>
234
+ <a href="profile.html" class="flex flex-col items-center text-pink-500">
235
+ <i data-feather="user" class="w-6 h-6"></i>
236
+ <span class="text-xs mt-1">프로필</span>
237
+ </a>
238
+ </div>
239
+
240
+ <script>
241
+ // Initialize animations
242
+ AOS.init({
243
+ duration: 800,
244
+ once: true,
245
+ offset: 50
246
+ });
247
+
248
+ // Initialize feather icons
249
+ feather.replace();
250
+ </script>
251
+ </body>
252
+ </html>
prompts.txt ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 구글 지도기반으로 주변 친구 찾기 하자 ! 디자인은 프리미엄으로 해주고 ! 전반적으로 핑크빛이 돌았으면 좋겠어 ! 버튼들은 반짝이게 해주고 ! 이모티콘 넣어서 이쁘게 해줘!
2
+
3
+ 모바일 전용이라 ! 모바일에 최적하 되게 해줘!
4
+
5
+ 남자 : 여자 : 분리 하자 ! 남자면 앞에 남자 아이콘 여자면 여자 아이콘이 닉네임 앞에 있도록 하자 !
6
+ 친구 페이지 만들어줘
7
+ 채팅 페이지 만들어줘
8
+ 채팅 보낼때 이모티콘도 보낼수 있도록 해줘!
9
+ 이번엔 프로필 페이지 만들어줘!
10
+ 회원가입 페이지 만들어줘!
11
+ 로그인 페이지도 만들어
signup.html ADDED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PinkFriend - 회원가입</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap');
15
+
16
+ body {
17
+ font-family: 'Noto Sans KR', sans-serif;
18
+ background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 50%, #FF69B4 100%);
19
+ min-height: 100vh;
20
+ }
21
+
22
+ .shimmer-btn {
23
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1, #FF69B4);
24
+ background-size: 200% 200%;
25
+ animation: shimmer 2s ease infinite;
26
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .shimmer-btn:hover {
31
+ transform: translateY(-2px);
32
+ box-shadow: 0 6px 20px rgba(255, 105, 180, 0.4);
33
+ }
34
+
35
+ @keyframes shimmer {
36
+ 0% { background-position: 0% 50%; }
37
+ 50% { background-position: 100% 50%; }
38
+ 100% { background-position: 0% 50%; }
39
+ }
40
+
41
+ .glow-effect {
42
+ box-shadow: 0 0 10px rgba(255, 182, 193, 0.5),
43
+ 0 0 20px rgba(255, 192, 203, 0.3),
44
+ 0 0 30px rgba(255, 105, 180, 0.2);
45
+ }
46
+
47
+ .input-field {
48
+ background: rgba(255, 255, 255, 0.9);
49
+ border: 2px solid transparent;
50
+ transition: all 0.3s ease;
51
+ }
52
+
53
+ .input-field:focus {
54
+ border-color: #FF69B4;
55
+ box-shadow: 0 0 0 3px rgba(255, 105, 180, 0.2);
56
+ }
57
+
58
+ .gender-selector {
59
+ transition: all 0.3s ease;
60
+ }
61
+
62
+ .gender-selector.selected {
63
+ background: linear-gradient(45deg, #FF69B4, #FFB6C1);
64
+ color: white;
65
+ transform: scale(1.05);
66
+ box-shadow: 0 4px 15px rgba(255, 105, 180, 0.3);
67
+ }
68
+
69
+ /* Custom scrollbar */
70
+ ::-webkit-scrollbar {
71
+ width: 6px;
72
+ }
73
+
74
+ ::-webkit-scrollbar-track {
75
+ background: rgba(255, 255, 255, 0.2);
76
+ border-radius: 10px;
77
+ }
78
+
79
+ ::-webkit-scrollbar-thumb {
80
+ background: rgba(255, 105, 180, 0.5);
81
+ border-radius: 10px;
82
+ }
83
+
84
+ ::-webkit-scrollbar-thumb:hover {
85
+ background: rgba(255, 105, 180, 0.7);
86
+ }
87
+ </style>
88
+ </head>
89
+ <body class="min-h-screen flex flex-col">
90
+ <!-- Navigation -->
91
+ <nav class="bg-white bg-opacity-90 backdrop-blur-md py-4 px-6 flex justify-between items-center sticky top-0 z-50 glow-effect">
92
+ <div class="flex items-center">
93
+ <a href="index.html" class="mr-3 text-pink-500">
94
+ <i data-feather="arrow-left" class="w-5 h-5"></i>
95
+ </a>
96
+ <i data-feather="users" class="text-pink-500 mr-2"></i>
97
+ <h1 class="text-xl font-bold text-pink-600">PinkFriend</h1>
98
+ </div>
99
+ </nav>
100
+
101
+ <!-- Main Content -->
102
+ <main class="flex-1 container mx-auto px-4 py-6">
103
+ <!-- Header Section -->
104
+ <section class="mb-8 text-center" data-aos="fade-down">
105
+ <h2 class="text-2xl font-bold text-white mb-2">회원가입 🎉</h2>
106
+ <p class="text-white text-opacity-90">PinkFriend에 오신 것을 환영합니다!</p>
107
+ </section>
108
+
109
+ <!-- Signup Form -->
110
+ <section data-aos="fade-up">
111
+ <div class="bg-white rounded-2xl p-6 shadow-lg">
112
+ <form id="signupForm">
113
+ <!-- Profile Image -->
114
+ <div class="flex justify-center mb-6">
115
+ <div class="relative">
116
+ <div class="w-20 h-20 rounded-full bg-pink-200 flex items-center justify-center text-3xl cursor-pointer" onclick="document.getElementById('profileImage').click()">
117
+ 👩
118
+ </div>
119
+ <input type="file" id="profileImage" class="hidden" accept="image/*">
120
+ <div class="absolute bottom-0 right-0 w-6 h-6 bg-pink-500 rounded-full flex items-center justify-center text-white">
121
+ <i data-feather="camera" class="w-3 h-3"></i>
122
+ </div>
123
+ </div>
124
+ </div>
125
+
126
+ <!-- Nickname -->
127
+ <div class="mb-4">
128
+ <label class="block text-sm font-medium text-pink-600 mb-2">닉네임 ✏️</label>
129
+ <input type="text" placeholder="사용할 닉네임을 입력하세요"
130
+ class="w-full input-field rounded-xl px-4 py-3 focus:outline-none">
131
+ </div>
132
+
133
+ <!-- Gender Selection -->
134
+ <div class="mb-4">
135
+ <label class="block text-sm font-medium text-pink-600 mb-2">성별 🌈</label>
136
+ <div class="flex space-x-4">
137
+ <div class="flex-1 gender-selector rounded-xl p-4 text-center cursor-pointer border-2 border-pink-100 selected" onclick="selectGender(this, 'female')">
138
+ <span class="text-2xl block mb-2">👩</span>
139
+ <span class="text-sm">여성</span>
140
+ </div>
141
+ <div class="flex-1 gender-selector rounded-xl p-4 text-center cursor-pointer border-2 border-blue-100" onclick="selectGender(this, 'male')">
142
+ <span class="text-2xl block mb-2">👨</span>
143
+ <span class="text-sm">남성</span>
144
+ </div>
145
+ </div>
146
+ </div>
147
+
148
+ <!-- Age -->
149
+ <div class="mb-4">
150
+ <label class="block text-sm font-medium text-pink-600 mb-2">나이 🎂</label>
151
+ <input type="number" placeholder="나이를 입력하세요" min="18" max="100"
152
+ class="w-full input-field rounded-xl px-4 py-3 focus:outline-none">
153
+ </div>
154
+
155
+ <!-- Location -->
156
+ <div class="mb-4">
157
+ <label class="block text-sm font-medium text-pink-600 mb-2">위치 📍</label>
158
+ <div class="flex space-x-2">
159
+ <input type="text" placeholder="현재 위치"
160
+ class="flex-1 input-field rounded-xl px-4 py-3 focus:outline-none" id="locationInput">
161
+ <button type="button" class="shimmer-btn px-4 py-3 rounded-xl text-white" onclick="getCurrentLocation()">
162
+ <i data-feather="map-pin" class="w-4 h-4"></i>
163
+ </button>
164
+ </div>
165
+ </div>
166
+
167
+ <!-- Interests -->
168
+ <div class="mb-6">
169
+ <label class="block text-sm font-medium text-pink-600 mb-2">관심사 🎯</label>
170
+ <div class="grid grid-cols-3 gap-2">
171
+ <label class="flex items-center">
172
+ <input type="checkbox" class="hidden peer">
173
+ <span class="flex-1 text-center py-2 bg-gray-100 rounded-lg peer-checked:bg-pink-100 peer-checked:text-pink-600 cursor-pointer">🎬 영화</span>
174
+ </label>
175
+ <label class="flex items-center">
176
+ <input type="checkbox" class="hidden peer">
177
+ <span class="flex-1 text-center py-2 bg-gray-100 rounded-lg peer-checked:bg-pink-100 peer-checked:text-pink-600 cursor-pointer">☕ 커피</span>
178
+ </label>
179
+ <label class="flex items-center">
180
+ <input type="checkbox" class="hidden peer">
181
+ <span class="flex-1 text-center py-2 bg-gray-100 rounded-lg peer-checked:bg-pink-100 peer-checked:text-pink-600 cursor-pointer">🎵 음악</span>
182
+ </label>
183
+ <label class="flex items-center">
184
+ <input type="checkbox" class="hidden peer">
185
+ <span class="flex-1 text-center py-2 bg-gray-100 rounded-lg peer-checked:bg-pink-100 peer-checked:text-pink-600 cursor-pointer">🏃 운동</span>
186
+ </label>
187
+ <label class="flex items-center">
188
+ <input type="checkbox" class="hidden peer">
189
+ <span class="flex-1 text-center py-2 bg-gray-100 rounded-lg peer-checked:bg-pink-100 peer-checked:text-pink-600 cursor-pointer">🎮 게임</span>
190
+ </label>
191
+ <label class="flex items-center">
192
+ <input type="checkbox" class="hidden peer">
193
+ <span class="flex-1 text-center py-2 bg-gray-100 rounded-lg peer-checked:bg-pink-100 peer-checked:text-pink-600 cursor-pointer">📚 독서</span>
194
+ </label>
195
+ </div>
196
+ </div>
197
+
198
+ <!-- Terms Agreement -->
199
+ <div class="mb-6">
200
+ <label class="flex items-center">
201
+ <input type="checkbox" class="w-4 h-4 text-pink-600 rounded focus:ring-pink-500">
202
+ <span class="ml-2 text-sm text-gray-600">이용약관에 동의합니다 📋</span>
203
+ </label>
204
+ <label class="flex items-center mt-2">
205
+ <input type="checkbox" class="w-4 h-4 text-pink-600 rounded focus:ring-pink-500">
206
+ <span class="ml-2 text-sm text-gray-600">개인정보 처리방침에 동의합니다 🔒</span>
207
+ </label>
208
+ </div>
209
+
210
+ <!-- Submit Button -->
211
+ <button type="submit" class="shimmer-btn w-full py-4 rounded-xl text-white font-bold text-lg">
212
+ 회원가입 완료하기 🎊
213
+ </button>
214
+ </form>
215
+
216
+ <!-- Login Link -->
217
+ <div class="text-center mt-6">
218
+ <p class="text-sm text-gray-600">이미 계정이 있으신가요?
219
+ <a href="index.html" class="text-pink-600 font-medium hover:underline">로그인하기</a>
220
+ </p>
221
+ </div>
222
+ </div>
223
+ </section>
224
+ </main>
225
+
226
+ <script>
227
+ // Initialize animations
228
+ AOS.init({
229
+ duration: 800,
230
+ once: true,
231
+ offset: 50
232
+ });
233
+
234
+ // Initialize feather icons
235
+ feather.replace();
236
+
237
+ // Gender selection function
238
+ function selectGender(element, gender) {
239
+ // Remove selected class from all gender options
240
+ document.querySelectorAll('.gender-selector').forEach(el => {
241
+ el.classList.remove('selected');
242
+ if (gender === 'female') {
243
+ el.classList.remove('bg-pink-100');
244
+ el.classList.add('border-pink-100');
245
+ } else {
246
+ el.classList.remove('bg-blue-100');
247
+ el.classList.add('border-blue-100');
248
+ }
249
+ });
250
+
251
+ // Add selected class to clicked element
252
+ element.classList.add('selected');
253
+ if (gender === 'female') {
254
+ element.classList.remove('border-pink-100');
255
+ element.classList.add('bg-pink-100');
256
+ } else {
257
+ element.classList.remove('border-blue-100');
258
+ element.classList.add('bg-blue-100');
259
+ }
260
+ }
261
+
262
+ // Get current location
263
+ function getCurrentLocation() {
264
+ if (navigator.geolocation) {
265
+ navigator.geolocation.getCurrentPosition(
266
+ function(position) {
267
+ // In a real app, you would reverse geocode the coordinates
268
+ document.getElementById('locationInput').value = "현재 위치 (자동 감지됨)";
269
+ },
270
+ function(error) {
271
+ console.error("위치 정보를 가져오지 못했습니다:", error);
272
+ alert("위치 정보 접근 권한이 필요합니다. 설정에서 권한을 허용해주세요.");
273
+ }
274
+ );
275
+ } else {
276
+ alert("이 브라우저는 위치 정보 기능을 지원하지 않습니다.");
277
+ }
278
+ }
279
+
280
+ // Form submission
281
+ document.getElementById('signupForm').addEventListener('submit', function(e) {
282
+ e.preventDefault();
283
+ // Form validation would go here in a real app
284
+
285
+ // Simulate successful registration
286
+ alert('회원가입이 완료되었습니다! 🎉');
287
+ window.location.href = 'index.html';
288
+ });
289
+
290
+ // Interest checkbox styling
291
+ document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => {
292
+ checkbox.addEventListener('change', function() {
293
+ const span = this.nextElementSibling;
294
+ if (this.checked) {
295
+ span.classList.add('bg-pink-100', 'text-pink-600');
296
+ span.classList.remove('bg-gray-100');
297
+ } else {
298
+ span.classList.remove('bg-pink-100', 'text-pink-600');
299
+ span.classList.add('bg-gray-100');
300
+ }
301
+ });
302
+ });
303
+ </script>
304
+ </body>
305
+ </html>