Sa-m commited on
Commit
ae45c4f
·
verified ·
1 Parent(s): 3e1a723

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +612 -55
style.css CHANGED
@@ -1,71 +1,628 @@
 
 
 
 
 
 
 
1
  body {
2
- margin: 0;
3
- background: #f5f6fa;
4
- font-family: 'Segoe UI', sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  }
6
 
7
- /* HCI: Fitts’s Law – large interaction zone for camera gestures */
8
- #gesture-area {
9
- position: relative;
10
- width: 100vw;
11
- height: 100vh;
12
- overflow: hidden;
 
13
  }
14
 
15
- video, canvas {
16
- position: absolute;
17
- width: 100%;
18
- height: 100%;
19
- object-fit: cover;
 
 
20
  }
21
 
22
- /* HCI: Gestalt Law of Similarity – consistent email card design */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  .email-list {
24
- position: absolute;
25
- top: 5%;
26
- left: 5%;
27
- width: 90%;
28
- display: flex;
29
- flex-direction: column;
30
- gap: 12px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
- .email {
34
- background: white;
35
- border-radius: 16px;
36
- padding: 12px 16px;
37
- box-shadow: 0 2px 6px rgba(0,0,0,0.1);
38
- transition: transform 0.4s ease, opacity 0.4s ease;
 
 
39
  }
40
 
41
- .email.selected {
42
- border: 2px solid #4c8bf5;
43
- background: #eef4ff;
 
 
 
 
 
 
 
 
 
44
  }
45
 
46
- /* HCI: Feedback – visible action confirmation */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  .action-feedback {
48
- position: absolute;
49
- top: 45%;
50
- left: 50%;
51
- transform: translate(-50%, -50%);
52
- font-size: 2rem;
53
- font-weight: bold;
54
- color: #fff;
55
- background: rgba(0,0,0,0.6);
56
- padding: 20px 40px;
57
- border-radius: 20px;
58
- opacity: 0;
59
- transition: opacity 0.5s ease;
60
- }
61
-
62
- #debug {
63
- position: absolute;
64
- bottom: 10px;
65
- left: 10px;
66
- background: rgba(0,0,0,0.5);
67
- color: #fff;
68
- padding: 6px 10px;
69
- border-radius: 6px;
70
- font-size: 14px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ box-sizing: border-box;
5
+ font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
6
+ }
7
+
8
  body {
9
+ background-color: #f5f5f5;
10
+ color: #333;
11
+ overflow-x: hidden;
12
+ }
13
+
14
+ .app-container {
15
+ display: flex;
16
+ flex-direction: column;
17
+ height: 100vh;
18
+ max-width: 1600px;
19
+ margin: 0 auto;
20
+ background-color: white;
21
+ box-shadow: 0 0 20px rgba(0,0,0,0.1);
22
+ }
23
+
24
+ /* Header Styles */
25
+ .header {
26
+ display: flex;
27
+ justify-content: space-between;
28
+ align-items: center;
29
+ padding: 15px 25px;
30
+ background-color: #fff;
31
+ border-bottom: 1px solid #e0e0e0;
32
+ height: 60px;
33
+ z-index: 10;
34
+ }
35
+
36
+ .logo {
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 10px;
40
+ font-size: 20px;
41
+ font-weight: bold;
42
+ color: #ea4335;
43
+ }
44
+
45
+ .logo i {
46
+ font-size: 24px;
47
  }
48
 
49
+ .search-bar {
50
+ display: flex;
51
+ align-items: center;
52
+ background-color: #f1f3f4;
53
+ border-radius: 24px;
54
+ padding: 8px 16px;
55
+ width: 300px;
56
  }
57
 
58
+ .search-bar input {
59
+ border: none;
60
+ background: transparent;
61
+ width: 100%;
62
+ padding: 5px;
63
+ font-size: 14px;
64
+ outline: none;
65
  }
66
 
