CareerAI-app commited on
Commit
f3aec7d
·
1 Parent(s): 9f54bd3

Mobile redesign estilo ChatGPT: centrado, limpio, input fijo, chips en grid, sin download section

Browse files
Files changed (2) hide show
  1. frontend/index.html +2 -2
  2. frontend/styles.css +125 -86
frontend/index.html CHANGED
@@ -21,7 +21,7 @@
21
  <link
22
  href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Styrene+A:wght@400;500;700&display=swap"
23
  rel="stylesheet">
24
- <link rel="stylesheet" href="/static/styles.css?v=100">
25
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js"></script>
26
  </head>
27
 
@@ -683,7 +683,7 @@
683
  </div>
684
  </div>
685
 
686
- <script src="/static/app.js?v=100"></script>
687
 
688
  <!-- PWA: Service Worker Registration -->
689
  <script>
 
21
  <link
22
  href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Styrene+A:wght@400;500;700&display=swap"
23
  rel="stylesheet">
24
+ <link rel="stylesheet" href="/static/styles.css?v=200">
25
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.4/dist/chart.umd.min.js"></script>
26
  </head>
27
 
 
683
  </div>
684
  </div>
685
 
686
+ <script src="/static/app.js?v=200"></script>
687
 
688
  <!-- PWA: Service Worker Registration -->
689
  <script>
frontend/styles.css CHANGED
@@ -1363,155 +1363,203 @@ body {
1363
  margin-top: 12px;
1364
  }
1365
 
1366
- /* ===== RESPONSIVE ===== */
1367
  @media (max-width: 768px) {
 
 
1368
  .mobile-header-bar {
1369
  display: flex;
1370
  }
1371
 
 
1372
  .sidebar-backdrop {
1373
  display: block;
1374
  }
1375
 
1376
- .sidebar:not(.collapsed) ~ .sidebar-backdrop {
1377
  opacity: 1;
1378
  pointer-events: auto;
1379
  }
1380
 
 
1381
  .sidebar {
1382
  position: fixed;
1383
  left: 0;
1384
  top: 0;
1385
  bottom: 0;
1386
  z-index: 300;
1387
- width: 82%;
1388
- max-width: 310px;
1389
- box-shadow: 10px 0 35px rgba(0, 0, 0, 0.6);
1390
- border-right: 1px solid rgba(255, 255, 255, 0.1);
1391
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1392
  }
1393
 
1394
  .sidebar.collapsed {
1395
  transform: translateX(-100%);
1396
- width: 82%;
1397
- min-width: 82%;
1398
  }
1399
 
1400
  .mobile-sidebar-toggle {
1401
  display: flex;
1402
  }
1403
 
1404
- .sidebar:not(.collapsed)~.mobile-sidebar-toggle {
1405
- display: flex;
1406
- }
1407
-
1408
  #toggleSidebar {
1409
  display: flex;
1410
  }
1411
 
 
1412
  .main-content {
1413
  padding-top: 54px;
1414
  height: 100vh;
1415
  overflow-y: auto;
1416
  }
1417
 
 
1418
  .notification-bar {
1419
  display: none;
1420
  }
1421
 
 
1422
  .welcome-screen {
1423
- padding: 24px 16px 40px;
1424
- justify-content: flex-start;
 
1425
  min-height: calc(100vh - 54px);
 
1426
  }
1427
 
 
1428
  .welcome-logo {
1429
- margin-top: 12px;
1430
- margin-bottom: 12px !important;
1431
  gap: 10px !important;
1432
  }
1433
 
1434
  .welcome-logo svg {
1435
- width: 44px !important;
1436
- height: 44px !important;
1437
  }
1438
 
1439
  .welcome-logo-text {
1440
- font-size: 2.2rem !important;
1441
  }
1442
 
 
1443
  .welcome-heading {
1444
- font-size: 1.1rem !important;
1445
- margin-bottom: 24px !important;
1446
- line-height: 1.35;
 
1447
  color: var(--text-secondary);
1448
- padding: 0 8px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1449
  }
1450
 
 
 
 
 
 
 
