NizamuddinMandekar commited on
Commit
39fd514
·
verified ·
1 Parent(s): bfd1b0e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +275 -98
app.py CHANGED
@@ -261,68 +261,19 @@ body {
261
  to { opacity: 1; transform: scale(1) translateY(0); }
262
  }
263
 
264
- /* Upload Image Box Styling */
265
- .gr-file-upload, .gr-image {
266
- background: rgba(255,255,255,0.08) !important;
267
- backdrop-filter: blur(20px) !important;
268
- border: 2px dashed rgba(255,255,255,0.3) !important;
269
- border-radius: 25px !important;
270
- padding: 30px !important;
271
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
272
- position: relative !important;
273
- overflow: hidden !important;
274
- }
275
-
276
- .gr-file-upload::before, .gr-image::before {
277
- content: '';
278
- position: absolute;
279
- top: -50%;
280
- left: -50%;
281
- width: 200%;
282
- height: 200%;
283
- background: radial-gradient(circle, rgba(102, 126, 234, 0.1) 0%, transparent 70%);
284
- animation: rotateGlow 15s linear infinite;
285
- pointer-events: none;
286
- }
287
-
288
- @keyframes rotateGlow {
289
- from { transform: rotate(0deg); }
290
- to { transform: rotate(360deg); }
291
- }
292
-
293
- .gr-file-upload:hover, .gr-image:hover {
294
- background: rgba(255,255,255,0.12) !important;
295
- border-color: rgba(102, 126, 234, 0.6) !important;
296
- transform: scale(1.02) !important;
297
- box-shadow: 0 15px 40px rgba(102, 126, 234, 0.2) !important;
298
- }
299
-
300
- .gr-file-upload .upload-text, .gr-image .upload-text {
301
- color: rgba(255,255,255,0.9) !important;
302
- font-size: 1.1em !important;
303
- font-weight: 500 !important;
304
- text-shadow: 0 2px 10px rgba(0,0,0,0.3) !important;
305
- }
306
-
307
- /* Enhanced Button Styling */
308
  .gr-button {
309
- background: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 25%, #ff8a80 50%, #ff5722 75%, #d84315 100%) !important;
310
  border: none !important;
311
- border-radius: 25px !important;
312
- padding: 18px 50px !important;
313
  color: white !important;
314
- font-weight: 700 !important;
315
- font-size: 1.2em !important;
316
  cursor: pointer !important;
317
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
318
- box-shadow: 0 15px 35px rgba(255, 87, 34, 0.4) !important;
319
  position: relative !important;
320
  overflow: hidden !important;
321
- text-transform: uppercase !important;
322
- letter-spacing: 1px !important;
323
- margin: 25px auto !important;
324
- display: block !important;
325
- width: fit-content !important;
326
  }
327
 