67
+ /* Debug Toggle Button */
68
+ .debug-toggle {
69
+ margin-left: 20px;
70
+ position: relative;
71
+ }
72
+
73
+ .debug-button {
74
+ background-color: #f1f3f4;
75
+ border: 1px solid #e0e0e0;
76
+ border-radius: 50%;
77
+ width: 30px;
78
+ height: 30px;
79
+ cursor: pointer;
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ transition: all 0.3s ease;
84
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
85
+ }
86
+
87
+ .debug-button:hover {
88
+ background-color: #e0e0e0;
89
+ transform: scale(1.05);
90
+ }
91
+
92
+ /* Main Content Layout */
93
+ .content {
94
+ display: flex;
95
+ flex: 1;
96
+ overflow: hidden;
97
+ }
98
+
99
+ /* Email List Styles */
100
  .email-list {
101
+ flex: 1;
102
+ overflow-y: auto;
103
+ border-right: 1px solid #e0e0e0;
104
+ padding: 10px 20px;
105
+ height: calc(100vh - 60px);
106
+ scrollbar-width: thin;
107
+ scrollbar-color: #c0c0c0 #f5f5f5;
108
+ }
109
+
110
+ .email-list::-webkit-scrollbar {
111
+ width: 8px;
112
+ }
113
+
114
+ .email-list::-webkit-scrollbar-track {
115
+ background: #f5f5f5;
116
+ }
117
+
118
+ .email-list::-webkit-scrollbar-thumb {
119
+ background-color: #c0c0c0;
120
+ border-radius: 4px;
121
+ }
122
+
123
+ .email-item {
124
+ padding: 12px 0;
125
+ border-bottom: 1px solid #f1f3f4;
126
+ cursor: pointer;
127
+ transition: all 0.3s ease;
128
+ display: flex;
129
+ justify-content: space-between;
130
+ align-items: center;
131
+ position: relative;
132
+ border-radius: 8px;
133
+ }
134
+
135
+ .email-item:hover {
136
+ background-color: #f8f9fa;
137
+ transform: translateX(3px);
138
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
139
+ }
140
+
141
+ .email-item.selected {
142
+ background-color: #e8f0fe;
143
+ border-left: 4px solid #4285f4;
144
+ box-shadow: 0 2px 8px rgba(0,0,0,0.05);
145
+ }
146
+
147
+ .email-header {
148
+ display: flex;
149
+ flex-direction: column;
150
+ margin-right: 10px;
151
+ min-width: 150px;
152
+ }
153
+
154
+ .email-sender {
155
+ font-weight: bold;
156
+ color: #202124;
157
+ margin-bottom: 2px;
158
+ font-size: 14px;
159
+ }
160
+
161
+ .email-time {
162
+ color: #5f6368;
163
+ font-size: 12px;
164
+ }
165
+
166
+ .email-subject {
167
+ font-weight: 500;
168
+ color: #202124;
169
+ margin-bottom: 4px;
170
+ font-size: 15px;
171
+ flex: 1;
172
+ white-space: nowrap;
173
+ overflow: hidden;
174
+ text-overflow: ellipsis;
175
+ max-width: 500px;
176
  }
177
 
178
+ .email-snippet {
179
+ color: #5f6368;
180
+ font-size: 13px;
181
+ white-space: nowrap;
182
+ overflow: hidden;
183
+ text-overflow: ellipsis;
184
+ flex: 2;
185
+ max-width: 400px;
186
  }
187
 
188
+ /* Webcam Overlay Styles */
189
+ .webcam-container {
190
+ position: fixed;
191
+ bottom: 20px;
192
+ right: 20px;
193
+ width: 320px;
194
+ height: 240px;
195
+ border-radius: 12px;
196
+ overflow: hidden;
197
+ box-shadow: 0 4px 12px rgba(0,0,0,0.2);
198
+ z-index: 100;
199
+ background-color: #000;
200
  }
201
 
