codedash-app 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/frontend/styles.css +99 -16
package/package.json
CHANGED
package/src/frontend/styles.css
CHANGED
|
@@ -1388,31 +1388,114 @@ body {
|
|
|
1388
1388
|
/* ── Live session badges ────────────────────────────────────── */
|
|
1389
1389
|
|
|
1390
1390
|
.live-badge {
|
|
1391
|
-
font-size:
|
|
1392
|
-
font-weight:
|
|
1393
|
-
letter-spacing: 0.
|
|
1394
|
-
padding:
|
|
1395
|
-
border-radius:
|
|
1391
|
+
font-size: 10px;
|
|
1392
|
+
font-weight: 800;
|
|
1393
|
+
letter-spacing: 0.8px;
|
|
1394
|
+
padding: 3px 10px;
|
|
1395
|
+
border-radius: 6px;
|
|
1396
1396
|
text-transform: uppercase;
|
|
1397
|
-
|
|
1397
|
+
display: inline-flex;
|
|
1398
|
+
align-items: center;
|
|
1399
|
+
gap: 5px;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
.live-badge::before {
|
|
1403
|
+
content: '';
|
|
1404
|
+
width: 8px;
|
|
1405
|
+
height: 8px;
|
|
1406
|
+
border-radius: 50%;
|
|
1407
|
+
display: inline-block;
|
|
1408
|
+
animation: dot-pulse 1.5s infinite;
|
|
1398
1409
|
}
|
|
1399
1410
|
|
|
1400
1411
|
.live-active {
|
|
1401
|
-
background: rgba(74, 222, 128, 0.
|
|
1402
|
-
color:
|
|
1403
|
-
border: 1px solid rgba(74, 222, 128, 0.
|
|
1412
|
+
background: rgba(74, 222, 128, 0.25);
|
|
1413
|
+
color: #22c55e;
|
|
1414
|
+
border: 1px solid rgba(74, 222, 128, 0.5);
|
|
1415
|
+
box-shadow: 0 0 12px rgba(74, 222, 128, 0.3);
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
.live-active::before {
|
|
1419
|
+
background: #22c55e;
|
|
1420
|
+
box-shadow: 0 0 6px #22c55e;
|
|
1404
1421
|
}
|
|
1405
1422
|
|
|
1406
1423
|
.live-waiting {
|
|
1407
|
-
background: rgba(251, 191, 36, 0.
|
|
1408
|
-
color: #
|
|
1409
|
-
border: 1px solid rgba(251, 191, 36, 0.
|
|
1410
|
-
|
|
1424
|
+
background: rgba(251, 191, 36, 0.2);
|
|
1425
|
+
color: #f59e0b;
|
|
1426
|
+
border: 1px solid rgba(251, 191, 36, 0.4);
|
|
1427
|
+
box-shadow: 0 0 12px rgba(251, 191, 36, 0.25);
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
.live-waiting::before {
|
|
1431
|
+
background: #f59e0b;
|
|
1432
|
+
box-shadow: 0 0 6px #f59e0b;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
@keyframes dot-pulse {
|
|
1436
|
+
0%, 100% { opacity: 1; transform: scale(1); }
|
|
1437
|
+
50% { opacity: 0.3; transform: scale(0.6); }
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
/* Animated border for live sessions */
|
|
1441
|
+
.card:has(.live-active),
|
|
1442
|
+
.card:has(.live-waiting) {
|
|
1443
|
+
border-color: transparent;
|
|
1444
|
+
position: relative;
|
|
1445
|
+
overflow: hidden;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
.card:has(.live-active)::before,
|
|
1449
|
+
.card:has(.live-waiting)::before {
|
|
1450
|
+
content: '';
|
|
1451
|
+
position: absolute;
|
|
1452
|
+
inset: -2px;
|
|
1453
|
+
border-radius: 12px;
|
|
1454
|
+
z-index: -1;
|
|
1455
|
+
background: conic-gradient(
|
|
1456
|
+
from var(--border-angle, 0deg),
|
|
1457
|
+
transparent 40%,
|
|
1458
|
+
var(--live-color) 50%,
|
|
1459
|
+
transparent 60%
|
|
1460
|
+
);
|
|
1461
|
+
animation: border-spin 3s linear infinite;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
.card:has(.live-active)::after,
|
|
1465
|
+
.card:has(.live-waiting)::after {
|
|
1466
|
+
content: '';
|
|
1467
|
+
position: absolute;
|
|
1468
|
+
inset: 1px;
|
|
1469
|
+
border-radius: 9px;
|
|
1470
|
+
background: var(--bg-card);
|
|
1471
|
+
z-index: -1;
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
.card:has(.live-active) {
|
|
1475
|
+
--live-color: rgba(74, 222, 128, 0.6);
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
.card:has(.live-waiting) {
|
|
1479
|
+
--live-color: rgba(251, 191, 36, 0.4);
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
.card:has(.live-waiting)::before {
|
|
1483
|
+
animation: none;
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
@keyframes border-spin {
|
|
1487
|
+
to { --border-angle: 360deg; }
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
@property --border-angle {
|
|
1491
|
+
syntax: '<angle>';
|
|
1492
|
+
initial-value: 0deg;
|
|
1493
|
+
inherits: false;
|
|
1411
1494
|
}
|
|
1412
1495
|
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1496
|
+
[data-theme="light"] .card:has(.live-active)::after,
|
|
1497
|
+
[data-theme="light"] .card:has(.live-waiting)::after {
|
|
1498
|
+
background: #ffffff;
|
|
1416
1499
|
}
|
|
1417
1500
|
|
|
1418
1501
|
/* ── Card expand preview ────────────────────────────────────── */
|