Hadiil commited on
Commit
5ed246b
·
verified ·
1 Parent(s): 1758876

Update static/styles.css

Browse files
Files changed (1) hide show
  1. static/styles.css +222 -171
static/styles.css CHANGED
@@ -1,320 +1,371 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap');
2
 
3
  * {
4
  margin: 0;
5
  padding: 0;
6
  box-sizing: border-box;
7
- font-family: 'Poppins', sans-serif;
8
  }
9
 
10
  :root {
11
- --cosmic-dark: #1C2526;
12
- --star-white: #F8FAFC;
13
- --glow-teal: #A3E4D7;
14
- --spark-pink: #F7C8E0;
15
- --mist-gray: #CBD5E1;
16
- --shadow-glow: rgba(163, 228, 215, 0.3);
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
 
19
  body {
20
- background: var(--cosmic-dark);
21
- color: var(--star-white);
22
  min-height: 100vh;
23
  display: flex;
24
- overflow-y: auto;
25
  position: relative;
26
  }
27
 
28
- /* Cosmic Canvas */
29
- .cosmic-canvas {
30
  position: fixed;
31
  top: 0;
32
  left: 0;
33
  width: 100%;
34
  height: 100%;
35
  z-index: -1;
36
- background: linear-gradient(180deg, #1C2526 0%, #354B5E 100%);
37
  }
38
 
39
- #stars {
 
40
  width: 100%;
41
  height: 100%;
 
 
42
  }
43
 
44
- .glow-overlay {
45
- position: absolute;
46
- top: 0;
47
- left: 0;
48
- width: 100%;
49
- height: 100%;
50
- background: radial-gradient(circle at center, rgba(163, 228, 215, 0.1) 0%, transparent 70%);
51
- pointer-events: none;
52
  }
53
 
54
- /* Starry Nav */
55
- .starry-nav {
 
 
 
56
  position: fixed;
57
- top: 0;
58
  left: 0;
59
- width: 60px;
60
- height: 100%;
61
- background: rgba(28, 37, 38, 0.8);
62
  display: flex;
63
  flex-direction: column;
64
  align-items: center;
65
- padding: 1.5rem 0;
66
  transition: width 0.3s ease;
67
- box-shadow: 2px 0 10px var(--shadow-glow);
68
- backdrop-filter: blur(5px);
69
  }
70
 
71
- .starry-nav:hover { width: 200px; }
72
 
73
- .nav-crest {
74
  display: flex;
75
  align-items: center;
76
  gap: 0.5rem;
77
- color: var(--glow-teal);
 
 
78
  font-size: 1.2rem;
79
- font-weight: 600;
80
- margin-bottom: 2rem;
81
  }
82
 
83
- .nav-crest i {
84
- font-size: 1.5rem;
85
- color: var(--spark-pink);
86
- animation: twinkle 2s infinite ease-in-out;
87
- }
88
 
89
- @keyframes twinkle {
90
- 0%, 100% { opacity: 0.6; }
91
- 50% { opacity: 1; }
92
- }
93
-
94
- .nav-crest span { display: none; }
95
-
96
- .starry-nav:hover .nav-crest span { display: inline; }
97
 
98
- .nav-stars {
99
- display: flex;
100
- flex-direction: column;
101
- gap: 1.5rem;
102
- }
103
 
104
- .star-link {
105
- color: var(--mist-gray);
 
 
106
  text-decoration: none;
107
- font-size: 1.5rem;
108
- padding: 0.5rem;
 
109
  transition: all 0.3s ease;
110
  }
111
 
112
- .star-link:hover {
113
- color: var(--glow-teal);
114
- transform: scale(1.1);
115
- text-shadow: 0 0 5px var(--shadow-glow);
116
  }
117
 
118
- /* Vion Galaxy */
119
- .vion-galaxy {
 
 
 
 
 
 
120
  flex: 1;
121
- margin-left: 60px;
122
  padding: 2rem;
123
- display: flex;
124
- flex-direction: column;
125
- gap: 2rem;
126
  }
127
 
128
- .vion-portal {
129
  text-align: center;
 
130
  }
131
 
132
- .vion-portal h1 {
 
133
  font-size: 3rem;
134
- font-weight: 600;
135
- color: var(--glow-teal);
136
- text-shadow: 0 0 15px var(--shadow-glow);
137
  }
138
 
139
- .vion-portal p {
140
  font-size: 1.1rem;
141
- color: var(--mist-gray);
142
- margin-top: 0.5rem;
143
- opacity: 0.9;
144
  transition: opacity 0.3s ease;
145
  }
146
 
147
- .vion-portal p.hidden { opacity: 0; height: 0; margin: 0; }
148
 
149
- /* Dialogue */
150
- .vion-dialogue {
151
- padding: 1rem 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  }
153
 
154
  .chat-message {
155
- padding: 1.2rem;
156
  margin-bottom: 1rem;
157
- border-radius: 20px;
158
- background: rgba(255, 255, 255, 0.05);
159
- color: var(--star-white);
160
- max-width: 85%;
161
- box-shadow: 0 3px 8px var(--shadow-glow);
162
  transition: transform 0.2s ease;
163
  }
164
 
165
  .chat-message.user {
166
- background: linear-gradient(135deg, var(--glow-teal), var(--spark-pink));
167
- color: var(--cosmic-dark);
168
- margin-left: auto;
169
- border-radius: 20px 20px 0 20px;
170
  }
171
 
172
  .chat-message.bot {
173
- margin-right: auto;
174
- border-radius: 20px 20px 20px 0;
175
  }
176
 
177
- .chat-message:hover { transform: translateY(-3px); }
178
 
179
- /* Orbit Input */
180
- .vion-orbit {
181
- position: sticky;
182
- bottom: 2rem;
183
- width: 100%;
184
- max-width: 800px;
185
- margin: 0 auto;
 
 
 
186
  }
187
 
188
- .orbit-ring {
 
 
189
  display: flex;
190
  align-items: center;
191
- background: rgba(255, 255, 255, 0.1);
192
- border-radius: 30px;
193
  padding: 0.5rem;
194
- box-shadow: 0 3px 15px var(--shadow-glow);
195
- backdrop-filter: blur(8px);
196
  }
197
 
198
- .orbit-core {
199
  flex: 1;
200
  border: none;
201
  background: transparent;
202
- color: var(--star-white);
203
- font-size: 1.1rem;
204
- padding: 0.8rem 1.5rem;
205
  outline: none;
206
  }
207
 
208
- .orbit-core::placeholder {
209
- color: var(--mist-gray);
210
- font-style: italic;
211
- }
212
 
213
- .orbit-moons {
214
  display: flex;
215
  align-items: center;
216
- gap: 0.8rem;
217
- padding-right: 0.8rem;
218
  }
219
 
220
- .moon-btn {
221
  background: none;
222
  border: none;
223
- color: var(--glow-teal);
224
- font-size: 1.6rem;
225
  cursor: pointer;
226
- transition: all 0.3s ease;
 
227
  }
228
 
229
- .moon-btn:hover {
230
- color: var(--spark-pink);
231
- transform: scale(1.15);
232
- text-shadow: 0 0 5px var(--shadow-glow);
233
  }
234
 
235
- .star-pulse {
236
- display: none;
237
  width: 20px;
238
  height: 20px;
239
- position: relative;
240
- }
241
-
242
- .star-pulse.active { display: inline-block; }
243
-
244
- .star-pulse:before {
245
- content: '';
246
- position: absolute;
247
- width: 100%;
248
- height: 100%;
249
  border-radius: 50%;
250
- border: 2px solid var(--glow-teal);
251
- border-top-color: var(--spark-pink);
252
- animation: pulse 1.2s infinite linear;
253
  }
254
 
255
- @keyframes pulse {
256
- 0% { transform: rotate(0deg); opacity: 0.8; }
257
- 100% { transform: rotate(360deg); opacity: 1; }
 
 
258
  }
259
 
260
- .vion-echo {
261
  text-align: center;
262
- font-size: 0.9rem;
263
- color: var(--mist-gray);
264
- margin-top: 0.8rem;
265
- opacity: 0.8;
266
  }
267
 
268
  /* File Preview */
269
  .file-preview {
270
  display: flex;
271
  align-items: center;
272
- gap: 0.8rem;
273
- padding: 0.8rem;
274
- background: rgba(255, 255, 255, 0.05);
275
- border-radius: 15px;
276
- margin-bottom: 1rem;
277
- box-shadow: 0 2px 5px var(--shadow-glow);
278
  }
279
 
280
- .file-preview-icon { font-size: 1.4rem; color: var(--glow-teal); }
281
 
282
- .file-preview-name { font-size: 1rem; color: var(--star-white); }
 
 
 
 
283
 
284
  .file-preview-remove {
285
  background: none;
286
  border: none;
287
- color: var(--spark-pink);
288
- font-size: 1.2rem;
289
  cursor: pointer;
 
290
  transition: color 0.3s ease;
291
  }
292
 
293
- .file-preview-remove:hover { color: #FF9999; }
294
 
295
  /* Image and VQA */
296
  .image-result, .vqa-response {
297
- padding: 1.2rem;
298
- background: rgba(255, 255, 255, 0.05);
299
- border-radius: 15px;
300
- margin-bottom: 1rem;
301
- box-shadow: 0 3px 8px var(--shadow-glow);
302
  }
303
 
304
  .uploaded-image {
305
  max-width: 100%;
306
- max-height: 250px;
307
- border-radius: 10px;
308
- margin-bottom: 0.8rem;
309
  }
310
 
311
- .image-caption { color: var(--mist-gray); font-style: italic; }
 
 
 
312
 
313
- .vqa-response { display: flex; flex-direction: column; gap: 1rem; }
 
 
 
 
314
 
315
  .vqa-text p { margin: 0.5rem 0; }
316
 
317
- .vqa-text strong { color: var(--glow-teal); }
318
 
319
  @media (min-width: 768px) {
320
  .vqa-response { flex-direction: row; align-items: flex-start; }
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Roboto:wght@300;400;700&display=swap');
2
 
3
  * {
4
  margin: 0;
5
  padding: 0;
6
  box-sizing: border-box;
7
+ font-family: 'Roboto', sans-serif;
8
  }
9
 
10
  :root {
11
+ --bg-color: #0A0A14;
12
+ --panel-color: #1A1A2E;
13
+ --text-color: #E6E6FA;
14
+ --accent-color: #00D4FF;
15
+ --secondary-color: #4B5EAA;
16
+ --hover-color: #16213E;
17
+ --shadow-color: rgba(0, 212, 255, 0.2);
18
+ }
19
+
20
+ .light-mode {
21
+ --bg-color: #F0F4F8;
22
+ --panel-color: #FFFFFF;
23
+ --text-color: #1A1A2E;
24
+ --accent-color: #007BFF;
25
+ --secondary-color: #6B7280;
26
+ --hover-color: #E5E7EB;
27
+ --shadow-color: rgba(0, 123, 255, 0.1);
28
  }
29
 
30
  body {
31
+ background: var(--bg-color);
32
+ color: var(--text-color);
33
  min-height: 100vh;
34
  display: flex;
35
+ overflow: hidden;
36
  position: relative;
37
  }
38
 
39
+ /* Cosmic Background */
40
+ .cosmic-bg {
41
  position: fixed;
42
  top: 0;
43
  left: 0;
44
  width: 100%;
45
  height: 100%;
46
  z-index: -1;
47
+ pointer-events: none;
48
  }
49
 
50
+ .stars-layer {
51
+ position: absolute;
52
  width: 100%;
53
  height: 100%;
54
+ background: url('https://www.transparenttextures.com/patterns/stardust.png');
55
+ opacity: 0.8;
56
  }
57
 
58
+ .layer-1 { animation: drift 120s linear infinite; }
59
+ .layer-2 { animation: drift 180s linear infinite; opacity: 0.5; }
60
+ .layer-3 { animation: drift 240s linear infinite; opacity: 0.3; }
61
+
62
+ @keyframes drift {
63
+ from { transform: translate(0, 0); }
64
+ to { transform: translate(-2000px, -2000px); }
 
65
  }
66
 
67
+ /* Sidebar */
68
+ .sidebar {
69
+ width: 70px;
70
+ height: 100vh;
71
+ background: var(--panel-color);
72
  position: fixed;
 
73
  left: 0;
74
+ top: 0;
 
 
75
  display: flex;
76
  flex-direction: column;
77
  align-items: center;
78
+ padding: 1rem 0;
79
  transition: width 0.3s ease;
80
+ box-shadow: 2px 0 10px var(--shadow-color);
81
+ z-index: 10;
82
  }
83
 
84
+ .sidebar:hover { width: 220px; }
85
 
86
+ .sidebar__logo {
87
  display: flex;
88
  align-items: center;
89
  gap: 0.5rem;
90
+ padding: 1rem;
91
+ color: var(--accent-color);
92
+ font-family: 'Orbitron', sans-serif;
93
  font-size: 1.2rem;
94
+ font-weight: 700;
 
95
  }
96
 
97
+ .sidebar__logo i { font-size: 1.5rem; }
 
 
 
 
98
 
99
+ .sidebar__logo span { display: none; }
 
 
 
 
 
 
 
100
 
101
+ .sidebar:hover .sidebar__logo span { display: inline; }
 
 
 
 
102
 
103
+ .sidebar__item {
104
+ width: 100%;
105
+ padding: 1rem;
106
+ color: var(--text-color);
107
  text-decoration: none;
108
+ display: flex;
109
+ align-items: center;
110
+ gap: 1rem;
111
  transition: all 0.3s ease;
112
  }
113
 
114
+ .sidebar__item:hover {
115
+ background: var(--hover-color);
116
+ color: var(--accent-color);
117
+ transform: translateX(5px);
118
  }
119
 
120
+ .sidebar__item i { font-size: 1.5rem; }
121
+
122
+ .sidebar__item span { display: none; font-size: 1rem; }
123
+
124
+ .sidebar:hover .sidebar__item span { display: inline; }
125
+
126
+ /* Main Content */
127
+ .main-content {
128
  flex: 1;
129
+ margin-left: 70px;
130
  padding: 2rem;
131
+ overflow-y: auto;
132
+ height: 100vh;
 
133
  }
134
 
135
+ .header {
136
  text-align: center;
137
+ margin-bottom: 2rem;
138
  }
139
 
140
+ .header h1 {
141
+ font-family: 'Orbitron', sans-serif;
142
  font-size: 3rem;
143
+ color: var(--accent-color);
144
+ text-shadow: 0 0 15px var(--shadow-color);
 
145
  }
146
 
147
+ .header p {
148
  font-size: 1.1rem;
149
+ color: var(--secondary-color);
150
+ max-width: 600px;
151
+ margin: 0 auto;
152
  transition: opacity 0.3s ease;
153
  }
154
 
155
+ .header p.hidden { opacity: 0; height: 0; margin: 0; }
156
 
157
+ /* Suggestions */
158
+ .suggestions {
159
+ display: grid;
160
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
161
+ gap: 1rem;
162
+ max-width: 1000px;
163
+ margin: 0 auto 2rem;
164
+ transition: opacity 0.3s ease;
165
+ }
166
+
167
+ .suggestions.hidden { opacity: 0; height: 0; margin: 0; }
168
+
169
+ .suggestion-card {
170
+ background: var(--panel-color);
171
+ padding: 1rem;
172
+ border-radius: 8px;
173
+ display: flex;
174
+ flex-direction: column;
175
+ align-items: center;
176
+ text-align: center;
177
+ cursor: pointer;
178
+ transition: all 0.3s ease;
179
+ box-shadow: 0 4px 10px var(--shadow-color);
180
+ }
181
+
182
+ .suggestion-card:hover {
183
+ transform: translateY(-5px);
184
+ box-shadow: 0 6px 15px var(--shadow-color);
185
+ background: var(--hover-color);
186
+ }
187
+
188
+ .suggestion-card i {
189
+ font-size: 1.5rem;
190
+ color: var(--accent-color);
191
+ margin-bottom: 0.5rem;
192
+ }
193
+
194
+ .suggestion-card span {
195
+ font-size: 0.9rem;
196
+ color: var(--text-color);
197
+ }
198
+
199
+ /* Chat Container */
200
+ .chat-container {
201
+ max-width: 1000px;
202
+ margin: 0 auto;
203
+ padding-bottom: 100px;
204
  }
205
 
206
  .chat-message {
207
+ padding: 1rem;
208
  margin-bottom: 1rem;
209
+ border-radius: 8px;
210
+ background: var(--panel-color);
211
+ color: var(--text-color);
212
+ box-shadow: 0 2px 5px var(--shadow-color);
 
213
  transition: transform 0.2s ease;
214
  }
215
 
216
  .chat-message.user {
217
+ background: linear-gradient(135deg, var(--accent-color), var(--secondary-color));
218
+ color: #fff;
219
+ margin-left: 20%;
 
220
  }
221
 
222
  .chat-message.bot {
223
+ background: var(--panel-color);
224
+ margin-right: 20%;
225
  }
226
 
227
+ .chat-message:hover { transform: scale(1.02); }
228
 
229
+ /* Input Panel */
230
+ .input-panel {
231
+ position: fixed;
232
+ bottom: 0;
233
+ left: 70px;
234
+ width: calc(100% - 70px);
235
+ background: var(--panel-color);
236
+ padding: 1rem;
237
+ box-shadow: 0 -2px 10px var(--shadow-color);
238
+ z-index: 5;
239
  }
240
 
241
+ .input-wrapper {
242
+ max-width: 1000px;
243
+ margin: 0 auto;
244
  display: flex;
245
  align-items: center;
246
+ background: var(--bg-color);
247
+ border-radius: 25px;
248
  padding: 0.5rem;
249
+ box-shadow: inset 0 2px 5px var(--shadow-color);
 
250
  }
251
 
252
+ .input-field {
253
  flex: 1;
254
  border: none;
255
  background: transparent;
256
+ color: var(--text-color);
257
+ font-size: 1rem;
258
+ padding: 0.5rem 1rem;
259
  outline: none;
260
  }
261
 
262
+ .input-field::placeholder { color: var(--secondary-color); }
 
 
 
263
 
264
+ .action-buttons {
265
  display: flex;
266
  align-items: center;
267
+ gap: 0.5rem;
 
268
  }
269
 
270
+ .action-btn {
271
  background: none;
272
  border: none;
273
+ color: var(--text-color);
274
+ font-size: 1.2rem;
275
  cursor: pointer;
276
+ padding: 0.5rem;
277
+ transition: color 0.3s ease, transform 0.2s ease;
278
  }
279
 
280
+ .action-btn:hover {
281
+ color: var(--accent-color);
282
+ transform: scale(1.1);
 
283
  }
284
 
285
+ .loader {
 
286
  width: 20px;
287
  height: 20px;
288
+ border: 3px solid var(--accent-color);
289
+ border-top: 3px solid transparent;
 
 
 
 
 
 
 
 
290
  border-radius: 50%;
291
+ animation: spin 1s linear infinite;
292
+ display: none;
 
293
  }
294
 
295
+ .loader.active { display: inline-block; }
296
+
297
+ @keyframes spin {
298
+ 0% { transform: rotate(0deg); }
299
+ 100% { transform: rotate(360deg); }
300
  }
301
 
302
+ .disclaimer {
303
  text-align: center;
304
+ font-size: 0.8rem;
305
+ color: var(--secondary-color);
306
+ margin-top: 0.5rem;
 
307
  }
308
 
309
  /* File Preview */
310
  .file-preview {
311
  display: flex;
312
  align-items: center;
313
+ gap: 0.5rem;
314
+ padding: 0.5rem;
315
+ background: var(--hover-color);
316
+ border-radius: 8px;
317
+ margin-bottom: 0.5rem;
 
318
  }
319
 
320
+ .file-preview-icon { font-size: 1.2rem; color: var(--accent-color); }
321
 
322
+ .file-preview-name {
323
+ flex: 1;
324
+ font-size: 0.9rem;
325
+ color: var(--text-color);
326
+ }
327
 
328
  .file-preview-remove {
329
  background: none;
330
  border: none;
331
+ color: var(--text-color);
 
332
  cursor: pointer;
333
+ font-size: 1rem;
334
  transition: color 0.3s ease;
335
  }
336
 
337
+ .file-preview-remove:hover { color: #FF4D4D; }
338
 
339
  /* Image and VQA */
340
  .image-result, .vqa-response {
341
+ margin: 1rem 0;
342
+ padding: 1rem;
343
+ background: var(--panel-color);
344
+ border-radius: 8px;
345
+ box-shadow: 0 2px 5px var(--shadow-color);
346
  }
347
 
348
  .uploaded-image {
349
  max-width: 100%;
350
+ max-height: 300px;
351
+ border-radius: 8px;
352
+ margin-bottom: 0.5rem;
353
  }
354
 
355
+ .image-caption {
356
+ font-style: italic;
357
+ color: var(--secondary-color);
358
+ }
359
 
360
+ .vqa-response {
361
+ display: flex;
362
+ flex-direction: column;
363
+ gap: 1rem;
364
+ }
365
 
366
  .vqa-text p { margin: 0.5rem 0; }
367
 
368
+ .vqa-text strong { color: var(--accent-color); }
369
 
370
  @media (min-width: 768px) {
371
  .vqa-response { flex-direction: row; align-items: flex-start; }