1451
  .suggestion-chips {
1452
- display: flex;
1453
- flex-direction: row;
1454
- flex-wrap: wrap;
1455
- justify-content: center;
1456
  gap: 8px;
1457
  width: 100%;
1458
- max-width: 100%;
1459
- padding: 0 4px;
1460
- margin-top: 12px;
1461
  }
1462
 
1463
  .chip {
1464
- width: auto;
1465
  max-width: none;
1466
- flex: 0 1 auto;
1467
- font-size: 0.8rem;
1468
- padding: 8px 14px;
1469
- border-radius: 20px;
1470
- background: rgba(255, 255, 255, 0.04);
1471
- border: 1px solid rgba(255, 255, 255, 0.08);
1472
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
 
1473
  }
1474
 
1475
  .chip:active {
1476
- transform: scale(0.96);
1477
- background: rgba(16, 185, 129, 0.15);
1478
- border-color: var(--accent-primary);
1479
  }
1480
 
1481
- .welcome-input-container {
1482
- max-width: 100%;
1483
- padding: 0;
1484
  }
1485
 
1486
- .welcome-input-wrapper {
1487
- border-radius: 16px;
1488
- background: rgba(30, 41, 59, 0.7);
1489
- backdrop-filter: blur(12px);
1490
- border: 1px solid rgba(255, 255, 255, 0.12);
1491
- padding: 12px;
1492
  }
1493
 
 
1494
  .message-inner {
1495
- padding: 0 10px;
1496
  gap: 10px;
1497
  }
1498
 
 
 
 
 
 
 
 
 
 
 
1499
  .chat-messages {
1500
- padding-bottom: 90px;
1501
  }
1502
 
 
1503
  .chat-input-container {
1504
- padding: 8px 12px 14px;
1505
  position: fixed;
1506
  bottom: 0;
1507
  left: 0;
1508
  right: 0;
1509
- background: rgba(15, 23, 42, 0.92);
1510
- backdrop-filter: blur(16px);
1511
- border-top: 1px solid rgba(255, 255, 255, 0.08);
1512
  z-index: 100;
1513
  }
1514
 
 
 
 
 
 
1515
  .upload-type-selector {
1516
  grid-template-columns: repeat(2, 1fr);
1517
  }
@@ -1521,41 +1569,29 @@ body {
1521
  padding: 6px;
1522
  }
1523
 
1524
- .welcome-download-section {
1525
- margin-top: 28px;
1526
- width: 100%;
1527
- }
1528
-
1529
- .welcome-download-section h2 {
1530
- font-size: 1.15rem !important;
1531
- margin-bottom: 12px !important;
1532
- }
1533
-
1534
- .download-cards-container {
1535
- grid-template-columns: 1fr;
1536
- gap: 10px;
1537
  }
 
1538
 
1539
- .download-card {
1540
- padding: 14px 16px;
1541
- background: rgba(30, 41, 59, 0.5);
1542
- border: 1px solid rgba(255, 255, 255, 0.08);
1543
- border-radius: 14px;
1544
  }
1545
 
1546
- .download-card .card-icon {
1547
- width: 38px;
1548
- height: 38px;
1549
  }
1550
- }
1551
 