202
+ #webcam {
203
+ width: 100%;
204
+ height: 100%;
205
+ object-fit: cover;
206
+ }
207
+
208
+ .gesture-guide {
209
+ position: fixed;
210
+ bottom: 20px;
211
+ left: 20px;
212
+ background-color: rgba(0,0,0,0.7);
213
+ color: white;
214
+ padding: 15px;
215
+ border-radius: 12px;
216
+ max-width: 300px;
217
+ z-index: 100;
218
+ backdrop-filter: blur(5px);
219
+ opacity: 0.9;
220
+ transition: opacity 0.3s;
221
+ }
222
+
223
+ .gesture-guide:hover {
224
+ opacity: 1;
225
+ }
226
+
227
+ .gesture-guide h3 {
228
+ margin-bottom: 10px;
229
+ color: #4285f4;
230
+ }
231
+
232
+ .gesture-item {
233
+ display: flex;
234
+ align-items: center;
235
+ margin-bottom: 8px;
236
+ }
237
+
238
+ .gesture-icon {
239
+ width: 30px;
240
+ height: 30px;
241
+ background-color: #4285f4;
242
+ border-radius: 50%;
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ margin-right: 10px;
247
+ color: white;
248
+ font-weight: bold;
249
+ }
250
+
251
+ /* Action Feedback */
252
  .action-feedback {
253
+ position: fixed;
254
+ top: 20px;
255
+ left: 50%;
256
+ transform: translateX(-50%);
257
+ padding: 15px 25px;
258
+ border-radius: 8px;
259
+ color: white;
260
+ font-weight: bold;
261
+ z-index: 200;
262
+ opacity: 0;
263
+ transition: all 0.3s ease;
264
+ min-width: 300px;
265
+ text-align: center;
266
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
267
+ }
268
+
269
+ .action-feedback.show {
270
+ opacity: 1;
271
+ transform: translateX(-50%) translateY(0);
272
+ }
273
+
274
+ .action-feedback.delete {
275
+ background-color: #ea4335;
276
+ }
277
+
278
+ .action-feedback.archive {
279
+ background-color: #34a853;
280
+ }
281
+
282
+ .action-feedback.summary {
283
+ background-color: #4285f4;
284
+ }
285
+
286
+ /* Scroll Indicator */
287
+ .scroll-indicator {
288
+ position: fixed;
289
+ top: 50%;
290
+ right: 20px;
291
+ width: 8px;
292
+ height: 50px;
293
+ background-color: rgba(0,0,0,0.1);
294
+ border-radius: 4px;
295
+ z-index: 10;
296
+ pointer-events: none;
297
+ transition: all 0.3s ease;
298
+ }
299
+
300
+ .scroll-indicator.up {
301
+ background-color: rgba(0,0,255,0.3);
302
+ transform: translateX(0) scaleY(1.5);
303
+ }
304
+
305
+ .scroll-indicator.down {
306
+ background-color: rgba(0,0,255,0.3);
307
+ transform: translateX(0) scaleY(1.5);
308
+ }
309
+
310
+ /* Selection Highlight */
311
+ .selection-highlight {
312
+ position: absolute;
313
+ border: 3px solid #4285f4;
314
+ border-radius: 8px;
315
+ pointer-events: none;
316
+ z-index: 50;
317
+ animation: pulse 1.5s infinite;
318
+ box-shadow: 0 0 0 0 rgba(66, 133, 244, 0.4);
319
+ transition: all 0.2s ease;
320
+ }
321
+
322
+ @keyframes pulse {
323
+ 0% { box-shadow: 0 0 0 0 rgba(66, 133, 244, 0.4); }
324
+ 70% { box-shadow: 0 0 0 10px rgba(66, 133, 244, 0); }
325
+ 100% { box-shadow: 0 0 0 0 rgba(66, 133, 244, 0); }
326
+ }
327
+
328
+ /* Gesture Visualization */
329
+ .gesture-visualization {
330
+ position: fixed;
331
+ top: 0;
332
+ left: 0;
333
+ width: 100%;
334
+ height: 100%;
335
+ pointer-events: none;
336
+ z-index: 40;
337
+ }
338
+
339
+ .hand-landmarks {
340
+ position: absolute;
341
+ width: 100%;
342
+ height: 100%;
343
+ }
344
+
345
+ .hand-landmarks .landmark {
346
+ position: absolute;
347
+ width: 8px;
348
+ height: 8px;
349
+ background-color: #4285f4;
350
+ border-radius: 50%;
351
+ transform: translate(-50%, -50%);
352
+ z-index: 100;
353
+ transition: all 0.1s ease;
354
+ }
355
+
356
+ .hand-landmarks .landmark.index-tip {
357
+ background-color: #34a853;
358
+ width: 12px;
359
+ height: 12px;
360
+ box-shadow: 0 0 8px rgba(52, 168, 83, 0.6);
361
+ }
362
+
363
+ .gesture-path {
364
+ position: absolute;
365
+ width: 100%;
366
+ height: 100%;
367
+ }
368
+
369
+ .gesture-path .point {
370
+ position: absolute;
371
+ width: 4px;
372
+ height: 4px;
373
+ background-color: #ff0000;
374
+ border-radius: 50%;
375
+ transform: translate(-50%, -50%);
376
+ opacity: 0.7;
377
+ }
378
+
379
+ /* Debug Panel */
380
+ .debug-panel {
381
+ position: fixed;
382
+ top: 60px;
383
+ right: 20px;
384
+ background-color: rgba(0,0,0,0.8);
385
+ color: #0f0;
386
+ padding: 15px;
387
+ border-radius: 12px;
388
+ max-width: 300px;
389
+ z-index: 100;
390
+ backdrop-filter: blur(5px);
391
+ opacity: 0;
392
+ visibility: hidden;
393
+ transition: all 0.3s ease;
394
+ border: 1px solid rgba(255, 255, 255, 0.2);
395
+ box-shadow: 0 4px 12px rgba(0,0,0,0.3);
396
+ transform: translateY(-10px);
397
+ }
398
+
399
+ .debug-panel.visible {
400
+ opacity: 1;
401
+ visibility: visible;
402
+ transform: translateY(0);
403
+ }
404
+
405
+ .debug-panel h3 {
406
+ color: #4285f4;
407
+ margin-bottom: 10px;
408
+ }
409
+
410
+ .debug-item {
411
+ margin-bottom: 5px;
412
+ }
413
+
414
+ .debug-label {
415
+ display: inline-block;
416
+ width: 120px;
417
+ color: #aaa;
418
+ }
419
+
420
+ .debug-value {
421
+ color: #fff;
422
+ }
423
+
424
+ /* Status Indicator */
425
+ .status-indicator {
426
+ position: fixed;
427
+ bottom: 30px;
428
+ right: 30px;
429
+ width: 20px;
430
+ height: 20px;
431
+ border-radius: 50%;
432
+ z-index: 200;
433
+ }
434
+
435
+ .status-indicator.ready {
436
+ background-color: #34a853;
437
+ box-shadow: 0 0 10px #34a853;
438
+ }
439
+
440
+ .status-indicator.processing {
441
+ background-color: #fbbc05;
442
+ animation: blink 1s infinite;
443
+ }
444
+
445
+ .status-indicator.error {
446
+ background-color: #ea4335;
447
+ animation: blink 0.5s infinite;
448
+ }
449
+
450
+ @keyframes blink {
451
+ 50% { opacity: 0.5; }
452
+ }
453
+
454
+ /* For mobile responsiveness */
455
+ @media (max-width: 768px) {
456
+ .webcam-container {
457
+ width: 240px;
458
+ height: 180px;
459
+ bottom: 10px;
460
+ right: 10px;
461
+ }
462
+
463
+ .gesture-guide, .debug-panel {
464
+ max-width: 240px;
465
+ font-size: 0.9em;
466
+ padding: 10px;
467
+ }
468
+
469
+ .email-subject {
470
+ max-width: 200px;
471
+ }
472
+
473
+ .email-snippet {
474
+ max-width: 150px;
475
+ }
476
+ }
477
+
478
+ /* Confirmation Overlay */
479
+ .confirmation-overlay {
480
+ position: fixed;
481
+ top: 0;
482
+ left: 0;
483
+ width: 100%;
484
+ height: 100%;
485
+ background-color: rgba(0, 0, 0, 0.4);
486
+ display: flex;
487
+ justify-content: center;
488
+ align-items: center;
489
+ z-index: 1000;
490
+ opacity: 0;
491
+ pointer-events: none;
492
+ transition: opacity 0.3s ease;
493
+ }
494
+
495
+ .confirmation-overlay.show {
496
+ opacity: 1;
497
+ pointer-events: all;
498
+ }
499
+
500
+ .confirmation-box {
501
+ background: white;
502
+ border-radius: 12px;
503
+ padding: 20px;
504
+ width: 300px;
505
+ box-shadow: 0 5px 20px rgba(0,0,0,0.2);
506
+ text-align: center;
507
+ transform: scale(0.9);
508
+ transition: transform 0.3s ease;
509
+ }
510
+
511
+ .confirmation-overlay.show .confirmation-box {
512
+ transform: scale(1);
513
  }
