offerpk3 commited on
Commit
6f46e4a
·
verified ·
1 Parent(s): f1c4333

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +619 -19
index.html CHANGED
@@ -1,19 +1,619 @@
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="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Red Eye Portfolio</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
9
+ <script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script>
10
+ <script>
11
+ tailwind.config = {
12
+ darkMode: 'class',
13
+ theme: {
14
+ extend: {
15
+ colors: {
16
+ 'primary': '#6d28d9',
17
+ 'primary-dark': '#5b21b6',
18
+ 'secondary': '#1e293b',
19
+ 'secondary-dark': '#0f172a',
20
+ },
21
+ animation: {
22
+ 'float': 'float 3s ease-in-out infinite',
23
+ 'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
24
+ },
25
+ keyframes: {
26
+ float: {
27
+ '0%, 100%': { transform: 'translateY(0)' },
28
+ '50%': { transform: 'translateY(-10px)' },
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ </script>
35
+ </head>
36
+ <body class="bg-secondary text-white font-sans transition-colors duration-500 min-h-screen" id="body">
37
+ <!-- Navigation -->
38
+ <nav class="bg-secondary-dark p-4 sticky top-0 z-50 shadow-lg">
39
+ <div class="container mx-auto flex justify-between items-center">
40
+ <div class="flex items-center space-x-2">
41
+ <div class="w-10 h-10 bg-primary rounded-full flex items-center justify-center">
42
+ <i class="fas fa-eye text-white"></i>
43
+ </div>
44
+ <span class="text-xl font-bold">Red Eye</span>
45
+ </div>
46
+ <div class="hidden md:flex space-x-6">
47
+ <a href="#projects" class="hover:text-primary transition">Projects</a>
48
+ <a href="#crypto" class="hover:text-primary transition">Crypto</a>
49
+ <a href="#skills" class="hover:text-primary transition">Skills</a>
50
+ <a href="#contact" class="hover:text-primary transition">Contact</a>
51
+ </div>
52
+ <div class="flex items-center space-x-4">
53
+ <button onclick="toggleTheme()" class="p-2 rounded-full bg-secondary hover:bg-primary transition">
54
+ <i class="fas fa-moon" id="theme-icon"></i>
55
+ </button>
56
+ <button class="md:hidden p-2 rounded-full bg-secondary hover:bg-primary transition" id="mobile-menu-button">
57
+ <i class="fas fa-bars"></i>
58
+ </button>
59
+ </div>
60
+ </div>
61
+ <!-- Mobile menu -->
62
+ <div class="md:hidden hidden bg-secondary-dark p-4" id="mobile-menu">
63
+ <div class="flex flex-col space-y-3">
64
+ <a href="#projects" class="hover:text-primary transition">Projects</a>
65
+ <a href="#crypto" class="hover:text-primary transition">Crypto</a>
66
+ <a href="#skills" class="hover:text-primary transition">Skills</a>
67
+ <a href="#contact" class="hover:text-primary transition">Contact</a>
68
+ </div>
69
+ </div>
70
+ </nav>
71
+
72
+ <!-- Hero Section -->
73
+ <section class="py-20 px-4">
74
+ <div class="container mx-auto flex flex-col md:flex-row items-center">
75
+ <div class="md:w-1/2 mb-10 md:mb-0">
76
+ <h1 class="text-5xl font-bold mb-4">👨‍💻 Red Eye</h1>
77
+ <h2 class="text-3xl text-primary mb-6">Vibe Coder & Crypto Enthusiast</h2>
78
+ <p class="text-lg mb-8 text-gray-300">Building innovative solutions at the intersection of AI, blockchain, and web technologies.</p>
79
+ <div class="flex space-x-4">
80
+ <a href="#projects" class="bg-primary hover:bg-primary-dark px-6 py-3 rounded-lg font-medium transition transform hover:scale-105">
81
+ View Projects
82
+ </a>
83
+ <a href="#contact" class="border border-primary text-primary hover:bg-primary hover:text-white px-6 py-3 rounded-lg font-medium transition transform hover:scale-105">
84
+ Contact Me
85
+ </a>
86
+ </div>
87
+ </div>
88
+ <div class="md:w-1/2 flex justify-center">
89
+ <div class="relative">
90
+ <div class="w-64 h-64 bg-primary rounded-full opacity-20 absolute -top-10 -left-10 animate-pulse-slow"></div>
91
+ <div class="w-64 h-64 bg-primary rounded-full opacity-20 absolute -bottom-10 -right-10 animate-pulse-slow"></div>
92
+ <img src="https://images.unsplash.com/photo-1571171637578-41bc2dd41cd2?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60"
93
+ alt="Developer"
94
+ class="relative z-10 w-64 h-64 rounded-full object-cover border-4 border-primary shadow-xl animate-float">
95
+ </div>
96
+ </div>
97
+ </div>
98
+ </section>
99
+
100
+ <!-- Projects -->
101
+ <section id="projects" class="py-16 bg-secondary-dark px-4">
102
+ <div class="container mx-auto">
103
+ <h2 class="text-3xl font-bold mb-12 text-center">
104
+ <span class="border-b-4 border-primary pb-2">🚀 My Projects</span>
105
+ </h2>
106
+ <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
107
+ <!-- Project 1 -->
108
+ <div class="bg-secondary rounded-xl overflow-hidden shadow-lg transform transition hover:scale-105 hover:shadow-xl">
109
+ <div class="h-48 bg-gradient-to-r from-primary to-purple-600 flex items-center justify-center">
110
+ <i class="fas fa-credit-card text-white text-6xl"></i>
111
+ </div>
112
+ <div class="p-6">
113
+ <h3 class="text-xl font-bold mb-2">AI Card Generator</h3>
114
+ <p class="text-gray-300 mb-4">Generate test cards, validate BINs, simulate fraud with 1-click. Perfect for developers and QA teams.</p>
115
+ <div class="flex flex-wrap gap-2 mb-4">
116
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">AI</span>
117
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">Fintech</span>
118
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">Security</span>
119
+ </div>
120
+ <a href="#" class="text-primary hover:underline font-medium">View Project →</a>
121
+ </div>
122
+ </div>
123
+
124
+ <!-- Project 2 -->
125
+ <div class="bg-secondary rounded-xl overflow-hidden shadow-lg transform transition hover:scale-105 hover:shadow-xl">
126
+ <div class="h-48 bg-gradient-to-r from-blue-500 to-blue-700 flex items-center justify-center">
127
+ <i class="fab fa-telegram text-white text-6xl"></i>
128
+ </div>
129
+ <div class="p-6">
130
+ <h3 class="text-xl font-bold mb-2">Crypto Tracker Bot</h3>
131
+ <p class="text-gray-300 mb-4">Live price bot for Telegram using CoinGecko API with customizable alerts and portfolio tracking.</p>
132
+ <div class="flex flex-wrap gap-2 mb-4">
133
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">Crypto</span>
134
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">Telegram</span>
135
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">API</span>
136
+ </div>
137
+ <a href="#" class="text-primary hover:underline font-medium">View Project →</a>
138
+ </div>
139
+ </div>
140
+
141
+ <!-- Project 3 -->
142
+ <div class="bg-secondary rounded-xl overflow-hidden shadow-lg transform transition hover:scale-105 hover:shadow-xl">
143
+ <div class="h-48 bg-gradient-to-r from-green-500 to-green-700 flex items-center justify-center">
144
+ <i class="fas fa-wallet text-white text-6xl"></i>
145
+ </div>
146
+ <div class="p-6">
147
+ <h3 class="text-xl font-bold mb-2">DeFi Dashboard</h3>
148
+ <p class="text-gray-300 mb-4">Track your DeFi investments across multiple chains with real-time analytics and performance metrics.</p>
149
+ <div class="flex flex-wrap gap-2 mb-4">
150
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">DeFi</span>
151
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">Blockchain</span>
152
+ <span class="bg-primary-dark text-xs px-3 py-1 rounded-full">Analytics</span>
153
+ </div>
154
+ <a href="#" class="text-primary hover:underline font-medium">View Project →</a>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ </section>
160
+
161
+ <!-- Skills -->
162
+ <section id="skills" class="py-16 px-4">
163
+ <div class="container mx-auto">
164
+ <h2 class="text-3xl font-bold mb-12 text-center">
165
+ <span class="border-b-4 border-primary pb-2">🛠️ My Skills</span>
166
+ </h2>
167
+ <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-8">
168
+ <!-- Skill 1 -->
169
+ <div class="bg-secondary rounded-xl p-6 text-center shadow-lg hover:shadow-primary/20 transition">
170
+ <div class="w-20 h-20 bg-primary rounded-full flex items-center justify-center mx-auto mb-4">
171
+ <i class="fab fa-js text-white text-3xl"></i>
172
+ </div>
173
+ <h3 class="text-xl font-bold mb-2">JavaScript</h3>
174
+ <p class="text-gray-300">Modern ES6+, Node.js, Express, React, Vue</p>
175
+ <div class="mt-4 h-2 bg-gray-700 rounded-full">
176
+ <div class="h-2 bg-primary rounded-full" style="width: 90%"></div>
177
+ </div>
178
+ </div>
179
+
180
+ <!-- Skill 2 -->
181
+ <div class="bg-secondary rounded-xl p-6 text-center shadow-lg hover:shadow-primary/20 transition">
182
+ <div class="w-20 h-20 bg-primary rounded-full flex items-center justify-center mx-auto mb-4">
183
+ <i class="fas fa-server text-white text-3xl"></i>
184
+ </div>
185
+ <h3 class="text-xl font-bold mb-2">Backend</h3>
186
+ <p class="text-gray-300">Node.js, Python, Django, REST APIs, GraphQL</p>
187
+ <div class="mt-4 h-2 bg-gray-700 rounded-full">
188
+ <div class="h-2 bg-primary rounded-full" style="width: 85%"></div>
189
+ </div>
190
+ </div>
191
+
192
+ <!-- Skill 3 -->
193
+ <div class="bg-secondary rounded-xl p-6 text-center shadow-lg hover:shadow-primary/20 transition">
194
+ <div class="w-20 h-20 bg-primary rounded-full flex items-center justify-center mx-auto mb-4">
195
+ <i class="fab fa-ethereum text-white text-3xl"></i>
196
+ </div>
197
+ <h3 class="text-xl font-bold mb-2">Blockchain</h3>
198
+ <p class="text-gray-300">Solidity, Web3.js, Ethers.js, Smart Contracts</p>
199
+ <div class="mt-4 h-2 bg-gray-700 rounded-full">
200
+ <div class="h-2 bg-primary rounded-full" style="width: 80%"></div>
201
+ </div>
202
+ </div>
203
+
204
+ <!-- Skill 4 -->
205
+ <div class="bg-secondary rounded-xl p-6 text-center shadow-lg hover:shadow-primary/20 transition">
206
+ <div class="w-20 h-20 bg-primary rounded-full flex items-center justify-center mx-auto mb-4">
207
+ <i class="fas fa-robot text-white text-3xl"></i>
208
+ </div>
209
+ <h3 class="text-xl font-bold mb-2">AI/ML</h3>
210
+ <p class="text-gray-300">Python, TensorFlow, NLP, Computer Vision</p>
211
+ <div class="mt-4 h-2 bg-gray-700 rounded-full">
212
+ <div class="h-2 bg-primary rounded-full" style="width: 75%"></div>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </section>
218
+
219
+ <!-- Live Crypto Prices -->
220
+ <section id="crypto" class="py-16 bg-secondary-dark px-4">
221
+ <div class="container mx-auto">
222
+ <h2 class="text-3xl font-bold mb-12 text-center">
223
+ <span class="border-b-4 border-primary pb-2">📈 Live Crypto Prices</span>
224
+ </h2>
225
+
226
+ <div class="mb-8 flex justify-center">
227
+ <div class="relative w-full max-w-md">
228
+ <input type="text" id="crypto-search" placeholder="Search cryptocurrencies..."
229
+ class="w-full bg-secondary border border-gray-600 rounded-lg py-3 px-4 pl-10 focus:outline-none focus:ring-2 focus:ring-primary">
230
+ <i class="fas fa-search absolute left-3 top-3.5 text-gray-400"></i>
231
+ </div>
232
+ </div>
233
+
234
+ <div id="crypto-prices" class="grid sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5 gap-4 mb-12"></div>
235
+
236
+ <div class="bg-white rounded-xl p-6 shadow-lg">
237
+ <div class="flex justify-between items-center mb-4">
238
+ <h3 class="text-2xl font-bold text-gray-800">Bitcoin (BTC) 7-Day Chart</h3>
239
+ <div class="flex space-x-2">
240
+ <button class="bg-gray-200 hover:bg-gray-300 px-3 py-1 rounded text-sm text-gray-800" onclick="updateChart('7')">7D</button>
241
+ <button class="bg-gray-200 hover:bg-gray-300 px-3 py-1 rounded text-sm text-gray-800" onclick="updateChart('30')">30D</button>
242
+ <button class="bg-gray-200 hover:bg-gray-300 px-3 py-1 rounded text-sm text-gray-800" onclick="updateChart('90')">90D</button>
243
+ </div>
244
+ </div>
245
+ <canvas id="btcChart" class="w-full h-80"></canvas>
246
+ </div>
247
+ </div>
248
+ </section>
249
+
250
+ <!-- Contact -->
251
+ <section id="contact" class="py-16 px-4">
252
+ <div class="container mx-auto max-w-4xl">
253
+ <h2 class="text-3xl font-bold mb-12 text-center">
254
+ <span class="border-b-4 border-primary pb-2">📬 Contact Me</span>
255
+ </h2>
256
+
257
+ <div class="bg-secondary rounded-xl shadow-lg overflow-hidden">
258
+ <div class="md:flex">
259
+ <div class="md:w-1/2 bg-gradient-to-br from-primary to-purple-600 p-8 text-white">
260
+ <h3 class="text-2xl font-bold mb-4">Let's work together</h3>
261
+ <p class="mb-6">Have a project in mind or want to discuss potential opportunities? Feel free to reach out!</p>
262
+
263
+ <div class="space-y-4">
264
+ <div class="flex items-center space-x-3">
265
+ <i class="fas fa-envelope"></i>
266
+ <span>contact@redeye.dev</span>
267
+ </div>
268
+ <div class="flex items-center space-x-3">
269
+ <i class="fab fa-telegram"></i>
270
+ <span>@redeyecoder</span>
271
+ </div>
272
+ <div class="flex items-center space-x-3">
273
+ <i class="fab fa-github"></i>
274
+ <span>github.com/redeye</span>
275
+ </div>
276
+ </div>
277
+
278
+ <div class="mt-8 flex space-x-4">
279
+ <a href="#" class="w-10 h-10 rounded-full bg-white/20 flex items-center justify-center hover:bg-white/30 transition">
280
+ <i class="fab fa-twitter"></i>
281
+ </a>
282
+ <a href="#" class="w-10 h-10 rounded-full bg-white/20 flex items-center justify-center hover:bg-white/30 transition">
283
+ <i class="fab fa-linkedin-in"></i>
284
+ </a>
285
+ <a href="#" class="w-10 h-10 rounded-full bg-white/20 flex items-center justify-center hover:bg-white/30 transition">
286
+ <i class="fab fa-github"></i>
287
+ </a>
288
+ </div>
289
+ </div>
290
+
291
+ <div class="md:w-1/2 p-8">
292
+ <form class="space-y-4">
293
+ <div>
294
+ <label for="name" class="block text-sm font-medium mb-1">Name</label>
295
+ <input type="text" id="name" class="w-full bg-secondary border border-gray-600 rounded-lg py-2 px-3 focus:outline-none focus:ring-2 focus:ring-primary">
296
+ </div>
297
+
298
+ <div>
299
+ <label for="email" class="block text-sm font-medium mb-1">Email</label>
300
+ <input type="email" id="email" class="w-full bg-secondary border border-gray-600 rounded-lg py-2 px-3 focus:outline-none focus:ring-2 focus:ring-primary">
301
+ </div>
302
+
303
+ <div>
304
+ <label for="message" class="block text-sm font-medium mb-1">Message</label>
305
+ <textarea id="message" rows="4" class="w-full bg-secondary border border-gray-600 rounded-lg py-2 px-3 focus:outline-none focus:ring-2 focus:ring-primary"></textarea>
306
+ </div>
307
+
308
+ <button type="submit" class="w-full bg-primary hover:bg-primary-dark py-3 rounded-lg font-medium transition transform hover:scale-105">
309
+ Send Message
310
+ </button>
311
+ </form>
312
+ </div>
313
+ </div>
314
+ </div>
315
+ </div>
316
+ </section>
317
+
318
+ <!-- Footer -->
319
+ <footer class="bg-secondary-dark py-8 px-4">
320
+ <div class="container mx-auto">
321
+ <div class="flex flex-col md:flex-row justify-between items-center">
322
+ <div class="flex items-center space-x-2 mb-4 md:mb-0">
323
+ <div class="w-8 h-8 bg-primary rounded-full flex items-center justify-center">
324
+ <i class="fas fa-eye text-white text-sm"></i>
325
+ </div>
326
+ <span class="font-bold">Red Eye</span>
327
+ </div>
328
+
329
+ <div class="flex space-x-6">
330
+ <a href="#" class="hover:text-primary transition">Home</a>
331
+ <a href="#projects" class="hover:text-primary transition">Projects</a>
332
+ <a href="#crypto" class="hover:text-primary transition">Crypto</a>
333
+ <a href="#contact" class="hover:text-primary transition">Contact</a>
334
+ </div>
335
+ </div>
336
+
337
+ <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400">
338
+ <p>© 2023 Red Eye. All rights reserved.</p>
339
+ </div>
340
+ </div>
341
+ </footer>
342
+
343
+ <script>
344
+ // Theme toggle
345
+ function toggleTheme() {
346
+ const body = document.getElementById('body');
347
+ const themeIcon = document.getElementById('theme-icon');
348
+
349
+ body.classList.toggle('bg-secondary');
350
+ body.classList.toggle('bg-gray-100');
351
+ body.classList.toggle('text-white');
352
+ body.classList.toggle('text-gray-800');
353
+
354
+ if (themeIcon.classList.contains('fa-moon')) {
355
+ themeIcon.classList.remove('fa-moon');
356
+ themeIcon.classList.add('fa-sun');
357
+ } else {
358
+ themeIcon.classList.remove('fa-sun');
359
+ themeIcon.classList.add('fa-moon');
360
+ }
361
+ }
362
+
363
+ // Mobile menu toggle
364
+ const mobileMenuButton = document.getElementById('mobile-menu-button');
365
+ const mobileMenu = document.getElementById('mobile-menu');
366
+
367
+ mobileMenuButton.addEventListener('click', () => {
368
+ mobileMenu.classList.toggle('hidden');
369
+ });
370
+
371
+ // Crypto data
372
+ const ids = [
373
+ "bitcoin", "ethereum", "binancecoin", "dogecoin", "solana",
374
+ "cardano", "polkadot", "litecoin", "tron", "avalanche",
375
+ "ripple", "chainlink", "stellar", "uniswap", "polygon"
376
+ ];
377
+
378
+ const logos = {
379
+ bitcoin: "https://cryptologos.cc/logos/bitcoin-btc-logo.png",
380
+ ethereum: "https://cryptologos.cc/logos/ethereum-eth-logo.png",
381
+ binancecoin: "https://cryptologos.cc/logos/binance-coin-bnb-logo.png",
382
+ dogecoin: "https://cryptologos.cc/logos/dogecoin-doge-logo.png",
383
+ solana: "https://cryptologos.cc/logos/solana-sol-logo.png",
384
+ cardano: "https://cryptologos.cc/logos/cardano-ada-logo.png",
385
+ polkadot: "https://cryptologos.cc/logos/polkadot-new-dot-logo.png",
386
+ litecoin: "https://cryptologos.cc/logos/litecoin-ltc-logo.png",
387
+ tron: "https://cryptologos.cc/logos/tron-trx-logo.png",
388
+ avalanche: "https://cryptologos.cc/logos/avalanche-avax-logo.png",
389
+ ripple: "https://cryptologos.cc/logos/xrp-xrp-logo.png",
390
+ chainlink: "https://cryptologos.cc/logos/chainlink-link-logo.png",
391
+ stellar: "https://cryptologos.cc/logos/stellar-xlm-logo.png",
392
+ uniswap: "https://cryptologos.cc/logos/uniswap-uni-logo.png",
393
+ polygon: "https://cryptologos.cc/logos/polygon-matic-logo.png"
394
+ };
395
+
396
+ let btcChart = null;
397
+
398
+ async function getCryptoPrices() {
399
+ const priceDiv = document.getElementById("crypto-prices");
400
+ const searchInput = document.getElementById("crypto-search");
401
+ const searchTerm = searchInput ? searchInput.value.toLowerCase() : '';
402
+
403
+ try {
404
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${ids.join(',')}&vs_currencies=usd&include_24hr_change=true`;
405
+ const res = await fetch(url);
406
+ const data = await res.json();
407
+
408
+ priceDiv.innerHTML = "";
409
+
410
+ ids.forEach(id => {
411
+ const coin = data[id];
412
+ if (!coin) return;
413
+
414
+ const name = id.charAt(0).toUpperCase() + id.slice(1);
415
+ if (searchTerm && !name.toLowerCase().includes(searchTerm)) return;
416
+
417
+ const price = coin.usd !== undefined ? `$${coin.usd.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` : 'N/A';
418
+ const change24h = coin.usd_24h_change !== undefined ? coin.usd_24h_change.toFixed(2) : 0;
419
+ const logo = logos[id];
420
+ const changeClass = change24h >= 0 ? 'text-green-500' : 'text-red-500';
421
+ const changeIcon = change24h >= 0 ? 'fa-arrow-up' : 'fa-arrow-down';
422
+
423
+ priceDiv.innerHTML += `
424
+ <div class="bg-secondary rounded-lg p-4 shadow hover:shadow-lg transition">
425
+ <div class="flex items-center space-x-3 mb-2">
426
+ <img src="${logo}" alt="${name} Logo" class="w-8 h-8 rounded-full">
427
+ <div>
428
+ <strong>${name}</strong>
429
+ <div class="text-xs text-gray-400">${id.toUpperCase()}</div>
430
+ </div>
431
+ </div>
432
+ <div class="flex justify-between items-center">
433
+ <span class="font-medium">${price}</span>
434
+ <span class="text-sm ${changeClass}">
435
+ <i class="fas ${changeIcon}"></i> ${Math.abs(change24h)}%
436
+ </span>
437
+ </div>
438
+ </div>`;
439
+ });
440
+
441
+ if (priceDiv.innerHTML === "") {
442
+ priceDiv.innerHTML = `<div class="col-span-full text-center py-8 text-gray-400">No cryptocurrencies found matching "${searchTerm}"</div>`;
443
+ }
444
+ } catch (err) {
445
+ console.error("Price Fetch Error:", err);
446
+ priceDiv.innerHTML = `
447
+ <div class="col-span-full text-center py-8">
448
+ <div class="inline-block bg-red-500/20 text-red-500 px-4 py-2 rounded-lg">
449
+ <i class="fas fa-exclamation-triangle mr-2"></i> Failed to fetch prices. Try again shortly.
450
+ </div>
451
+ </div>`;
452
+ }
453
+ }
454
+
455
+ async function drawChart(days = '7') {
456
+ try {
457
+ const res = await fetch(`https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=${days}`);
458
+ const data = await res.json();
459
+
460
+ // Process data
461
+ const prices = data.prices;
462
+ const labels = [];
463
+ const values = [];
464
+
465
+ // Reduce data points for better performance with large datasets
466
+ const step = Math.max(1, Math.floor(prices.length / 30));
467
+
468
+ for (let i = 0; i < prices.length; i += step) {
469
+ const date = new Date(prices[i][0]);
470
+ labels.push(date.toLocaleDateString());
471
+ values.push(prices[i][1]);
472
+ }
473
+
474
+ // Get current theme
475
+ const isDark = document.getElementById('body').classList.contains('bg-secondary');
476
+
477
+ // Get or create chart
478
+ const ctx = document.getElementById('btcChart').getContext('2d');
479
+
480
+ if (btcChart) {
481
+ btcChart.data.labels = labels;
482
+ btcChart.data.datasets[0].data = values;
483
+ btcChart.update();
484
+ } else {
485
+ btcChart = new Chart(ctx, {
486
+ type: 'line',
487
+ data: {
488
+ labels,
489
+ datasets: [{
490
+ label: 'Bitcoin Price (USD)',
491
+ data: values,
492
+ fill: true,
493
+ backgroundColor: 'rgba(109, 40, 217, 0.1)',
494
+ borderColor: 'rgba(109, 40, 217, 1)',
495
+ borderWidth: 2,
496
+ pointRadius: 0,
497
+ tension: 0.4
498
+ }]
499
+ },
500
+ options: {
501
+ responsive: true,
502
+ maintainAspectRatio: false,
503
+ plugins: {
504
+ legend: {
505
+ display: false
506
+ },
507
+ tooltip: {
508
+ mode: 'index',
509
+ intersect: false,
510
+ backgroundColor: isDark ? '#1e293b' : '#ffffff',
511
+ titleColor: isDark ? '#ffffff' : '#000000',
512
+ bodyColor: isDark ? '#e2e8f0' : '#4b5563',
513
+ borderColor: isDark ? '#334155' : '#e5e7eb',
514
+ borderWidth: 1,
515
+ padding: 12,
516
+ callbacks: {
517
+ label: function(context) {
518
+ return `$${context.parsed.y.toLocaleString()}`;
519
+ }
520
+ }
521
+ }
522
+ },
523
+ scales: {
524
+ x: {
525
+ grid: {
526
+ display: false,
527
+ color: isDark ? 'rgba(255, 255, 255, 0.1)' : 'rgba(0, 0, 0, 0.1)'
528
+ },
529
+ ticks: {
530
+ color: isDark ? '#94a3b8' : '#64748b'
531
+ }
532
+ },
533
+ y: {
534
+ grid: {
535
+ color: isDark ? 'rgba(255, 255, 255, 0.1)' : 'rgba(0, 0, 0, 0.1)'
536
+ },
537
+ ticks: {
538
+ color: isDark ? '#94a3b8' : '#64748b',
539
+ callback: function(value) {
540
+ return '$' + value.toLocaleString();
541
+ }
542
+ }
543
+ }
544
+ }
545
+ }
546
+ });
547
+ }
548
+ } catch (err) {
549
+ console.error("Chart Fetch Error:", err);
550
+ }
551
+ }
552
+
553
+ function updateChart(days) {
554
+ drawChart(days);
555
+ }
556
+
557
+ // Initialize
558
+ document.addEventListener('DOMContentLoaded', () => {
559
+ getCryptoPrices();
560
+ drawChart();
561
+
562
+ // Search functionality
563
+ const searchInput = document.getElementById('crypto-search');
564
+ if (searchInput) {
565
+ searchInput.addEventListener('input', () => {
566
+ getCryptoPrices();
567
+ });
568
+ }
569
+ });
570
+
571
+ // Update prices every minute
572
+ setInterval(getCryptoPrices, 60000);
573
+ </script>
574
+
575
+ <style>
576
+ /* Custom scrollbar */
577
+ ::-webkit-scrollbar {
578
+ width: 8px;
579
+ height: 8px;
580
+ }
581
+
582
+ ::-webkit-scrollbar-track {
583
+ background: #1e293b;
584
+ }
585
+
586
+ ::-webkit-scrollbar-thumb {
587
+ background: #6d28d9;
588
+ border-radius: 4px;
589
+ }
590
+
591
+ ::-webkit-scrollbar-thumb:hover {
592
+ background: #5b21b6;
593
+ }
594
+
595
+ /* Smooth scrolling */
596
+ html {
597
+ scroll-behavior: smooth;
598
+ }
599
+
600
+ /* Animation for crypto cards */
601
+ @keyframes fade-in {
602
+ from { opacity: 0; transform: translateY(10px); }
603
+ to { opacity: 1; transform: translateY(0); }
604
+ }
605
+
606
+ .animate-fade-in {
607
+ animation: fade-in 0.5s ease-in-out;
608
+ }
609
+
610
+ /* Gradient text */
611
+ .gradient-text {
612
+ background: linear-gradient(90deg, #6d28d9, #9333ea);
613
+ -webkit-background-clip: text;
614
+ background-clip: text;
615
+ color: transparent;
616
+ }
617
+ </style>
618
+ </body>
619
+ </html>