1552
- @media (max-width: 480px) {
1553
  .welcome-heading {
1554
- font-size: 1.05rem !important;
1555
  }
1556
 
1557
  .sidebar {
1558
- width: 85%;
1559
  max-width: 320px;
1560
  }
1561
 
@@ -1564,20 +1600,23 @@ body {
1564
  }
1565
 
1566
  .suggestion-chips {
 
1567
  gap: 6px;
1568
  }
1569
 
1570
  .chip {
1571
- font-size: 0.78rem;
1572
- padding: 7px 12px;
 
1573
  }
1574
 
1575
- .chat-input-container {
1576
- padding: 8px 10px 12px;
 
1577
  }
1578
 
1579
  .model-name {
1580
- max-width: 90px;
1581
  overflow: hidden;
1582
  text-overflow: ellipsis;
1583
  white-space: nowrap;
 
1363
  margin-top: 12px;
1364
  }
1365
 
1366
+ /* ===== RESPONSIVE — ChatGPT / Claude-style Mobile ===== */
1367
  @media (max-width: 768px) {
1368
+
1369
+ /* ---- Mobile Header Bar ---- */
1370
  .mobile-header-bar {
1371
  display: flex;
1372
  }
1373
 
1374
+ /* ---- Sidebar Backdrop ---- */
1375
  .sidebar-backdrop {
1376
  display: block;
1377
  }
1378
 
1379
+ .sidebar:not(.collapsed)~.sidebar-backdrop {
1380
  opacity: 1;
1381
  pointer-events: auto;
1382
  }
1383
 
1384
+ /* ---- Sidebar Drawer ---- */
1385
  .sidebar {
1386
  position: fixed;
1387
  left: 0;
1388
  top: 0;
1389
  bottom: 0;
1390
  z-index: 300;
1391
+ width: 80%;
1392
+ max-width: 300px;
1393
+ box-shadow: 8px 0 30px rgba(0, 0, 0, 0.5);
1394
+ border-right: 1px solid rgba(255, 255, 255, 0.06);
1395
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1396
  }
1397
 
1398
  .sidebar.collapsed {
1399
  transform: translateX(-100%);
1400
+ width: 80%;
1401
+ min-width: 80%;
1402
  }
1403
 
1404
  .mobile-sidebar-toggle {
1405
  display: flex;
1406
  }
1407
 
 
 
 
 
1408
  #toggleSidebar {
1409
  display: flex;
1410
  }
1411
 
1412
+ /* ---- Main Content ---- */
1413
  .main-content {
1414
  padding-top: 54px;
1415
  height: 100vh;
1416
  overflow-y: auto;
1417
  }
1418
 
1419
+ /* ---- Hide Notification Bar (info is in mobile header) ---- */
1420
  .notification-bar {
1421
  display: none;
1422
  }
1423
 
1424
+ /* ---- Welcome Screen: Centered like ChatGPT ---- */
1425
  .welcome-screen {
1426
+ padding: 0 20px 120px;
1427
+ justify-content: center;
1428
+ align-items: center;
1429
  min-height: calc(100vh - 54px);
1430
+ gap: 0;
1431
  }
1432
 
1433
+ /* ---- Logo: Smaller, subtle ---- */
1434
  .welcome-logo {
1435
+ margin-bottom: 16px !important;
 
1436
  gap: 10px !important;
1437
  }
1438
 
1439
  .welcome-logo svg {
1440
+ width: 36px !important;
1441
+ height: 36px !important;
1442
  }
1443
 
1444
  .welcome-logo-text {
1445
+ font-size: 1.8rem !important;
1446
  }
1447
 
1448
+ /* ---- Heading: The main centered greeting ---- */
1449
  .welcome-heading {
1450
+ font-size: 1.35rem !important;
1451
+ font-weight: 500 !important;
1452
+ margin-bottom: 0 !important;
1453
+ line-height: 1.3;
1454
  color: var(--text-secondary);
1455
+ text-align: center;
1456
+ padding: 0;
1457
+ font-family: var(--font-family) !important;
1458
+ }
1459
+
1460
+ /* ---- Hide welcome input on mobile (use fixed bottom input) ---- */
1461
+ .welcome-input-container {
1462
+ position: fixed;
1463
+ bottom: 0;
1464
+ left: 0;
1465
+ right: 0;
1466
+ max-width: 100%;
1467
+ margin-bottom: 0;
1468
+ padding: 10px 14px 16px;
1469
+ background: var(--bg-primary);
1470
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
1471
+ z-index: 100;
1472
+ }
1473
+
1474
+ .welcome-input-wrapper {
1475
+ border-radius: 24px;
1476
+ background: var(--bg-input);
1477
+ border: 1px solid rgba(255, 255, 255, 0.1);
1478
+ padding: 6px 10px;
1479
+ box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.2);
1480
  }
1481
 
