sidebud 0.1.0 → 0.4.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/dist/main.js +9361 -4209
  3. package/package.json +3 -2
  4. package/skills/widget-packs/SKILL.md +199 -0
  5. package/src/manage/guide/app-arrange.png +0 -0
  6. package/src/manage/guide/app-disk.png +0 -0
  7. package/src/manage/guide/app-open.png +0 -0
  8. package/src/manage/guide/app-thread.png +0 -0
  9. package/src/manage/guide/app-tiles.png +0 -0
  10. package/src/manage/guide/draft.png +0 -0
  11. package/src/manage/guide/layouts.png +0 -0
  12. package/src/manage/guide/library.png +0 -0
  13. package/src/manage/guide/pack-page.png +0 -0
  14. package/src/manage/guide/permissions.png +0 -0
  15. package/src/manage/guide/phone-home.png +0 -0
  16. package/src/manage/guide/phone-open.png +0 -0
  17. package/src/manage/guide/widget-voice.png +0 -0
  18. package/src/manage/guide.js +155 -0
  19. package/src/manage/guide.md +139 -0
  20. package/src/manage/index.html +14 -0
  21. package/src/manage/manage.css +782 -0
  22. package/src/manage/manage.js +155 -39
  23. package/src/manage/packs.js +347 -0
  24. package/src/manage/settings.js +1 -1
  25. package/src/manage/setup.js +83 -23
  26. package/packs/BRAND_ASSETS.md +0 -8
  27. package/packs/calendar/logo.png +0 -0
  28. package/packs/calendar/pack.json +0 -127
  29. package/packs/discord/pack.json +0 -107
  30. package/packs/filesystem/pack.json +0 -84
  31. package/packs/github/pack.json +0 -127
  32. package/packs/gmail/logo.png +0 -0
  33. package/packs/gmail/pack.json +0 -274
  34. package/packs/obsidian/pack.json +0 -88
  35. package/packs/t3-agents/logo.png +0 -0
  36. package/packs/t3-agents/pack.json +0 -492
  37. package/packs/telegram/pack.json +0 -137
  38. package/packs/trello/pack.json +0 -102
  39. package/packs/whatsapp/pack.json +0 -118
@@ -406,6 +406,26 @@ button.theme-toggle {
406
406
  background: var(--amber-soft);
407
407
  color: var(--amber-text);
408
408
  }
