CosmickVisions commited on
Commit
e5b06bc
·
verified ·
1 Parent(s): e10cbb7

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +391 -22
index.html CHANGED
@@ -1,29 +1,398 @@
1
  <!DOCTYPE html>
2
  <html lang="en">
3
-
4
  <head>
5
- <meta charset="UTF-8" />
6
- <link rel="stylesheet" href="style.css" />
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
- <title>Transformers.js - Object Detection</title>
10
- </head>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  <body>
13
- <h1>Object Detection w/ 🤗 Transformers.js</h1>
14
- <label id="container" for="upload">
15
- <svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
16
- <path fill="#000"
17
- d="M3.5 24.3a3 3 0 0 1-1.9-.8c-.5-.5-.8-1.2-.8-1.9V2.9c0-.7.3-1.3.8-1.9.6-.5 1.2-.7 2-.7h18.6c.7 0 1.3.2 1.9.7.5.6.7 1.2.7 2v18.6c0 .7-.2 1.4-.7 1.9a3 3 0 0 1-2 .8H3.6Zm0-2.7h18.7V2.9H3.5v18.7Zm2.7-2.7h13.3c.3 0 .5 0 .6-.3v-.7l-3.7-5a.6.6 0 0 0-.6-.2c-.2 0-.4 0-.5.3l-3.5 4.6-2.4-3.3a.6.6 0 0 0-.6-.3c-.2 0-.4.1-.5.3l-2.7 3.6c-.1.2-.2.4 0 .7.1.2.3.3.6.3Z">
18
- </path>
19
- </svg>
20
- Click to upload image
21
- <label id="example">(or try example)</label>
22
- </label>
23
- <label id="status">Loading model...</label>
24
- <input id="upload" type="file" accept="image/*" />
25
-
26
- <script src="index.js" type="module"></script>
27
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
- </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>Uni-Vision AI Suite</title>
7
+ <style>
8
+ :root {
9
+ --primary-gradient: linear-gradient(120deg, #2b4162 0%, #12100e 100%);
10
+ --accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
11
+ --glass-bg: rgba(255, 255, 255, 0.05);
12
+ --glass-border: rgba(255, 255, 255, 0.1);
13
+ --shadow-color: rgba(0, 0, 0, 0.2);
14
+ --text-primary: #ffffff;
15
+ --text-secondary: rgba(255, 255, 255, 0.8);
16
+ --transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
17
+ }
18
 
19
+ * {
20
+ margin: 0;
21
+ padding: 0;
22
+ box-sizing: border-box;
23
+ font-family: 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
24
+ }
25
+
26
+ body {
27
+ background: var(--primary-gradient);
28
+ min-height: 100vh;
29
+ padding: 2rem;
30
+ color: var(--text-primary);
31
+ overflow-x: hidden;
32
+ }
33
+
34
+ .container {
35
+ max-width: 1400px;
36
+ margin: 0 auto;
37
+ position: relative;
38
+ }
39
+
40
+ .header {
41
+ text-align: center;
42
+ margin-bottom: 3rem;
43
+ padding: 3rem 2rem;
44
+ background: var(--glass-bg);
45
+ border: 1px solid var(--glass-border);
46
+ border-radius: 24px;
47
+ backdrop-filter: blur(20px);
48
+ box-shadow: 0 20px 40px var(--shadow-color);
49
+ transform: translateZ(0);
50
+ }
51
+
52
+ .header h1 {
53
+ font-size: 3.5rem;
54
+ font-weight: 700;
55
+ margin-bottom: 1.5rem;
56
+ background: var(--accent-gradient);
57
+ -webkit-background-clip: text;
58
+ background-clip: text;
59
+ -webkit-text-fill-color: transparent;
60
+ letter-spacing: -0.02em;
61
+ }
62
+
63
+ .header p {
64
+ font-size: 1.2rem;
65
+ color: var(--text-secondary);
66
+ max-width: 600px;
67
+ margin: 0 auto;
68
+ line-height: 1.6;
69
+ }
70
+
71
+ .tabs {
72
+ display: flex;
73
+ gap: 1rem;
74
+ margin-bottom: 2rem;
75
+ justify-content: center;
76
+ perspective: 1000px;
77
+ }
78
+
79
+ .tab {
80
+ padding: 1rem 2.5rem;
81
+ background: var(--glass-bg);
82
+ border: 1px solid var(--glass-border);
83
+ border-radius: 16px;
84
+ color: var(--text-primary);
85
+ cursor: pointer;
86
+ transition: var(--transition);
87
+ font-size: 1.1rem;
88
+ font-weight: 500;
89
+ backdrop-filter: blur(10px);
90
+ position: relative;
91
+ overflow: hidden;
92
+ }
93
+
94
+ .tab::before {
95
+ content: '';
96
+ position: absolute;
97
+ top: 0;
98
+ left: 0;
99
+ width: 100%;
100
+ height: 100%;
101
+ background: var(--accent-gradient);
102
+ opacity: 0;
103
+ transition: var(--transition);
104
+ z-index: -1;
105
+ }
106
+
107
+ .tab:hover {
108
+ transform: translateY(-5px);
109
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
110
+ }
111
+
112
+ .tab:hover::before {
113
+ opacity: 0.1;
114
+ }
115
+
116
+ .tab.active {
117
+ background: var(--accent-gradient);
118
+ box-shadow: 0 15px 30px rgba(102, 126, 234, 0.25);
119
+ transform: translateY(-5px);
120
+ }
121
+
122
+ .iframe-container {
123
+ background: var(--glass-bg);
124
+ padding: 1.5rem;
125
+ border-radius: 24px;
126
+ border: 1px solid var(--glass-border);
127
+ box-shadow: 0 30px 60px var(--shadow-color);
128
+ backdrop-filter: blur(20px);
129
+ position: relative;
130
+ transform-style: preserve-3d;
131
+ transition: var(--transition);
132
+ }
133
+
134
+ .iframe-container::before {
135
+ content: '';
136
+ position: absolute;
137
+ top: -1px;
138
+ left: -1px;
139
+ right: -1px;
140
+ bottom: -1px;
141
+ background: var(--accent-gradient);
142
+ border-radius: 24px;
143
+ z-index: -1;
144
+ opacity: 0.1;
145
+ transition: var(--transition);
146
+ }
147
+
148
+ iframe {
149
+ width: 100%;
150
+ height: 700px;
151
+ border-radius: 16px;
152
+ transition: var(--transition);
153
+ opacity: 0;
154
+ transform: translateY(20px) scale(0.98);
155
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
156
+ }
157
+
158
+ iframe.active {
159
+ opacity: 1;
160
+ transform: translateY(0) scale(1);
161
+ }
162
+
163
+ .loading {
164
+ position: absolute;
165
+ top: 50%;
166
+ left: 50%;
167
+ transform: translate(-50%, -50%);
168
+ color: var(--text-primary);
169
+ font-size: 1.2rem;
170
+ display: none;
171
+ z-index: 10;
172
+ }
173
+
174
+ .loading.active {
175
+ display: flex;
176
+ align-items: center;
177
+ gap: 1rem;
178
+ }
179
+
180
+ .loading::after {
181
+ content: '';
182
+ width: 20px;
183
+ height: 20px;
184
+ border: 3px solid var(--text-secondary);
185
+ border-top-color: transparent;
186
+ border-radius: 50%;
187
+ animation: spin 1s linear infinite;
188
+ }
189
+
190
+ @keyframes spin {
191
+ to { transform: rotate(360deg); }
192
+ }
193
+
194
+ .footer {
195
+ text-align: center;
196
+ color: var(--text-secondary);
197
+ margin-top: 3rem;
198
+ padding: 1.5rem;
199
+ font-size: 1rem;
200
+ opacity: 0.8;
201
+ background: var(--glass-bg);
202
+ border-radius: 16px;
203
+ backdrop-filter: blur(10px);
204
+ }
205
+
206
+ /* Modern Grid Layout for larger screens */
207
+ @media (min-width: 1200px) {
208
+ .container {
209
+ display: grid;
210
+ grid-template-columns: 1fr;
211
+ gap: 2rem;
212
+ }
213
+
214
+ .tabs {
215
+ position: sticky;
216
+ top: 2rem;
217
+ z-index: 100;
218
+ }
219
+ }
220
 
221
+ /* Responsive Design */
222
+ @media (max-width: 768px) {
223
+ body {
224
+ padding: 1rem;
225
+ }
226
+
227
+ .header h1 {
228
+ font-size: 2.5rem;
229
+ }
230
+
231
+ .tabs {
232
+ flex-wrap: wrap;
233
+ gap: 0.5rem;
234
+ }
235
+
236
+ .tab {
237
+ flex: 1 1 calc(50% - 0.5rem);
238
+ padding: 0.8rem;
239
+ font-size: 0.9rem;
240
+ }
241
+
242
+ iframe {
243
+ height: 500px;
244
+ }
245
+ }
246
+
247
+ /* Modern Scrollbar */
248
+ ::-webkit-scrollbar {
249
+ width: 8px;
250
+ height: 8px;
251
+ }
252
+
253
+ ::-webkit-scrollbar-track {
254
+ background: rgba(255, 255, 255, 0.1);
255
+ }
256
+
257
+ ::-webkit-scrollbar-thumb {
258
+ background: var(--accent-gradient);
259
+ border-radius: 4px;
260
+ }
261
+
262
+ /* Animation Keyframes */
263
+ @keyframes fadeIn {
264
+ from { opacity: 0; transform: translateY(20px); }
265
+ to { opacity: 1; transform: translateY(0); }
266
+ }
267
+
268
+ @keyframes pulse {
269
+ 0% { transform: scale(1); }
270
+ 50% { transform: scale(1.05); }
271
+ 100% { transform: scale(1); }
272
+ }
273
+ </style>
274
+ </head>
275
  <body>
276
+ <div class="container">
277
+ <header class="header">
278
+ <h1>Domain-Vision AI Suite</h1>
279
+ <p>Experience the future of AI-powered analysis across legal, technical, academic, and financial domains</p>
280
+ </header>
281
+
282
+ <div class="tabs">
283
+ <button class="tab active" data-tab="legal">
284
+ Legal Vision
285
+ </button>
286
+ <button class="tab" data-tab="tech">
287
+ Tech Vision
288
+ </button>
289
+ <button class="tab" data-tab="scholar">
290
+ Scholar Vision
291
+ </button>
292
+ <button class="tab" data-tab="fin">
293
+ Fin Vision
294
+ </button>
295
+ </div>
296
+
297
+ <div class="iframe-container">
298
+ <div class="loading">Loading Vision Interface...</div>
299
+ <iframe id="vision-frame"
300
+ src="https://cosmickvisions-legal-visions.hf.space"
301
+ frameborder="0"
302
+ class="active"
303
+ allow="accelerometer; camera; microphone">
304
+ </iframe>
305
+ </div>
306
 
307
+ <footer class="footer">
308
+ <p>© 2024 Calvin Allen Crawford | Powered by Advanced AI Technology</p>
309
+ </footer>
310
+ </div>
311
+
312
+ <script>
313
+ document.addEventListener('DOMContentLoaded', () => {
314
+ const tabs = document.querySelectorAll('.tab');
315
+ const iframe = document.getElementById('vision-frame');
316
+ const loading = document.querySelector('.loading');
317
+
318
+ const urls = {
319
+ legal: 'https://cosmickvisions-legal-visions.hf.space',
320
+ tech: 'https://cosmickvisions-tech-vision.hf.space',
321
+ scholar: 'https://cosmickvisions-scholar-vision.hf.space',
322
+ fin: 'https://cosmickvisions-fin-vision.hf.space'
323
+ };
324
+
325
+ // Add hover effect to iframe container
326
+ const iframeContainer = document.querySelector('.iframe-container');
327
+ iframeContainer.addEventListener('mousemove', (e) => {
328
+ const { left, top, width, height } = iframeContainer.getBoundingClientRect();
329
+ const x = (e.clientX - left) / width;
330
+ const y = (e.clientY - top) / height;
331
+
332
+ iframeContainer.style.transform = `
333
+ perspective(1000px)
334
+ rotateX(${(y - 0.5) * 2}deg)
335
+ rotateY(${(x - 0.5) * 2}deg)
336
+ `;
337
+ });
338
+
339
+ iframeContainer.addEventListener('mouseleave', () => {
340
+ iframeContainer.style.transform = 'perspective(1000px) rotateX(0) rotateY(0)';
341
+ });
342
+
343
+ function switchTab(tabName) {
344
+ // Update active tab with animation
345
+ tabs.forEach(tab => {
346
+ tab.classList.remove('active');
347
+ if(tab.dataset.tab === tabName) {
348
+ tab.classList.add('active');
349
+ tab.style.animation = 'pulse 0.4s ease';
350
+ setTimeout(() => tab.style.animation = '', 400);
351
+ }
352
+ });
353
+
354
+ // Show loading state
355
+ iframe.classList.remove('active');
356
+ loading.classList.add('active');
357
+
358
+ // Change iframe source
359
+ iframe.src = urls[tabName];
360
+
361
+ // Handle iframe load completion
362
+ iframe.onload = () => {
363
+ loading.classList.remove('active');
364
+ iframe.classList.add('active');
365
+ };
366
+ }
367
+
368
+ // Add click handlers to tabs
369
+ tabs.forEach(tab => {
370
+ tab.addEventListener('click', () => {
371
+ const tabName = tab.dataset.tab;
372
+ switchTab(tabName);
373
+ });
374
+ });
375
+
376
+ // Add keyboard navigation
377
+ document.addEventListener('keydown', (e) => {
378
+ if (e.altKey) {
379
+ switch(e.key) {
380
+ case '1': switchTab('legal'); break;
381
+ case '2': switchTab('tech'); break;
382
+ case '3': switchTab('scholar'); break;
383
+ case '4': switchTab('fin'); break;
384
+ }
385
+ }
386
+ });
387
+
388
+ // Handle iframe loading errors
389
+ iframe.onerror = () => {
390
+ loading.textContent = 'Error loading content. Please try again.';
391
+ };
392
+
393
+ // Add initial animation
394
+ document.querySelector('.header').style.animation = 'fadeIn 0.8s ease-out forwards';
395
+ });
396
+ </script>
397
+ </body>
398
+ </html>