1482
+ .welcome-input {
1483
+ font-size: 0.95rem !important;
1484
+ padding: 10px 8px !important;
1485
+ }
1486
+
1487
+ /* ---- Suggestion Chips: Inline, compact, 2-column grid ---- */
1488
  .suggestion-chips {
1489
+ display: grid;
1490
+ grid-template-columns: 1fr 1fr;
 
 
1491
  gap: 8px;
1492
  width: 100%;
1493
+ max-width: 360px;
1494
+ padding: 0;
1495
+ margin-top: 20px;
1496
  }
1497
 
1498
  .chip {
1499
+ width: 100%;
1500
  max-width: none;
1501
+ font-size: 0.78rem;
1502
+ padding: 10px 10px;
1503
+ border-radius: 12px;
1504
+ background: rgba(255, 255, 255, 0.03);
1505
+ border: 1px solid rgba(255, 255, 255, 0.07);
1506
+ justify-content: flex-start;
1507
+ text-align: left;
1508
+ transition: all 0.15s ease;
1509
  }
1510
 
1511
  .chip:active {
1512
+ transform: scale(0.97);
1513
+ background: rgba(85, 201, 112, 0.1);
1514
+ border-color: rgba(85, 201, 112, 0.3);
1515
  }
1516
 
1517
+ .chip-icon {
1518
+ font-size: 0.85rem;
 
1519
  }
1520
 
1521
+ /* ---- Download Section: Hidden on mobile ---- */
1522
+ .welcome-download-section {
1523
+ display: none;
 
 
 
1524
  }
1525
 
1526
+ /* ---- Chat Messages ---- */
1527
  .message-inner {
1528
+ padding: 0 14px;
1529
  gap: 10px;
1530
  }
1531
 
1532
+ .message {
1533
+ padding: 16px 0;
1534
+ }
1535
+
1536
+ .message-avatar {
1537
+ width: 24px;
1538
+ height: 24px;
1539
+ min-width: 24px;
1540
+ }
1541
+
1542
  .chat-messages {
1543
+ padding-bottom: 100px;
1544
  }
1545
 
1546
+ /* ---- Chat Input: Fixed bottom bar ---- */
1547
  .chat-input-container {
1548
+ padding: 10px 14px 16px;
1549
  position: fixed;
1550
  bottom: 0;
1551
  left: 0;
1552
  right: 0;
1553
+ background: var(--bg-primary);
1554
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
 
1555
  z-index: 100;
1556
  }
1557
 
1558
+ .chat-input-wrapper {
1559
+ border-radius: 24px;
1560
+ }
1561
+
1562
+ /* ---- Misc Mobile Fixes ---- */
1563
  .upload-type-selector {
1564
  grid-template-columns: repeat(2, 1fr);
1565
  }
 
1569
  padding: 6px;
1570
  }
1571
 
1572
+ /* ---- Upload Modal fixes ---- */
1573
+ .upload-modal {
1574
+ max-width: 92vw;
1575
+ max-height: 85vh;
 
 
 
 
 
 
 
 
 
1576
  }
1577
+ }
1578
 
1579
+ @media (max-width: 480px) {
1580
+ .welcome-logo svg {
1581
+ width: 32px !important;
1582
+ height: 32px !important;
 
1583
  }
1584
 
1585
+ .welcome-logo-text {
1586
+ font-size: 1.6rem !important;
 
1587
  }
 
1588
 
 
1589
  .welcome-heading {
1590
+ font-size: 1.2rem !important;
1591
  }
1592
 
1593
  .sidebar {
1594
+ width: 88%;
1595
  max-width: 320px;
1596
  }
1597
 
 
1600
  }
1601
 
1602
  .suggestion-chips {
1603
+ max-width: 100%;
1604
  gap: 6px;
1605
  }
1606
 
1607
  .chip {
1608
+ font-size: 0.75rem;
1609
+ padding: 9px 8px;
1610
+ border-radius: 10px;
1611
  }
1612
 
1613
+ .chat-input-container,
1614
+ .welcome-input-container {
1615
+ padding: 8px 10px 14px;
1616
  }
1617
 
1618
  .model-name {
1619
+ max-width: 85px;
1620
  overflow: hidden;
1621
  text-overflow: ellipsis;
1622
  white-space: nowrap;