409
+ .label-text {
410
+ display: inline-flex;
411
+ flex-wrap: wrap;
412
+ align-items: center;
413
+ gap: 8px;
414
+ }
415
+ .tag-beta {
416
+ display: inline-block;
417
+ margin-left: 8px;
418
+ padding: 2px 7px;
419
+ border-radius: 999px;
420
+ border: 1px solid var(--amber-text);
421
+ color: var(--amber-text);
422
+ font-size: 10px;
423
+ font-weight: 700;
424
+ letter-spacing: 0.06em;
425
+ line-height: 1.4;
426
+ text-transform: uppercase;
427
+ vertical-align: middle;
428
+ }
409
429
  .badge.bad {
410
430
  background: var(--red-soft);
411
431
  color: var(--red);
@@ -1244,3 +1264,765 @@ ol.steps {
1244
1264
  background: var(--amber);
1245
1265
  color: var(--amber-ink);
1246
1266
  }
1267
+
1268
+ /* Menu entries that navigate (a pack's own page) look like the menu's buttons. */
1269
+ details.menu .menu-list a.button {
1270
+ border: 0;
1271
+ background: transparent;
1272
+ text-align: left;
1273
+ padding: 8px 10px;
1274
+ color: inherit;
1275
+ text-decoration: none;
1276
+ }
1277
+ details.menu .menu-list a.button:hover {
1278
+ background: var(--raised);
1279
+ }
1280
+ .pill.warn {
1281
+ background: #ffa84a26;
1282
+ color: #ffa84a;
1283
+ }
1284
+
1285
+ /* Phone preview: the Sidebud app's home grid and detail view, in the app's own dark palette. */
1286
+ .phone {
1287
+ --phone-bg: #151718;
1288
+ --phone-surface: #1f2223;
1289
+ --phone-raised: #292d2e;
1290
+ --phone-border: #353a3b;
1291
+ --phone-text: #fef3e1;
1292
+ --phone-muted: #aba496;
1293
+ background: var(--phone-bg);
1294
+ color: var(--phone-text);
1295
+ font-size: 13px;
1296
+ }
1297
+ .phone .muted {
1298
+ color: var(--phone-muted);
1299
+ }
1300
+ .phone .hint {
1301
+ color: var(--phone-muted);
1302
+ margin-top: 10px;
1303
+ }
1304
+ .phone-status {
1305
+ display: flex;
1306
+ justify-content: space-between;
1307
+ padding: 2px 6px 12px;
1308
+ color: var(--phone-muted);
1309
+ font-size: 11px;
1310
+ }
1311
+ .phone-grid {
1312
+ display: grid;
1313
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1314
+ gap: 12px;
1315
+ }
1316
+ .phone-empty {
1317
+ grid-column: 1 / -1;
1318
+ text-align: center;
1319
+ padding: 24px 0;
1320
+ }
1321
+ .phone-tile {
1322
+ display: flex;
1323
+ flex-direction: column;
1324
+ justify-content: center;
1325
+ min-width: 0;
1326
+ padding: 12px 14px;
1327
+ border: 1px solid var(--phone-border);
1328
+ border-radius: 20px;
1329
+ background: var(--phone-surface);
1330
+ color: var(--phone-text);
1331
+ text-align: left;
1332
+ font: inherit;
1333
+ cursor: pointer;
1334
+ overflow: hidden;
1335
+ }
1336
+ .phone-tile.size-large {
1337
+ justify-content: flex-start;
1338
+ }
1339
+ .phone-tile.open,
1340
+ .phone-tile:hover {
1341
+ border-color: #feb93e80;
1342
+ }
1343
+ .phone-tile-row {
1344
+ display: flex;
1345
+ align-items: center;
1346
+ gap: 10px;
1347
+ min-width: 0;
1348
+ }
1349
+ .phone-logo-wrap {
1350
+ position: relative;
1351
+ flex: none;
1352
+ }
1353
+ .phone-logo {
1354
+ display: inline-flex;
1355
+ width: 28px;
1356
+ height: 28px;
1357
+ align-items: center;
1358
+ justify-content: center;
1359
+ border-radius: 8px;
1360
+ font-size: 20px;
1361
+ object-fit: cover;
1362
+ }
1363
+ .phone-badge-dot {
1364
+ position: absolute;
1365
+ top: -3px;
1366
+ right: -4px;
1367
+ width: 12px;
1368
+ height: 12px;
1369
+ border-radius: 6px;
1370
+ border: 2px solid var(--phone-surface);
1371
+ }
1372
+ .phone-tile-text {
1373
+ display: flex;
1374
+ flex: 1;
1375
+ flex-direction: column;
1376
+ min-width: 0;
1377
+ }
1378
+ .phone-tile-text strong,
1379
+ .phone-glance {
1380
+ overflow: hidden;
1381
+ white-space: nowrap;
1382
+ text-overflow: ellipsis;
1383
+ }
1384
+ .phone-tile-text strong {
1385
+ font-size: 15px;
1386
+ }
1387
+ .phone-glance {
1388
+ color: var(--phone-muted);
1389
+ line-height: 18px;
1390
+ }
1391
+ .phone-badge {
1392
+ max-width: 110px;
1393
+ padding: 2px 8px;
1394
+ border-radius: 10px;
1395
+ background: var(--phone-raised);
1396
+ font-size: 12px;
1397
+ white-space: nowrap;
1398
+ }
1399
+ .phone-chevron {
1400
+ color: var(--phone-muted);
1401
+ font-size: 18px;
1402
+ }
1403
+ .phone-tile-list {
1404
+ display: flex;
1405
+ flex-direction: column;
1406
+ gap: 4px;
1407
+ margin-top: 12px;
1408
+ }
1409
+ .phone-tile-list > span {
1410
+ display: flex;
1411
+ justify-content: space-between;
1412
+ gap: 8px;
1413
+ overflow: hidden;
1414
+ white-space: nowrap;
1415
+ text-overflow: ellipsis;
1416
+ }
1417
+ .phone-tile-list > span > span:first-child {
1418
+ min-width: 0;
1419
+ overflow: hidden;
1420
+ text-overflow: ellipsis;
1421
+ }
1422
+ .phone-board-counts {
1423
+ display: flex;
1424
+ flex-wrap: nowrap;
1425
+ gap: 10px;
1426
+ overflow: hidden;
1427
+ white-space: nowrap;
1428
+ }
1429
+ .phone-row-button {
1430
+ flex: 0 0 auto;
1431
+ align-self: center;
1432
+ border-radius: 10px;
1433
+ padding: 4px 10px;
1434
+ font-size: 12px;
1435
+ font-weight: 600;
1436
+ line-height: 1.4;
1437
+ background: var(--phone-raised);
1438
+ }
1439
+ /* A row with a button: the text takes the room, the status and button sit at the end. */
1440
+ .phone-list > div:has(> .phone-row-button) > div:first-child {
1441
+ flex: 1 1 auto;
1442
+ min-width: 0;
1443
+ }
1444
+ .phone-list > div:has(> .phone-row-button) {
1445
+ align-items: center;
1446
+ }
1447
+ .phone-row-end {
1448
+ flex: 0 0 auto;
1449
+ white-space: nowrap;
1450
+ display: flex;
1451
+ flex-direction: column;
1452
+ align-items: flex-end;
1453
+ gap: 2px;
1454
+ }
1455
+ .phone-board {
1456
+ margin-bottom: 12px;
1457
+ }
1458
+ .phone-columns {
1459
+ display: flex;
1460
+ align-items: flex-start;
1461
+ gap: 8px;
1462
+ overflow-x: auto;
1463
+ padding-bottom: 4px;
1464
+ }
1465
+ .phone-column {
1466
+ flex: 0 0 180px;
1467
+ display: flex;
1468
+ flex-direction: column;
1469
+ gap: 6px;
1470
+ padding: 10px;
1471
+ border: 1px solid var(--phone-border, rgba(255, 255, 255, 0.1));
1472
+ border-radius: 14px;
1473
+ }
1474
+ .phone-column-head {
1475
+ display: flex;
1476
+ align-items: center;
1477
+ gap: 6px;
1478
+ }
1479
+ .phone-column-head strong {
1480
+ flex: 1;
1481
+ }
1482
+ .phone-dot {
1483
+ width: 8px;
1484
+ height: 8px;
1485
+ border-radius: 4px;
1486
+ }
1487
+ .phone-card {
1488
+ display: flex;
1489
+ flex-direction: column;
1490
+ gap: 2px;
1491
+ padding: 8px;
1492
+ border: 1px solid var(--phone-border, rgba(255, 255, 255, 0.1));
1493
+ border-radius: 10px;
1494
+ }
1495
+ .phone-tile-list + .phone-tile-list {
1496
+ margin-top: 8px;
1497
+ }
1498
+ .phone-more {
1499
+ display: block;
1500
+ padding-top: 8px;
1501
+ text-align: center;
1502
+ color: #feb93e;
1503
+ font-weight: 700;
1504
+ }
1505
+ .phone-list-title {
1506
+ display: block;
1507
+ font-size: 11px;
1508
+ letter-spacing: 0.04em;
1509
+ text-transform: uppercase;
1510
+ }
1511
+ .phone-tile-list > .phone-list-title {
1512
+ display: block;
1513
+ }
1514
+ .phone-detail-head {
1515
+ display: flex;
1516
+ align-items: center;
1517
+ gap: 10px;
1518
+ margin-bottom: 12px;
1519
+ }
1520
+ .phone-detail-head div,
1521
+ .phone-list > div > div {
1522
+ display: flex;
1523
+ flex-direction: column;
1524
+ }
1525
+ .phone-detail-head strong {
1526
+ font-size: 17px;
1527
+ }
1528
+ .phone-stats {
1529
+ display: grid;
1530
+ grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
1531
+ gap: 8px;
1532
+ margin-bottom: 12px;
1533
+ }
1534
+ .phone-stats > div {
1535
+ display: flex;
1536
+ flex-direction: column;
1537
+ padding: 10px;
1538
+ border-radius: 14px;
1539
+ background: var(--phone-surface);
1540
+ }
1541
+ .phone-stats strong {
1542
+ font-size: 20px;
1543
+ }
1544
+ .phone-list {
1545
+ margin-bottom: 12px;
1546
+ border-radius: 14px;
1547
+ background: var(--phone-surface);
1548
+ }
1549
+ .phone-list > div {
1550
+ display: flex;
1551
+ justify-content: space-between;
1552
+ gap: 10px;
1553
+ padding: 10px 12px;
1554
+ border-top: 1px solid var(--phone-border);
1555
+ }
1556
+ .phone-list > div:first-child {
1557
+ border-top: 0;
1558
+ }
1559
+ .phone-list > p {
1560
+ padding: 12px;
1561
+ }
1562
+ .phone-text {
1563
+ margin-bottom: 12px;
1564
+ line-height: 1.45;
1565
+ }
1566
+ .phone-progress {
1567
+ display: flex;
1568
+ flex-direction: column;
1569
+ gap: 6px;
1570
+ margin-bottom: 12px;
1571
+ }
1572
+ .phone-bar {
1573
+ height: 6px;
1574
+ border-radius: 3px;
1575
+ background: var(--phone-raised);
1576
+ overflow: hidden;
1577
+ }
1578
+ .phone-bar > span {
1579
+ display: block;
1580
+ height: 100%;
1581
+ background: #feb93e;
1582
+ }
1583
+ .phone-controls {
1584
+ display: flex;
1585
+ flex-wrap: wrap;
1586
+ gap: 8px;
1587
+ }
1588
+ .phone-control {
1589
+ padding: 8px 12px;
1590
+ border-radius: 12px;
1591
+ background: var(--phone-raised);
1592
+ }
1593
+ .phone-control.primary {
1594
+ background: #feb93e;
1595
+ color: #151718;
1596
+ font-weight: 600;
1597
+ }
1598
+ .phone .tone-neutral { color: #8a857a; }
1599
+ .phone .tone-info { color: #feb93e; }
1600
+ .phone .tone-success { color: #7fd0a0; }
1601
+ .phone .tone-warning { color: #ffa84a; }
1602
+ .phone .tone-danger { color: #ff7a68; }
1603
+ .phone .bg-neutral { background: #8a857a; }
1604
+ .phone .bg-info { background: #feb93e; }
1605
+ .phone .bg-success { background: #7fd0a0; }
1606
+ .phone .bg-warning { background: #ffa84a; }
1607
+ .phone .bg-danger { background: #ff7a68; }
1608
+ /* The device: an iPhone-sized frame (393 × 852 points) around one app screen. */
1609
+ .device {
1610
+ flex: 0 0 auto;
1611
+ width: 393px;
1612
+ max-width: 100%;
1613
+ height: 852px;
1614
+ padding: 12px;
1615
+ border-radius: 64px;
1616
+ background: linear-gradient(145deg, #3a3d3f, #121314 40%, #2a2c2e);
1617
+ box-shadow: 0 0 0 2px #0a0a0a, 0 30px 60px -20px #000a, inset 0 0 0 1px #ffffff14;
1618
+ }
1619
+ .device-screen {
1620
+ position: relative;
1621
+ display: flex;
1622
+ flex-direction: column;
1623
+ height: 100%;
1624
+ border-radius: 52px;
1625
+ overflow: hidden;
1626
+ }
1627
+ .device-status {
1628
+ display: grid;
1629
+ grid-template-columns: 1fr auto 1fr;
1630
+ align-items: center;
1631
+ height: 54px;
1632
+ padding: 0 30px;
1633
+ font-size: 15px;
1634
+ font-weight: 600;
1635
+ }
1636
+ .device-status > span:last-child {
1637
+ justify-self: end;
1638
+ font-size: 11px;
1639
+ letter-spacing: 1px;
1640
+ }
1641
+ .device-island {
1642
+ width: 122px;
1643
+ height: 36px;
1644
+ border-radius: 20px;
1645
+ background: #000;
1646
+ }
1647
+ .device-body {
1648
+ flex: 1;
1649
+ overflow-y: auto;
1650
+ padding: 8px 16px 16px;
1651
+ scrollbar-width: none;
1652
+ }
1653
+ .device-body::-webkit-scrollbar {
1654
+ display: none;
1655
+ }
1656
+ .device-header {
1657
+ display: flex;
1658
+ align-items: center;
1659
+ gap: 10px;
1660
+ margin-bottom: 14px;
1661
+ }
1662
+ .device-header > div {
1663
+ display: flex;
1664
+ flex: 1;
1665
+ flex-direction: column;
1666
+ min-width: 0;
1667
+ }
1668
+ .device-header strong {
1669
+ font-size: 17px;
1670
+ }
1671
+ .device-header .muted {
1672
+ font-size: 11px;
1673
+ }
1674
+ .device-app-logo {
1675
+ width: 30px;
1676
+ height: 30px;
1677
+ }
1678
+ .device-computer {
1679
+ max-width: 130px;
1680
+ padding: 6px 10px;
1681
+ border: 1px solid var(--phone-border);
1682
+ border-radius: 16px;
1683
+ overflow: hidden;
1684
+ white-space: nowrap;
1685
+ text-overflow: ellipsis;
1686
+ font-size: 12px;
1687
+ font-weight: 600;
1688
+ }
1689
+ .device-voice {
1690
+ display: flex;
1691
+ flex-direction: column;
1692
+ align-items: center;
1693
+ gap: 10px;
1694
+ margin-bottom: 14px;
1695
+ padding: 18px 12px 14px;
1696
+ border: 1px solid var(--phone-border);
1697
+ border-radius: 22px;
1698
+ background: var(--phone-surface);
1699
+ }
1700
+ .device-wave {
1701
+ display: flex;
1702
+ align-items: center;
1703
+ gap: 3px;
1704
+ height: 36px;
1705
+ }
1706
+ .device-wave i {
1707
+ width: 3px;
1708
+ height: 30%;
1709
+ border-radius: 2px;
1710
+ background: var(--phone-muted);
1711
+ }
1712
+ .device-wave i:nth-child(3n) {
1713
+ height: 70%;
1714
+ }
1715
+ .device-wave i:nth-child(4n + 1) {
1716
+ height: 100%;
1717
+ }
1718
+ .device-wave i:nth-child(5n + 2) {
1719
+ height: 50%;
1720
+ }
1721
+ .device-dock {
1722
+ display: grid;
1723
+ grid-template-columns: 1fr 1fr;
1724
+ gap: 10px;
1725
+ padding: 10px 16px 6px;
1726
+ background: var(--phone-bg);
1727
+ }
1728
+ .device-dock span {
1729
+ padding: 13px 0;
1730
+ border-radius: 22px;
1731
+ text-align: center;
1732
+ font-weight: 700;
1733
+ font-size: 14px;
1734
+ }
1735
+ .device-dock-primary {
1736
+ background: #7b5f27;
1737
+ color: var(--phone-text);
1738
+ }
1739
+ .device-dock-secondary {
1740
+ border: 1px solid var(--phone-border);
1741
+ }
1742
+ .device-home {
1743
+ width: 134px;
1744
+ height: 5px;
1745
+ margin: 8px auto 8px;
1746
+ border-radius: 3px;
1747
+ background: var(--phone-text);
1748
+ }
1749
+ .device-nav {
1750
+ display: flex;
1751
+ justify-content: space-between;
1752
+ align-items: center;
1753
+ margin-bottom: 14px;
1754
+ color: #feb93e;
1755
+ font-size: 15px;
1756
+ }
1757
+ .device-back {
1758
+ padding: 0;
1759
+ border: 0;
1760
+ background: none;
1761
+ color: inherit;
1762
+ font: inherit;
1763
+ cursor: pointer;
1764
+ }
1765
+ .phone-logo.phone-logo-large {
1766
+ width: 48px;
1767
+ height: 48px;
1768
+ font-size: 34px;
1769
+ border-radius: 12px;
1770
+ }
1771
+ .phone-tile.draft {
1772
+ border-color: #feb93e;
1773
+ box-shadow: 0 0 0 2px #feb93e33;
1774
+ }
1775
+ .preview-pair {
1776
+ display: flex;
1777
+ flex-wrap: wrap;
1778
+ gap: 32px;
1779
+ align-items: flex-start;
1780
+ }
1781
+ .draft-banner {
1782
+ margin-bottom: 20px;
1783
+ border-color: #feb93e80;
1784
+ }
1785
+ .pack-preview .device {
1786
+ width: 360px;
1787
+ height: 780px;
1788
+ }
1789
+ .preview-layout {
1790
+ display: flex;
1791
+ flex-wrap: wrap;
1792
+ align-items: flex-start;
1793
+ gap: 24px;
1794
+ }
1795
+ .preview-side {
1796
+ display: flex;
1797
+ flex-direction: column;
1798
+ gap: 16px;
1799
+ }
1800
+ .preview-device {
1801
+ max-width: 320px;
1802
+ }
1803
+
1804
+ /* One pack's page: settings on the left, its widget as the phone shows it on the right. */
1805
+ .pack-page-head {
1806
+ display: flex;
1807
+ justify-content: space-between;
1808
+ gap: 24px;
1809
+ align-items: flex-start;
1810
+ }
1811
+ .pack-page-grid {
1812
+ display: grid;
1813
+ grid-template-columns: minmax(0, 1fr) 360px;
1814
+ gap: 24px;
1815
+ align-items: start;
1816
+ }
1817
+ .pack-preview {
1818
+ position: sticky;
1819
+ top: 16px;
1820
+ display: flex;
1821
+ flex-direction: column;
1822
+ gap: 16px;
1823
+ }
1824
+ .tool-table {
1825
+ width: 100%;
1826
+ border-collapse: collapse;
1827
+ font-size: 13.5px;
1828
+ }
1829
+ .tool-table th,
1830
+ .tool-table td {
1831
+ padding: 8px 6px;
1832
+ border-top: 1px solid var(--border);
1833
+ text-align: left;
1834
+ vertical-align: top;
1835
+ }
1836
+ .tool-table th {
1837
+ border-top: 0;
1838
+ color: var(--muted);
1839
+ font-weight: 600;
1840
+ }
1841
+ .plain-list {
1842
+ margin: 0;
1843
+ padding: 0;
1844
+ list-style: none;
1845
+ }
1846
+ .plain-list li + li {
1847
+ margin-top: 10px;
1848
+ }
1849
+ pre.skill {
1850
+ max-height: 420px;
1851
+ overflow: auto;
1852
+ padding: 12px;
1853
+ border-radius: 10px;
1854
+ background: var(--raised);
1855
+ white-space: pre-wrap;
1856
+ font-size: 12.5px;
1857
+ }
1858
+ @media (max-width: 1100px) {
1859
+ .pack-page-grid {
1860
+ grid-template-columns: minmax(0, 1fr);
1861
+ }
1862
+ .pack-preview {
1863
+ position: static;
1864
+ }
1865
+ }
1866
+
1867
+ /* Guide: a contents list beside the text, with tables, code, and framed screenshots. */
1868
+ .guide-layout {
1869
+ display: grid;
1870
+ grid-template-columns: 200px minmax(0, 1fr);
1871
+ gap: 32px;
1872
+ align-items: start;
1873
+ margin-top: 8px;
1874
+ }
1875
+ .guide-contents {
1876
+ position: sticky;
1877
+ top: 16px;
1878
+ display: flex;
1879
+ flex-direction: column;
1880
+ gap: 8px;
1881
+ font-size: 13.5px;
1882
+ }
1883
+ .guide .guide-contents a {
1884
+ color: var(--muted);
1885
+ font-weight: 500;
1886
+ text-decoration: none;
1887
+ }
1888
+ .guide .guide-contents a:hover {
1889
+ color: var(--text);
1890
+ }
1891
+ .guide-body {
1892
+ max-width: 820px;
1893
+ line-height: 1.6;
1894
+ }
1895
+ .guide-body h2,
1896
+ .guide-body h3 {
1897
+ margin: 36px 0 10px;
1898
+ scroll-margin-top: 16px;
1899
+ }
1900
+ .guide-body h2:first-child {
1901
+ margin-top: 0;
1902
+ }
1903
+ .guide-body h4,
1904
+ .guide-body h5 {
1905
+ margin: 24px 0 8px;
1906
+ scroll-margin-top: 16px;
1907
+ }
1908
+ .guide-body p,
1909
+ .guide-body li {
1910
+ color: var(--text);
1911
+ }
1912
+ .guide-body ul,
1913
+ .guide-body ol {
1914
+ padding-left: 22px;
1915
+ }
1916
+ .guide-body li + li {
1917
+ margin-top: 6px;
1918
+ }
1919
+ .guide-body code {
1920
+ padding: 1px 5px;
1921
+ border-radius: 5px;
1922
+ background: var(--raised);
1923
+ font-size: 0.9em;
1924
+ }
1925
+ .guide-code {
1926
+ overflow-x: auto;
1927
+ padding: 14px;
1928
+ border-radius: 10px;
1929
+ background: var(--raised);
1930
+ font-size: 12.5px;
1931
+ line-height: 1.5;
1932
+ }
1933
+ .guide-code code {
1934
+ padding: 0;
1935
+ background: none;
1936
+ }
1937
+ .guide-table {
1938
+ overflow-x: auto;
1939
+ margin: 12px 0;
1940
+ }
1941
+ .guide-table table {
1942
+ width: 100%;
1943
+ border-collapse: collapse;
1944
+ font-size: 13.5px;
1945
+ }
1946
+ .guide-table th,
1947
+ .guide-table td {
1948
+ padding: 8px 10px;
1949
+ border-top: 1px solid var(--border);
1950
+ text-align: left;
1951
+ vertical-align: top;
1952
+ }
1953
+ .guide-table th {
1954
+ border-top: 0;
1955
+ color: var(--muted);
1956
+ font-weight: 600;
1957
+ }
1958
+ .guide-figure {
1959
+ margin: 18px 0 24px;
1960
+ }
1961
+ .guide-figure img {
1962
+ display: block;
1963
+ max-width: 100%;
1964
+ max-height: 620px;
1965
+ }
1966
+ .guide-figure.framed img {
1967
+ border: 1px solid var(--border);
1968
+ border-radius: 14px;
1969
+ box-shadow: var(--shadow);
1970
+ }
1971
+ .guide-figures {
1972
+ display: flex;
1973
+ flex-wrap: wrap;
1974
+ gap: 24px;
1975
+ align-items: flex-start;
1976
+ }
1977
+ .guide-figures .guide-figure {
1978
+ flex: 1 1 0;
1979
+ min-width: 220px;
1980
+ max-width: 360px;
1981
+ margin: 18px 0 8px;
1982
+ }
1983
+ .guide-figures .guide-figure img {
1984
+ width: 100%;
1985
+ height: auto;
1986
+ }
1987
+ .guide-figure figcaption {
1988
+ margin-top: 8px;
1989
+ color: var(--muted);
1990
+ font-size: 13px;
1991
+ }
1992
+ @media (max-width: 1000px) {
1993
+ .guide-layout {
1994
+ grid-template-columns: minmax(0, 1fr);
1995
+ }
1996
+ .guide-contents {
1997
+ position: static;
1998
+ flex-direction: row;
1999
+ flex-wrap: wrap;
2000
+ }
2001
+ }
2002
+
2003
+ /* Library pack pages: who stands behind a pack, and confirming a community one before installing. */
2004
+ .trust-notice {
2005
+ margin: 16px 0;
2006
+ }
2007
+ .trust-notice p {
2008
+ margin: 6px 0 0;
2009
+ }
2010
+ .trust-notice.community {
2011
+ border-color: #ff7a6880;
2012
+ background: #ff7a6814;
2013
+ }
2014
+ .trust-notice.community strong {
2015
+ color: #ff9a8a;
2016
+ }
2017
+ .library-install {
2018
+ align-items: center;
2019
+ flex-wrap: wrap;
2020
+ gap: 14px;
2021
+ margin-bottom: 20px;
2022
+ }
2023
+ .confirm-line {
2024
+ display: flex;
2025
+ align-items: center;
2026
+ gap: 8px;
2027
+ font-weight: 500;
2028
+ }