514
+
515
+ .confirmation-icon {
516
+ font-size: 40px;
517
+ margin-bottom: 15px;
518
+ }
519
+
520
+ .confirmation-title {
521
+ font-weight: bold;
522
+ margin-bottom: 10px;
523
+ }
524
+
525
+ .confirmation-message {
526
+ margin-bottom: 20px;
527
+ color: #5f6368;
528
+ }
529
+
530
+ .confirmation-buttons {
531
+ display: flex;
532
+ gap: 10px;
533
+ justify-content: center;
534
+ }
535
+
536
+ .confirmation-button {
537
+ padding: 8px 16px;
538
+ border-radius: 8px;
539
+ cursor: pointer;
540
+ font-weight: 500;
541
+ transition: all 0.2s;
542
+ }
543
+
544
+ .confirmation-button.cancel {
545
+ background-color: #f1f3f4;
546
+ color: #333;
547
+ }
548
+
549
+ .confirmation-button.confirm {
550
+ background-color: #4285f4;
551
+ color: white;
552
+ }
553
+
554
+ .confirmation-button:hover {
555
+ opacity: 0.9;
556
+ }
557
+
558
+ /* Scrollable Email List */
559
+ .scrollable-emails {
560
+ overflow-y: auto;
561
+ height: calc(100vh - 60px);
562
+ }
563
+
564
+ /* Email Item Enhanced */
565
+ .email-item {
566
+ transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
567
+ }
568
+
569
+ .email-item.highlighted {
570
+ transform: translateX(10px) scale(1.02);
571
+ box-shadow: 0 4px 12px rgba(0,0,0,0.1);
572
+ }
573
+
574
+ /* Email Header Enhanced */
575
+ .email-header {
576
+ transition: all 0.3s ease;
577
+ }
578
+
579
+ /* Email Subject Enhanced */
580
+ .email-subject {
581
+ transition: all 0.3s ease;
582
+ }
583
+
584
+ /* Email Snippet Enhanced */
585
+ .email-snippet {
586
+ transition: all 0.3s ease;
587
+ }
588
+
589
+ /* Scroll Gesture Indicator */
590
+ .scroll-gesture {
591
+ position: absolute;
592
+ width: 4px;
593
+ height: 60px;
594
+ background-color: #4285f4;
595
+ border-radius: 2px;
596
+ z-index: 50;
597
+ pointer-events: none;
598
+ opacity: 0.7;
599
+ transform: translateX(-50%);
600
+ }
601
+
602
+ /* Enhanced Visual Feedback */
603
+ .gesture-visualization .path {
604
+ position: absolute;
605
+ width: 100%;
606
+ height: 100%;
607
+ }
608
+
609
+ .gesture-visualization .path-point {
610
+ position: absolute;
611
+ width: 6px;
612
+ height: 6px;
613
+ background-color: #ff0000;
614
+ border-radius: 50%;
615
+ transform: translate(-50%, -50%);
616
+ opacity: 0.5;
617
+ }
618
+
619
+ /* Animation for gestures */
620
+ @keyframes gesture-pulse {
621
+ 0% { transform: scale(1); opacity: 0.7; }
622
+ 50% { transform: scale(1.5); opacity: 0.4; }
623
+ 100% { transform: scale(1); opacity: 0.7; }
624
+ }
625
+
626
+ .gesture-visualization .path-point {
627
+ animation: gesture-pulse 1.5s infinite;
628
+ }