328
  .gr-button::before {
@@ -332,8 +283,8 @@ body {
332
  left: -100%;
333
  width: 100%;
334
  height: 100%;
335
- background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
336
- transition: left 0.6s ease;
337
  }
338
 
339
  .gr-button:hover::before {
@@ -341,38 +292,13 @@ body {
341
  }
342
 
343
  .gr-button:hover {
344
- transform: translateY(-5px) scale(1.05) !important;
345
- box-shadow: 0 25px 50px rgba(255, 87, 34, 0.6) !important;
346
- background: linear-gradient(135deg, #ff5252 0%, #d32f2f 25%, #ff7043 50%, #e64a19 75%, #bf360c 100%) !important;
347
  }
348
 
349
  .gr-button:active {
350
- transform: translateY(-2px) scale(1.02) !important;
351
- box-shadow: 0 15px 30px rgba(255, 87, 34, 0.5) !important;
352
- }
353
-
354
- /* Image Preview Styling */
355
- .gr-image img {
356
- border-radius: 20px !important;
357
- box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important;
358
- transition: all 0.3s ease !important;
359
- }
360
-
361
- .gr-image img:hover {
362
- transform: scale(1.02) !important;
363
- box-shadow: 0 15px 40px rgba(0,0,0,0.4) !important;
364
- }
365
-
366
- /* Upload Area Text */
367
- .gr-file-upload div {
368
- color: rgba(255,255,255,0.8) !important;
369
- }
370
-
371
- /* Drag and Drop Styling */
372
- .gr-file-upload.drag-over {
373
- background: rgba(102, 126, 234, 0.2) !important;
374
- border-color: rgba(102, 126, 234, 0.8) !important;
375
- transform: scale(1.05) !important;
376
  }
377
 
378
  .gr-form {
@@ -430,28 +356,279 @@ body {
430
  .guide-box { padding: 25px; }
431
  }
432
 
433
- /* Loading Animation */
434
- .loading {
435
- position: relative;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
436
  }
437
 
438
- .loading::after {
439
  content: '';
440
  position: absolute;
441
  top: 50%;
442
  left: 50%;
443
- width: 20px;
444
- height: 20px;
445
- border: 2px solid rgba(255,255,255,0.3);
446
- border-top: 2px solid white;
447
  border-radius: 50%;
448
- animation: spin 1s linear infinite;
449
  transform: translate(-50%, -50%);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
  }
451
 
452
- @keyframes spin {
453
- 0% { transform: translate(-50%, -50%) rotate(0deg); }
454
- 100% { transform: translate(-50%, -50%) rotate(360deg); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
455
  }
456
  """
457
 
 
261
  to { opacity: 1; transform: scale(1) translateY(0); }
262
  }
263
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  .gr-button {
265
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
266
  border: none !important;
267
+ border-radius: 15px !important;
268
+ padding: 15px 40px !important;
269
  color: white !important;
270
+ font-weight: 600 !important;
271
+ font-size: 1.1em !important;
272
  cursor: pointer !important;
273
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
274
+ box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3) !important;
275
  position: relative !important;
276
  overflow: hidden !important;
 
 
 
 
 
277
  }
278
 
279
  .gr-button::before {
 
283
  left: -100%;
284
  width: 100%;
285
  height: 100%;
286
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
287
+ transition: left 0.6s;
288
  }
289
 
290
  .gr-button:hover::before {
 
292
  }
293
 
294
  .gr-button:hover {
295
+ transform: translateY(-3px) !important;
296
+ box-shadow: 0 15px 35px rgba(102, 126, 234, 0.4) !important;
297
+ background: linear-gradient(135deg, #5a6fd8 0%, #6a4c93 100%) !important;
298
  }
299
 
300
  .gr-button:active {
301
+ transform: translateY(0px) !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  }
303
 
304
  .gr-form {
 
356
  .guide-box { padding: 25px; }
357
  }
358
 
359
+ /* Enhanced Gradio Component Styling */
360
+ .gr-box, .gr-form, .gr-panel {
361
+ background: rgba(30, 30, 30, 0.95) !important;
362
+ backdrop-filter: blur(20px) !important;
363
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
364
+ border-radius: 20px !important;
365
+ padding: 25px !important;
366
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3) !important;
367
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
368
+ position: relative !important;
369
+ overflow: hidden !important;
370
+ }
371
+
372
+ .gr-box::before, .gr-form::before, .gr-panel::before {
373
+ content: '';
374
+ position: absolute;
375
+ top: 0;
376
+ left: -100%;
377
+ width: 100%;
378
+ height: 100%;
379
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
380
+ transition: left 0.8s;
381
+ pointer-events: none;
382
+ }
383
+
384
+ .gr-box:hover::before, .gr-form:hover::before, .gr-panel:hover::before {
385
+ left: 100%;
386
+ }
387
+
388
+ .gr-box:hover, .gr-form:hover, .gr-panel:hover {
389
+ transform: translateY(-5px) !important;
390
+ box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4) !important;
391
+ border-color: rgba(255, 255, 255, 0.2) !important;
392
+ }
393
+
394
+ /* Image Upload Container */
395
+ div[data-testid="image"] {
396
+ background: rgba(20, 20, 20, 0.9) !important;
397
+ border: 2px dashed rgba(255, 255, 255, 0.3) !important;
398
+ border-radius: 20px !important;
399
+ padding: 30px !important;
400
+ transition: all 0.4s ease !important;
401
+ position: relative !important;
402
+ overflow: hidden !important;
403
+ }
404
+
405
+ div[data-testid="image"]:hover {
406
+ border-color: #667eea !important;
407
+ background: rgba(25, 25, 25, 0.95) !important;
408
+ transform: scale(1.02) !important;
409
+ box-shadow: 0 15px 30px rgba(102, 126, 234, 0.2) !important;
410
+ }
411
+
412
+ div[data-testid="image"]::before {
413
+ content: '📸 Drop your image here or click to browse';
414
+ position: absolute;
415
+ top: 50%;
416
+ left: 50%;
417
+ transform: translate(-50%, -50%);
418
+ color: rgba(255, 255, 255, 0.6);
419
+ font-size: 1.2em;
420
+ font-weight: 500;
421
+ text-align: center;
422
+ pointer-events: none;
423
+ opacity: 0;
424
+ transition: opacity 0.3s ease;
425
+ }
426
+
427
+ div[data-testid="image"]:empty::before {
428
+ opacity: 1;
429
+ }
430
+
431
+ /* Enhanced Button Styling */
432
+ .gr-button {
433
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
434
+ border: none !important;
435
+ border-radius: 20px !important;
436
+ padding: 18px 50px !important;
437
+ color: white !important;
438
+ font-weight: 600 !important;
439
+ font-size: 1.2em !important;
440
+ cursor: pointer !important;
441
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
442
+ box-shadow: 0 15px 35px rgba(102, 126, 234, 0.4) !important;
443
+ position: relative !important;
444
+ overflow: hidden !important;
445
+ text-transform: uppercase !important;
446
+ letter-spacing: 1px !important;
447
+ margin: 20px 0 !important;
448
  }
449
 
450
+ .gr-button::before {
451
  content: '';
452
  position: absolute;
453
  top: 50%;
454
  left: 50%;
455
+ width: 0;
456
+ height: 0;
457
+ background: rgba(255, 255, 255, 0.2);
 
458
  border-radius: 50%;
 
459
  transform: translate(-50%, -50%);
460
+ transition: width 0.6s, height 0.6s;
461
+ }
462
+
463
+ .gr-button:hover::before {
464
+ width: 300px;
465
+ height: 300px;
466
+ }
467
+
468
+ .gr-button:hover {
469
+ transform: translateY(-8px) scale(1.05) !important;
470
+ box-shadow: 0 25px 50px rgba(102, 126, 234, 0.6) !important;
471
+ background: linear-gradient(135deg, #5a6fd8 0%, #6a4c93 100%) !important;
472
+ }
473
+
474
+ .gr-button:active {
475
+ transform: translateY(-4px) scale(1.02) !important;
476
+ transition: all 0.1s ease !important;
477
+ }
478
+
479
+ /* Pulse Animation for Button */
480
+ @keyframes buttonPulse {
481
+ 0% { box-shadow: 0 15px 35px rgba(102, 126, 234, 0.4); }
482
+ 50% { box-shadow: 0 15px 35px rgba(102, 126, 234, 0.7); }
483
+ 100% { box-shadow: 0 15px 35px rgba(102, 126, 234, 0.4); }
484
+ }
485
+
486
+ .gr-button:not(:hover) {
487
+ animation: buttonPulse 3s ease-in-out infinite;
488
+ }
489
+
490
+ /* Label and Output Styling */
491
+ .gr-label {
492
+ background: rgba(20, 20, 20, 0.9) !important;
493
+ border: 1px solid rgba(255, 255, 255, 0.15) !important;
494
+ border-radius: 15px !important;
495
+ padding: 20px !important;
496
+ margin: 10px 0 !important;
497
+ color: white !important;
498
+ backdrop-filter: blur(15px) !important;
499
+ transition: all 0.3s ease !important;
500
+ }
501
+
502
+ .gr-label:hover {
503
+ background: rgba(25, 25, 25, 0.95) !important;
504
+ transform: translateY(-2px) !important;
505
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3) !important;
506
+ }
507
+
508
+ /* Progress Bars */
509
+ .gr-label .bar {
510
+ background: linear-gradient(90deg, #667eea, #764ba2) !important;
511
+ border-radius: 10px !important;
512
+ height: 8px !important;
513
+ position: relative !important;
514
+ overflow: hidden !important;
515
+ }
516
+
517
+ .gr-label .bar::before {
518
+ content: '';
519
+ position: absolute;
520
+ top: 0;
521
+ left: -100%;
522
+ width: 100%;
523
+ height: 100%;
524
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
525
+ animation: shimmer 2s infinite;
526
+ }
527
+
528
+ @keyframes shimmer {
529
+ 0% { left: -100%; }
530
+ 100% { left: 100%; }
531
+ }
532
+
533
+ /* Number Input Styling */
534
+ .gr-number input {
535
+ background: rgba(20, 20, 20, 0.9) !important;
536
+ border: 1px solid rgba(255, 255, 255, 0.2) !important;
537
+ border-radius: 12px !important;
538
+ color: white !important;
539
+ padding: 15px !important;
540
+ font-size: 1.1em !important;
541
+ font-weight: 500 !important;
542
+ text-align: center !important;
543
+ backdrop-filter: blur(10px) !important;
544
+ transition: all 0.3s ease !important;
545
+ }
546
+
547
+ .gr-number input:focus {
548
+ border-color: #667eea !important;
549
+ box-shadow: 0 0 20px rgba(102, 126, 234, 0.3) !important;
550
+ transform: scale(1.02) !important;
551
+ }
552
+
553
+ /* Examples Gallery Styling */
554
+ .gr-gallery {
555
+ background: rgba(20, 20, 20, 0.8) !important;
556
+ border-radius: 20px !important;
557
+ padding: 20px !important;
558
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
559
+ backdrop-filter: blur(15px) !important;
560
+ }
561
+
562
+ .gr-gallery img {
563
+ border-radius: 15px !important;
564
+ transition: all 0.3s ease !important;
565
+ border: 2px solid rgba(255, 255, 255, 0.1) !important;
566
+ }
567
+
568
+ .gr-gallery img:hover {
569
+ transform: scale(1.1) rotate(2deg) !important;
570
+ border-color: #667eea !important;
571
+ box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4) !important;
572
  }
573
 
574
+ /* Loading Animation */
575
+ .loading-overlay {
576
+ position: absolute;
577
+ top: 0;
578
+ left: 0;
579
+ right: 0;
580
+ bottom: 0;
581
+ background: rgba(0, 0, 0, 0.8);
582
+ display: flex;
583
+ align-items: center;
584
+ justify-content: center;
585
+ border-radius: 20px;
586
+ z-index: 1000;
587
+ }
588
+
589
+ .loading-spinner {
590
+ width: 50px;
591
+ height: 50px;
592
+ border: 4px solid rgba(255, 255, 255, 0.2);
593
+ border-left: 4px solid #667eea;
594
+ border-radius: 50%;
595
+ animation: spin 1s linear infinite;
596
+ }
597
+
598
+ /* Animated Background Patterns */
599
+ .pattern-overlay {
600
+ position: absolute;
601
+ top: 0;
602
+ left: 0;
603
+ right: 0;
604
+ bottom: 0;
605
+ background-image:
606
+ radial-gradient(circle at 25% 25%, rgba(102, 126, 234, 0.1) 0%, transparent 50%),
607
+ radial-gradient(circle at 75% 75%, rgba(118, 75, 162, 0.1) 0%, transparent 50%);
608
+ pointer-events: none;
609
+ animation: patternMove 20s ease-in-out infinite;
610
+ }
611
+
612
+ @keyframes patternMove {
613
+ 0%, 100% { transform: translate(0, 0) rotate(0deg); }
614
+ 50% { transform: translate(10px, -10px) rotate(180deg); }
615
+ }
616
+
617
+ /* Responsive Enhancements */
618
+ @media (max-width: 768px) {
619
+ .gr-button {
620
+ padding: 14px 30px !important;
621
+ font-size: 1em !important;
622
+ }
623
+
624
+ .gr-box, .gr-form, .gr-panel {
625
+ padding: 20px !important;
626
+ border-radius: 15px !important;
627
+ }
628
+
629
+ div[data-testid="image"] {
630
+ padding: 20px !important;
631
+ }
632
  }
633
  """
634