@expressivecss/expressive 0.2.0 → 0.3.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 (37) hide show
  1. package/README.md +8 -8
  2. package/dist/css/expressive.css +1038 -361
  3. package/dist/css/expressive.css.map +1 -1
  4. package/dist/css/expressive.min.css +1 -1
  5. package/dist/css/expressive.min.css.map +1 -1
  6. package/dist/js/expressive.cjs +708 -746
  7. package/dist/js/expressive.cjs.map +3 -3
  8. package/dist/js/expressive.js +708 -746
  9. package/dist/js/expressive.js.map +3 -3
  10. package/dist/js/expressive.min.js +10 -10
  11. package/dist/js/expressive.min.js.map +3 -3
  12. package/dist/js/expressive.mjs +708 -746
  13. package/dist/js/expressive.mjs.map +3 -3
  14. package/dist/types/components/buttons.d.ts +17 -41
  15. package/dist/types/components/carousel.d.ts +40 -46
  16. package/dist/types/components/chips.d.ts +2 -2
  17. package/dist/types/components/collapsible.d.ts +35 -13
  18. package/dist/types/components/parallax.d.ts +7 -31
  19. package/dist/types/components/tapTarget.d.ts +23 -24
  20. package/dist/types/index.d.ts +1 -1
  21. package/package.json +1 -1
  22. package/src/sass/README.md +4 -3
  23. package/src/sass/components/_badges.scss +5 -4
  24. package/src/sass/components/_breadcrumb.scss +93 -16
  25. package/src/sass/components/_buttons.scss +195 -96
  26. package/src/sass/components/_carousel.scss +130 -63
  27. package/src/sass/components/_chips.scss +1 -1
  28. package/src/sass/components/_collapsible.scss +160 -60
  29. package/src/sass/components/_collection.scss +161 -77
  30. package/src/sass/components/_icons-material-design.scss +77 -4
  31. package/src/sass/components/_lightbox.scss +4 -0
  32. package/src/sass/components/_navbar.scss +15 -0
  33. package/src/sass/components/_pagination.scss +131 -25
  34. package/src/sass/components/_parallax.scss +116 -20
  35. package/src/sass/components/_sidenav.scss +10 -5
  36. package/src/sass/components/_slider.scss +8 -0
  37. package/src/sass/components/_tapTarget.scss +134 -47
@@ -1461,15 +1461,15 @@
1461
1461
  :where(button:not(.datepicker-day-button, .month-prev, .month-next, .indicator-item-btn), a.button, .btn, .btn-flat, .btn-large, .btn-small).large.circle.halfway-fab,
1462
1462
  :where(button:not(.datepicker-day-button, .month-prev, .month-next, .indicator-item-btn), a.button, .btn, .btn-flat, .btn-large, .btn-small).btn-large.circle.halfway-fab {
1463
1463
  position: absolute;
1464
- right: 24px;
1464
+ inset-inline-end: 24px;
1465
1465
  bottom: -28px;
1466
1466
  }
1467
1467
  .btn-floating.halfway-fab.left,
1468
1468
  :where(button:not(.datepicker-day-button, .month-prev, .month-next, .indicator-item-btn), a.button, .btn, .btn-flat, .btn-large, .btn-small).extra.circle.halfway-fab.left,
1469
1469
  :where(button:not(.datepicker-day-button, .month-prev, .month-next, .indicator-item-btn), a.button, .btn, .btn-flat, .btn-large, .btn-small).large.circle.halfway-fab.left,
1470
1470
  :where(button:not(.datepicker-day-button, .month-prev, .month-next, .indicator-item-btn), a.button, .btn, .btn-flat, .btn-large, .btn-small).btn-large.circle.halfway-fab.left {
1471
- right: auto;
1472
- left: 24px;
1471
+ inset-inline-end: auto;
1472
+ inset-inline-start: 24px;
1473
1473
  }
1474
1474
  .btn-floating:not(.large, .btn-large, .extra, .small, .btn-small) {
1475
1475
  width: 40px;
@@ -1494,207 +1494,401 @@
1494
1494
  cursor: default;
1495
1495
  }
1496
1496
  .fixed-action-btn {
1497
+ --md-comp-fab-offset: 16px;
1498
+ --md-comp-fab-z: 997;
1499
+ --md-comp-fab-menu-gap: 16px;
1500
+ --md-comp-fab-duration: 200ms;
1501
+ --md-comp-fab-stagger: 40ms;
1502
+ --md-comp-fab-easing: cubic-bezier(0.65, 0, 0.35, 1);
1503
+ --md-comp-fab-travel: 64px;
1504
+ --md-comp-fab-hidden-transform: scale(0)
1505
+ translateY(calc(var(--md-comp-fab-travel) * (var(--i, 0) + 1)));
1497
1506
  position: fixed;
1498
- right: 23px;
1499
- bottom: 23px;
1500
- padding-top: 15px;
1501
- margin-bottom: 0;
1502
- z-index: 997;
1507
+ inset-inline-end: var(--md-comp-fab-offset);
1508
+ bottom: var(--md-comp-fab-offset);
1509
+ z-index: var(--md-comp-fab-z);
1510
+ padding-top: var(--md-comp-fab-menu-gap);
1511
+ margin: 0;
1512
+ overflow: visible;
1513
+ }
1514
+ .fixed-action-btn > :is(a, button) {
1515
+ position: relative;
1516
+ z-index: 1;
1517
+ }
1518
+ .fixed-action-btn :is(ul, menu) {
1519
+ --n: 1;
1520
+ position: absolute;
1521
+ inset-inline: 0;
1522
+ bottom: 64px;
1523
+ display: flex;
1524
+ flex-direction: column;
1525
+ align-items: center;
1526
+ gap: var(--md-comp-fab-menu-gap);
1527
+ margin: 0;
1528
+ padding: 0;
1529
+ list-style: none;
1530
+ visibility: hidden;
1531
+ overflow: visible;
1532
+ transition: visibility 0s calc(var(--md-comp-fab-duration) + var(--md-comp-fab-stagger) * (var(--n) - 1));
1533
+ }
1534
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(2)) {
1535
+ --n: 2;
1536
+ }
1537
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(3)) {
1538
+ --n: 3;
1539
+ }
1540
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(4)) {
1541
+ --n: 4;
1542
+ }
1543
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(5)) {
1544
+ --n: 5;
1503
1545
  }
1504
- .fixed-action-btn.active ul {
1546
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(6)) {
1547
+ --n: 6;
1548
+ }
1549
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(7)) {
1550
+ --n: 7;
1551
+ }
1552
+ .fixed-action-btn :is(ul, menu):has(> :nth-child(8)) {
1553
+ --n: 8;
1554
+ }
1555
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(1) {
1556
+ --i: 0;
1557
+ }
1558
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(2) {
1559
+ --i: 1;
1560
+ }
1561
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(3) {
1562
+ --i: 2;
1563
+ }
1564
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(4) {
1565
+ --i: 3;
1566
+ }
1567
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(5) {
1568
+ --i: 4;
1569
+ }
1570
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(6) {
1571
+ --i: 5;
1572
+ }
1573
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(7) {
1574
+ --i: 6;
1575
+ }
1576
+ .fixed-action-btn :is(ul, menu) li:nth-last-child(8) {
1577
+ --i: 7;
1578
+ }
1579
+ .fixed-action-btn :is(ul, menu) :is(a, button) {
1580
+ opacity: 0;
1581
+ transform: var(--md-comp-fab-hidden-transform);
1582
+ transition: opacity var(--md-comp-fab-duration) var(--md-comp-fab-easing), transform var(--md-comp-fab-duration) var(--md-comp-fab-easing);
1583
+ transition-delay: calc(var(--md-comp-fab-stagger) * (var(--n) - 1 - var(--i, 0)));
1584
+ }
1585
+ .fixed-action-btn.active :is(ul, menu) {
1505
1586
  visibility: visible;
1506
- padding-left: 0;
1507
- list-style-type: none;
1587
+ transition-delay: 0s;
1588
+ }
1589
+ .fixed-action-btn.active :is(ul, menu) :is(a, button) {
1590
+ opacity: 1;
1591
+ transform: none;
1592
+ transition-delay: calc(var(--md-comp-fab-stagger) * var(--i, 0));
1593
+ }
1594
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(1), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(1), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(1) {
1595
+ --i: 0;
1596
+ }
1597
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(2), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(2), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(2) {
1598
+ --i: 1;
1599
+ }
1600
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(3), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(3), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(3) {
1601
+ --i: 2;
1602
+ }
1603
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(4), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(4), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(4) {
1604
+ --i: 3;
1605
+ }
1606
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(5), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(5), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(5) {
1607
+ --i: 4;
1608
+ }
1609
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(6), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(6), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(6) {
1610
+ --i: 5;
1611
+ }
1612
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(7), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(7), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(7) {
1613
+ --i: 6;
1614
+ }
1615
+ .fixed-action-btn.direction-left :is(ul, menu) li:nth-child(8), .fixed-action-btn.direction-right :is(ul, menu) li:nth-child(8), .fixed-action-btn.direction-bottom :is(ul, menu) li:nth-child(8) {
1616
+ --i: 7;
1508
1617
  }
1509
1618
  .fixed-action-btn.direction-left, .fixed-action-btn.direction-right {
1510
- padding: 0 0 0 15px;
1619
+ padding: 0;
1511
1620
  }
1512
- .fixed-action-btn.direction-left ul, .fixed-action-btn.direction-right ul {
1513
- text-align: right;
1514
- right: 64px;
1621
+ .fixed-action-btn.direction-left :is(ul, menu), .fixed-action-btn.direction-right :is(ul, menu) {
1622
+ inset: auto;
1515
1623
  top: 50%;
1516
- transform: translateY(-50%);
1517
- height: 100%;
1518
- left: auto;
1519
- width: 500px;
1624
+ translate: 0 -50%;
1625
+ flex-direction: row;
1626
+ width: max-content;
1627
+ height: auto;
1520
1628
  }
1521
- .fixed-action-btn.direction-left ul li, .fixed-action-btn.direction-right ul li {
1522
- display: inline-block;
1523
- margin: 7.5px 15px 0 0;
1629
+ .fixed-action-btn.direction-left {
1630
+ --md-comp-fab-hidden-transform: scale(0)
1631
+ translateX(calc(var(--md-comp-fab-travel) * (var(--i, 0) + 1)));
1632
+ padding-inline-start: var(--md-comp-fab-menu-gap);
1524
1633
  }
1525
- .fixed-action-btn.direction-right {
1526
- padding: 0 15px 0 0;
1634
+ .fixed-action-btn.direction-left :is(ul, menu) {
1635
+ inset-inline-end: 64px;
1636
+ flex-direction: row-reverse;
1527
1637
  }
1528
- .fixed-action-btn.direction-right ul {
1529
- text-align: left;
1530
- direction: rtl;
1531
- left: 64px;
1532
- right: auto;
1638
+ .fixed-action-btn.direction-right {
1639
+ --md-comp-fab-hidden-transform: scale(0)
1640
+ translateX(calc(-1 * var(--md-comp-fab-travel) * (var(--i, 0) + 1)));
1641
+ padding-inline-end: var(--md-comp-fab-menu-gap);
1533
1642
  }
1534
- .fixed-action-btn.direction-right ul li {
1535
- margin: 7.5px 0 0 15px;
1643
+ .fixed-action-btn.direction-right :is(ul, menu) {
1644
+ inset-inline-start: 64px;
1536
1645
  }
1537
1646
  .fixed-action-btn.direction-bottom {
1538
- padding: 0 0 15px 0;
1647
+ --md-comp-fab-hidden-transform: scale(0)
1648
+ translateY(calc(-1 * var(--md-comp-fab-travel) * (var(--i, 0) + 1)));
1649
+ padding: 0 0 var(--md-comp-fab-menu-gap);
1539
1650
  }
1540
- .fixed-action-btn.direction-bottom ul {
1651
+ .fixed-action-btn.direction-bottom :is(ul, menu) {
1652
+ inset: auto;
1541
1653
  top: 64px;
1542
1654
  bottom: auto;
1543
- display: flex;
1544
- flex-direction: column-reverse;
1545
- }
1546
- .fixed-action-btn.direction-bottom ul li {
1547
- margin: 15px 0 0 0;
1655
+ inset-inline: 0;
1548
1656
  }
1549
1657
  .fixed-action-btn.toolbar {
1550
1658
  padding: 0;
1551
1659
  height: 56px;
1552
1660
  }
1553
- .fixed-action-btn.toolbar.active > a i, .fixed-action-btn.toolbar.active > button i {
1661
+ .fixed-action-btn.toolbar :is(ul, menu) :is(a, button) {
1662
+ opacity: 1;
1663
+ transform: none;
1664
+ transition: opacity var(--md-comp-fab-duration);
1665
+ }
1666
+ .fixed-action-btn.toolbar.active {
1667
+ inset-inline: 0;
1668
+ bottom: 0;
1669
+ width: 100%;
1670
+ height: 56px;
1671
+ }
1672
+ .fixed-action-btn.toolbar.active > :is(a, button) > i {
1554
1673
  opacity: 0;
1555
1674
  }
1556
- .fixed-action-btn.toolbar ul {
1675
+ .fixed-action-btn.toolbar.active :is(ul, menu) {
1676
+ visibility: visible;
1677
+ position: static;
1557
1678
  display: flex;
1558
- top: 0;
1559
- bottom: 0;
1560
- z-index: 1;
1679
+ flex-direction: row;
1680
+ width: 100%;
1681
+ height: 100%;
1682
+ gap: 0;
1561
1683
  }
1562
- .fixed-action-btn.toolbar ul li {
1684
+ .fixed-action-btn.toolbar :is(ul, menu) li {
1563
1685
  flex: 1;
1564
- display: inline-block;
1565
1686
  margin: 0;
1566
1687
  height: 100%;
1567
- transition: none;
1568
1688
  }
1569
- .fixed-action-btn.toolbar ul li a,
1570
- .fixed-action-btn.toolbar ul li button {
1571
- display: block;
1572
- overflow: hidden;
1573
- position: relative;
1689
+ .fixed-action-btn.toolbar :is(ul, menu) li :is(a, button) {
1690
+ display: grid;
1691
+ place-items: center;
1574
1692
  width: 100%;
1575
1693
  height: 100%;
1576
- background-color: transparent;
1694
+ background: transparent;
1577
1695
  box-shadow: none;
1578
1696
  color: var(--md-sys-color-on-primary-container);
1579
- line-height: 56px;
1580
- z-index: 1;
1581
- }
1582
- .fixed-action-btn.toolbar ul li a i,
1583
- .fixed-action-btn.toolbar ul li button i {
1584
- line-height: inherit;
1585
- }
1586
- .fixed-action-btn ul {
1587
- left: 0;
1588
- right: 0;
1589
- text-align: center;
1590
- position: absolute;
1591
- bottom: 64px;
1592
- margin: 0;
1593
- visibility: hidden;
1594
- }
1595
- .fixed-action-btn ul li {
1596
- margin-bottom: 15px;
1597
- }
1598
- .fixed-action-btn ul a.btn-floating,
1599
- .fixed-action-btn ul button.btn-floating {
1600
- opacity: 0;
1601
1697
  }
1602
1698
  .fixed-action-btn .fab-backdrop {
1603
1699
  position: absolute;
1604
- top: 0;
1605
- left: 0;
1700
+ inset: 0 auto auto 0;
1606
1701
  z-index: -1;
1607
1702
  width: 56px;
1608
1703
  height: 56px;
1609
- background-color: var(--md-sys-color-primary-container);
1610
1704
  border-radius: 16px;
1705
+ background-color: var(--md-sys-color-primary-container);
1611
1706
  transform: scale(0);
1612
1707
  }
1708
+ @media (hover: hover) {
1709
+ .fixed-action-btn:not(.click-to-toggle):hover :is(ul, menu) {
1710
+ visibility: visible;
1711
+ transition-delay: 0s;
1712
+ }
1713
+ .fixed-action-btn:not(.click-to-toggle):hover :is(ul, menu) :is(a, button) {
1714
+ opacity: 1;
1715
+ transform: none;
1716
+ transition-delay: calc(var(--md-comp-fab-stagger) * var(--i, 0));
1717
+ }
1718
+ }
1719
+ @media (prefers-reduced-motion: reduce) {
1720
+ .fixed-action-btn {
1721
+ --md-comp-fab-duration: 0s;
1722
+ --md-comp-fab-stagger: 0s;
1723
+ }
1724
+ }
1613
1725
  .collection {
1614
- padding-left: 0;
1615
- list-style-type: none;
1616
- margin: 0.5rem 0 1rem 0;
1617
- border: 1px solid var(--md-sys-color-outline-variant);
1618
- border-radius: 2px;
1726
+ --md-comp-collection-shape: 12px;
1727
+ --md-comp-collection-container-color: var(--md-sys-color-surface);
1728
+ --md-comp-collection-outline-color: var(--md-sys-color-outline-variant);
1729
+ --md-comp-collection-item-height: 56px;
1730
+ --md-comp-collection-item-padding: 16px;
1731
+ --md-comp-collection-avatar-size: 40px;
1732
+ box-sizing: border-box;
1733
+ padding: 0;
1734
+ margin: 0.5rem 0 1rem;
1619
1735
  overflow: hidden;
1620
- position: relative;
1736
+ list-style: none;
1737
+ border: 1px solid var(--md-comp-collection-outline-color);
1738
+ border-radius: var(--md-comp-collection-shape);
1739
+ background-color: var(--md-comp-collection-container-color);
1740
+ color: var(--md-sys-color-on-surface);
1621
1741
  }
1622
- .collection .collection-item {
1623
- background-color: transparent;
1624
- line-height: 1.5rem;
1625
- padding: 10px 20px;
1626
- margin: 0;
1627
- border-bottom: 1px solid var(--md-sys-color-outline-variant);
1742
+ .collection > * + * {
1743
+ border-top: 1px solid var(--md-comp-collection-outline-color);
1628
1744
  }
1629
- .collection .collection-item.avatar {
1630
- min-height: 84px;
1631
- padding-left: 72px;
1632
- position: relative;
1745
+ .collection > :is(li, a, .collection-item, .collection-header) {
1746
+ display: grid;
1747
+ grid-template-columns: auto 1fr auto;
1748
+ grid-template-rows: auto auto;
1749
+ align-items: center;
1750
+ column-gap: 16px;
1751
+ box-sizing: border-box;
1752
+ min-height: var(--md-comp-collection-item-height);
1753
+ margin: 0;
1754
+ padding: 8px var(--md-comp-collection-item-padding);
1755
+ background-color: transparent;
1756
+ color: inherit;
1757
+ text-decoration: none;
1758
+ transition: background-color 0.2s ease-out;
1633
1759
  }
1634
- .collection .collection-item.avatar:not(.circle-clipper) > .circle,
1635
- .collection .collection-item.avatar :not(.circle-clipper) > .circle {
1636
- position: absolute;
1637
- width: 42px;
1638
- height: 42px;
1760
+ .collection > :is(li, a, .collection-item, .collection-header) > :is(img, i).circle {
1761
+ grid-column: 1;
1762
+ grid-row: 1/-1;
1763
+ box-sizing: border-box;
1764
+ width: var(--md-comp-collection-avatar-size);
1765
+ height: var(--md-comp-collection-avatar-size);
1639
1766
  overflow: hidden;
1640
- left: 15px;
1641
- display: inline-block;
1642
- vertical-align: middle;
1767
+ object-fit: cover;
1643
1768
  }
1644
- .collection .collection-item.avatar i.circle {
1645
- font-size: 18px;
1646
- line-height: 42px;
1647
- color: #fff;
1648
- background-color: var(--md-sys-color-shadow);
1769
+ .collection > :is(li, a, .collection-item, .collection-header) > i.circle {
1770
+ display: inline-flex;
1771
+ align-items: center;
1772
+ justify-content: center;
1773
+ font-size: 20px;
1774
+ line-height: 1;
1775
+ color: var(--md-sys-color-on-primary-container);
1776
+ background-color: var(--md-sys-color-primary-container);
1649
1777
  text-align: center;
1650
1778
  }
1651
- .collection .collection-item.avatar .title {
1652
- font-size: 16px;
1779
+ .collection > :is(li, a, .collection-item, .collection-header) > .title {
1780
+ grid-column: 2;
1781
+ grid-row: 1;
1782
+ min-width: 0;
1783
+ font-family: var(--md-sys-typescale-title-medium-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
1784
+ font-size: var(--md-sys-typescale-title-medium-font-size);
1785
+ font-weight: var(--md-sys-typescale-title-medium-font-weight);
1786
+ line-height: var(--md-sys-typescale-title-medium-line-height);
1787
+ letter-spacing: var(--md-sys-typescale-title-medium-letter-spacing);
1653
1788
  }
1654
- .collection .collection-item.avatar p {
1789
+ .collection > :is(li, a, .collection-item, .collection-header) > p {
1790
+ grid-column: 2;
1791
+ grid-row: 1;
1792
+ min-width: 0;
1655
1793
  margin: 0;
1794
+ color: var(--md-sys-color-on-surface-variant);
1795
+ font-family: var(--md-sys-typescale-body-medium-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
1796
+ font-size: var(--md-sys-typescale-body-medium-font-size);
1797
+ font-weight: var(--md-sys-typescale-body-medium-font-weight);
1798
+ line-height: var(--md-sys-typescale-body-medium-line-height);
1799
+ letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing);
1656
1800
  }
1657
- .collection .collection-item.avatar .secondary-content {
1658
- position: absolute;
1659
- top: 16px;
1660
- right: 16px;
1801
+ .collection > :is(li, a, .collection-item, .collection-header) > .title ~ p {
1802
+ grid-row: 2;
1661
1803
  }
1662
- .collection .collection-item:last-child {
1663
- border-bottom: none;
1804
+ .collection > :is(li, a, .collection-item, .collection-header) > :is(.secondary-content, .badge) {
1805
+ grid-column: 3;
1806
+ grid-row: 1/-1;
1807
+ align-self: center;
1808
+ justify-self: end;
1664
1809
  }
1665
- .collection .collection-item.active {
1666
- background-color: var(--md-sys-color-primary);
1667
- color: var(--md-sys-color-on-primary);
1810
+ .collection > :is(li, a, .collection-item, .collection-header) > a:not(.secondary-content, .btn, .btn-floating, .badge) {
1811
+ grid-column: 1/-1;
1812
+ display: flex;
1813
+ align-items: center;
1814
+ gap: 16px;
1815
+ min-width: 0;
1816
+ color: inherit;
1817
+ text-decoration: none;
1668
1818
  }
1669
- .collection .collection-item.active .secondary-content {
1670
- color: var(--md-sys-color-on-primary);
1819
+ .collection > :is(li, a, .collection-item, .collection-header) > a:not(.secondary-content, .btn, .btn-floating, .badge) > .badge {
1820
+ margin-inline-start: auto;
1671
1821
  }
1672
- .collection a.collection-item {
1673
- display: block;
1674
- transition: 0.25s;
1675
- color: var(--md-sys-color-primary);
1822
+ .collection > :is(li, .collection-item):is(.avatar, :has(> .circle)),
1823
+ .collection > a:has(> .circle) {
1824
+ min-height: 72px;
1676
1825
  }
1677
- .collection a.collection-item:not(.active):hover {
1678
- background-color: rgba(0, 0, 0, 0.04);
1826
+ .collection > :is(.collection-header, li:has(> :is(h1, h2, h3, h4, h5, h6))) {
1827
+ min-height: 0;
1828
+ padding-block: 12px;
1679
1829
  }
1680
- .collection.with-header .collection-header {
1681
- background-color: transparent;
1682
- border-bottom: 1px solid var(--md-sys-color-outline-variant);
1683
- padding: 10px 20px;
1830
+ .collection > :is(.collection-header, li:has(> :is(h1, h2, h3, h4, h5, h6))) > :is(h1, h2, h3, h4, h5, h6) {
1831
+ grid-column: 1/-1;
1832
+ margin: 0;
1833
+ font-family: var(--md-sys-typescale-title-medium-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
1834
+ font-size: var(--md-sys-typescale-title-medium-font-size);
1835
+ font-weight: var(--md-sys-typescale-title-medium-font-weight);
1836
+ line-height: var(--md-sys-typescale-title-medium-line-height);
1837
+ letter-spacing: var(--md-sys-typescale-title-medium-letter-spacing);
1684
1838
  }
1685
- .collection.with-header .collection-item {
1686
- padding-left: 30px;
1839
+ .collection > a:focus-visible,
1840
+ .collection > li > a:not(.secondary-content, .btn, .btn-floating):focus-visible {
1841
+ outline: 3px solid var(--md-sys-color-secondary);
1842
+ outline-offset: 2px;
1687
1843
  }
1688
- .collection.with-header .collection-item.avatar {
1689
- padding-left: 72px;
1844
+ .collection > a:hover,
1845
+ .collection > li:has(> a:not(.secondary-content, .btn, .btn-floating):hover) {
1846
+ background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 8%, transparent);
1690
1847
  }
1691
- .secondary-content {
1692
- float: right;
1848
+ .collection > :is(.active, [aria-current=page]),
1849
+ .collection > li:has(> [aria-current=page]) {
1850
+ background-color: var(--md-sys-color-secondary-container);
1851
+ color: var(--md-sys-color-on-secondary-container);
1852
+ }
1853
+ .collection > :is(.active, [aria-current=page]) .secondary-content:not(.btn, .btn-floating),
1854
+ .collection > li:has(> [aria-current=page]) .secondary-content:not(.btn, .btn-floating) {
1855
+ color: var(--md-sys-color-on-secondary-container);
1856
+ }
1857
+ .collection > :is(.active, [aria-current=page]) span.badge:not(.new),
1858
+ .collection > li:has(> [aria-current=page]) span.badge:not(.new) {
1859
+ color: var(--md-sys-color-on-secondary-container);
1860
+ }
1861
+ .collection > :is(.disabled, [aria-disabled=true]) {
1862
+ pointer-events: none;
1863
+ color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
1864
+ }
1865
+ .collection .secondary-content {
1866
+ float: none;
1867
+ margin-inline-start: auto;
1868
+ }
1869
+ .collection .secondary-content:focus-visible {
1870
+ outline: 3px solid var(--md-sys-color-secondary);
1871
+ outline-offset: 2px;
1872
+ }
1873
+ .collection .secondary-content:not(.btn, .btn-floating) {
1874
+ color: var(--md-sys-color-primary);
1875
+ }
1876
+ .collection span.badge {
1877
+ float: none;
1878
+ margin-block: 0;
1879
+ margin-inline-start: auto;
1880
+ }
1881
+ .collection.flush {
1882
+ border: 0;
1883
+ border-radius: 0;
1884
+ }
1885
+ .secondary-content:not(.btn, .btn-floating) {
1693
1886
  color: var(--md-sys-color-primary);
1694
1887
  }
1695
1888
  .collapsible .collection {
1696
1889
  margin: 0;
1697
1890
  border: none;
1891
+ border-radius: 0;
1698
1892
  }
1699
1893
  :root {
1700
1894
  --bagde-height: 22px;
@@ -1735,8 +1929,10 @@
1735
1929
  height: var(--bagde-height);
1736
1930
  -webkit-font-smoothing: auto;
1737
1931
  }
1738
- .collection-item span.badge {
1739
- margin-top: calc(0.75rem - var(--bagde-height) * 0.5);
1932
+ .collection span.badge {
1933
+ float: none;
1934
+ margin-block: 0;
1935
+ margin-inline-start: auto;
1740
1936
  }
1741
1937
  .collapsible span.badge {
1742
1938
  margin-left: auto;
@@ -1745,7 +1941,7 @@
1745
1941
  margin-right: 7px;
1746
1942
  order: -1;
1747
1943
  }
1748
- .collapsible .active span.badge:not(.new) {
1944
+ .collapsible :is(.active, [open]) span.badge:not(.new) {
1749
1945
  color: var(--md-sys-color-on-surface-variant);
1750
1946
  }
1751
1947
  .sidenav span.badge {
@@ -1756,11 +1952,70 @@
1756
1952
  float: none;
1757
1953
  margin-left: auto;
1758
1954
  }
1759
- /* This is needed for some mobile phones to display the Google Icon font properly */
1760
- .material-icons, .material-symbols-outlined,
1761
- .material-symbols-rounded, .material-symbols-sharp {
1955
+ :root {
1956
+ --md-icon-font-outlined: "Material Symbols Outlined";
1957
+ --md-icon-font-rounded: "Material Symbols Rounded";
1958
+ --md-icon-font-sharp: "Material Symbols Sharp";
1959
+ --md-icon-font: var(--md-icon-font-outlined);
1960
+ --md-icon-fill: 0;
1961
+ --md-icon-weight: 400;
1962
+ --md-icon-grade: 0;
1963
+ --md-icon-optical-size: 24;
1964
+ }
1965
+ [icon-style=outlined] {
1966
+ --md-icon-font: var(--md-icon-font-outlined);
1967
+ }
1968
+ [icon-style=rounded] {
1969
+ --md-icon-font: var(--md-icon-font-rounded);
1970
+ }
1971
+ [icon-style=sharp] {
1972
+ --md-icon-font: var(--md-icon-font-sharp);
1973
+ }
1974
+ .material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons {
1975
+ display: inline-block;
1976
+ font-family: var(--md-icon-font);
1977
+ font-weight: normal;
1978
+ font-style: normal;
1979
+ font-size: 24px;
1980
+ line-height: 1;
1981
+ letter-spacing: normal;
1982
+ text-transform: none;
1983
+ white-space: nowrap;
1984
+ word-wrap: normal;
1985
+ direction: ltr;
1986
+ user-select: none;
1762
1987
  text-rendering: optimizeLegibility;
1763
1988
  font-feature-settings: "liga";
1989
+ -webkit-font-smoothing: antialiased;
1990
+ font-variation-settings: "FILL" var(--md-icon-fill), "wght" var(--md-icon-weight), "GRAD" var(--md-icon-grade), "opsz" var(--md-icon-optical-size);
1991
+ }
1992
+ .material-symbols.tiny, .material-symbols-outlined.tiny, .material-symbols-rounded.tiny, .material-symbols-sharp.tiny, .material-icons.tiny {
1993
+ font-size: 1rem;
1994
+ --md-icon-optical-size: 20;
1995
+ }
1996
+ .material-symbols.small, .material-symbols-outlined.small, .material-symbols-rounded.small, .material-symbols-sharp.small, .material-icons.small {
1997
+ font-size: 2rem;
1998
+ --md-icon-optical-size: 24;
1999
+ }
2000
+ .material-symbols.medium, .material-symbols-outlined.medium, .material-symbols-rounded.medium, .material-symbols-sharp.medium, .material-icons.medium {
2001
+ font-size: 4rem;
2002
+ --md-icon-optical-size: 40;
2003
+ }
2004
+ .material-symbols.large, .material-symbols-outlined.large, .material-symbols-rounded.large, .material-symbols-sharp.large, .material-icons.large {
2005
+ font-size: 6rem;
2006
+ --md-icon-optical-size: 48;
2007
+ }
2008
+ .material-symbols-outlined {
2009
+ --md-icon-font: var(--md-icon-font-outlined);
2010
+ }
2011
+ .material-symbols-rounded {
2012
+ --md-icon-font: var(--md-icon-font-rounded);
2013
+ }
2014
+ .material-symbols-sharp {
2015
+ --md-icon-font: var(--md-icon-font-sharp);
2016
+ }
2017
+ .icon-filled {
2018
+ --md-icon-fill: 1;
1764
2019
  }
1765
2020
  header:has(> nav) {
1766
2021
  --md-comp-top-app-bar-container-color: var(--md-sys-color-surface);
@@ -1851,6 +2106,17 @@
1851
2106
  display: flex;
1852
2107
  align-items: stretch;
1853
2108
  }
2109
+ header:has(> nav) > nav:not(.tabs) > ol {
2110
+ display: flex;
2111
+ flex-wrap: wrap;
2112
+ align-items: center;
2113
+ align-self: center;
2114
+ flex: 1 1 auto;
2115
+ min-width: 0;
2116
+ list-style: none;
2117
+ margin: 0;
2118
+ padding-inline: 12px;
2119
+ }
1854
2120
  header:has(> nav) > nav:not(.tabs) > form {
1855
2121
  display: flex;
1856
2122
  flex: 1 1 auto;
@@ -3334,68 +3600,132 @@
3334
3600
  border-radius: var(--md-comp-basic-dialog-container-shape) 0 0 var(--md-comp-basic-dialog-container-shape);
3335
3601
  }
3336
3602
  .collapsible {
3337
- padding-left: 0;
3338
- list-style-type: none;
3339
- border-top: 1px solid var(--md-sys-color-outline-variant);
3340
- border-right: 1px solid var(--md-sys-color-outline-variant);
3341
- border-left: 1px solid var(--md-sys-color-outline-variant);
3342
- margin: 0.5rem 0 1rem 0;
3603
+ --md-comp-collapsible-shape: 12px;
3604
+ --md-comp-collapsible-container-color: var(--md-sys-color-surface);
3605
+ --md-comp-collapsible-outline-color: var(--md-sys-color-outline-variant);
3606
+ --md-comp-collapsible-header-padding: 1rem;
3607
+ --md-comp-collapsible-body-padding: 0 1rem;
3608
+ --md-comp-collapsible-duration: 500ms;
3609
+ --md-comp-collapsible-easing-open: cubic-bezier(0.65, 0, 0.35, 1);
3610
+ --md-comp-collapsible-easing-close: cubic-bezier(0.65, 0, 0.35, 1);
3611
+ --md-comp-collapsible-icon-size: 24px;
3612
+ --md-comp-collapsible-popout-inset: 24px;
3613
+ --md-comp-collapsible-popout-gap: 16px;
3614
+ box-sizing: border-box;
3615
+ padding: 0;
3616
+ margin: 0.5rem 0 1rem;
3617
+ list-style: none;
3618
+ overflow: hidden;
3619
+ border: 1px solid var(--md-comp-collapsible-outline-color);
3620
+ border-radius: var(--md-comp-collapsible-shape);
3621
+ background-color: var(--md-comp-collapsible-container-color);
3622
+ color: var(--md-sys-color-on-surface);
3343
3623
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
3344
3624
  }
3345
- .collapsible-header {
3625
+ .collapsible > :is(details, li) + :is(details, li) {
3626
+ border-top: 1px solid var(--md-comp-collapsible-outline-color);
3627
+ }
3628
+ .collapsible :is(summary, .collapsible-header) {
3346
3629
  display: flex;
3630
+ align-items: center;
3631
+ box-sizing: border-box;
3632
+ width: 100%;
3633
+ margin: 0;
3634
+ padding: var(--md-comp-collapsible-header-padding);
3635
+ border: 0;
3636
+ background: none;
3637
+ color: inherit;
3638
+ font: inherit;
3639
+ font-weight: inherit;
3640
+ line-height: 1.5;
3641
+ text-align: start;
3642
+ list-style: none;
3347
3643
  cursor: pointer;
3348
3644
  -webkit-tap-highlight-color: transparent;
3349
- line-height: 1.5;
3350
- padding: 1rem;
3351
- border-bottom: 1px solid var(--md-sys-color-outline-variant);
3352
3645
  }
3353
- .collapsible-header:focus {
3354
- outline: 0;
3646
+ .collapsible :is(summary, .collapsible-header)::-webkit-details-marker {
3647
+ display: none;
3648
+ }
3649
+ .collapsible :is(summary, .collapsible-header):focus-visible {
3650
+ outline: 3px solid var(--md-sys-color-secondary);
3651
+ outline-offset: 2px;
3355
3652
  }
3356
- .collapsible-header i {
3653
+ .collapsible :is(summary, .collapsible-header) > i {
3357
3654
  width: 2rem;
3655
+ margin-right: 1rem;
3358
3656
  font-size: 1.6rem;
3359
- display: inline-block;
3657
+ line-height: 1;
3360
3658
  text-align: center;
3361
- margin-right: 1rem;
3362
3659
  }
3363
- .collapsible-header::after {
3364
- content: "\e5cf";
3365
- margin-left: 0.5rem;
3366
- font-family: "Material Symbols Outlined", "Material Symbols Rounded", "Material Symbols Sharp", "Material Icons";
3367
- font-size: 25px;
3368
- line-height: 0.9;
3660
+ .collapsible :is(summary, .collapsible-header)::after {
3661
+ content: "expand_more";
3662
+ flex-shrink: 0;
3663
+ margin-inline-start: auto;
3664
+ font-family: var(--md-icon-font);
3665
+ font-size: var(--md-comp-collapsible-icon-size);
3666
+ font-variation-settings: "FILL" var(--md-icon-fill), "wght" var(--md-icon-weight), "GRAD" var(--md-icon-grade), "opsz" var(--md-icon-optical-size);
3667
+ line-height: 1;
3369
3668
  -webkit-font-smoothing: antialiased;
3669
+ transition: transform var(--md-comp-collapsible-duration) var(--md-comp-collapsible-easing-close);
3370
3670
  }
3371
- .active .collapsible-header::after {
3372
- content: "\e5ce";
3373
- }
3374
- .keyboard-focused .collapsible-header:focus {
3375
- background-color: rgba(0, 0, 0, 0.12);
3671
+ .collapsible :is(details[open] > summary, .active > .collapsible-header)::after {
3672
+ transform: rotate(180deg);
3673
+ transition-timing-function: var(--md-comp-collapsible-easing-open);
3376
3674
  }
3377
- .collapsible-header-content {
3675
+ .collapsible .collapsible-header-content {
3378
3676
  flex-grow: 1;
3379
3677
  }
3380
- .collapsible-body {
3381
- max-height: 0;
3382
- border-bottom: 1px solid var(--md-sys-color-outline-variant);
3678
+ .collapsible .collapsible-body {
3679
+ display: grid;
3680
+ grid-template-rows: 0fr;
3383
3681
  box-sizing: border-box;
3384
- padding: 0 2rem;
3682
+ padding: var(--md-comp-collapsible-body-padding);
3683
+ overflow: hidden;
3684
+ transition: grid-template-rows var(--md-comp-collapsible-duration) var(--md-comp-collapsible-easing-close);
3685
+ }
3686
+ .collapsible .collapsible-body > * {
3687
+ min-height: 0;
3385
3688
  overflow: hidden;
3386
3689
  }
3690
+ .collapsible .active > .collapsible-body,
3691
+ .collapsible details[open] > .collapsible-body {
3692
+ grid-template-rows: 1fr;
3693
+ transition-timing-function: var(--md-comp-collapsible-easing-open);
3694
+ }
3695
+ .collapsible details:not([open]) > .collapsible-body {
3696
+ display: grid;
3697
+ }
3698
+ .collapsible.no-icon :is(summary, .collapsible-header)::after {
3699
+ content: none;
3700
+ }
3387
3701
  .collapsible.popout {
3388
- border: none;
3389
- box-shadow: none;
3702
+ overflow: visible;
3703
+ border: 0;
3704
+ background: transparent;
3705
+ box-shadow: none !important;
3390
3706
  }
3391
- .collapsible.popout > li {
3392
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
3393
- margin: 0 24px;
3394
- transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
3707
+ .collapsible.popout > :is(details, li) {
3708
+ margin-inline: var(--md-comp-collapsible-popout-inset);
3709
+ overflow: hidden;
3710
+ border: 0;
3711
+ border-radius: var(--md-comp-collapsible-shape);
3712
+ background-color: var(--md-comp-collapsible-container-color);
3713
+ transition: margin var(--md-comp-collapsible-duration) var(--md-comp-collapsible-easing-close);
3714
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
3715
+ }
3716
+ .collapsible.popout > :is(details, li) + :is(details, li) {
3717
+ border-top: 0;
3395
3718
  }
3396
- .collapsible.popout > li.active {
3397
- box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
3398
- margin: 16px 0;
3719
+ .collapsible.popout > :is(details[open], li.active) {
3720
+ margin-block: var(--md-comp-collapsible-popout-gap);
3721
+ margin-inline: 0;
3722
+ transition-timing-function: var(--md-comp-collapsible-easing-open);
3723
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
3724
+ }
3725
+ @media (prefers-reduced-motion: reduce) {
3726
+ .collapsible {
3727
+ --md-comp-collapsible-duration: 0s;
3728
+ }
3399
3729
  }
3400
3730
  .chip {
3401
3731
  --font-size: 14px;
@@ -3435,7 +3765,7 @@
3435
3765
  object-fit: cover;
3436
3766
  border-radius: 12px;
3437
3767
  }
3438
- .chip > .material-icons {
3768
+ .chip > :is(.material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons) {
3439
3769
  font-size: var(--font-size-icon);
3440
3770
  color: var(--md-sys-color-on-surface-variant);
3441
3771
  }
@@ -3517,6 +3847,9 @@
3517
3847
  transition: opacity 0.4s;
3518
3848
  backface-visibility: hidden;
3519
3849
  }
3850
+ .lightboxed:not(.circle) {
3851
+ border-radius: 12px;
3852
+ }
3520
3853
  .lightboxed:hover:not(.active) {
3521
3854
  opacity: 0.8;
3522
3855
  }
@@ -3547,28 +3880,103 @@
3547
3880
  z-index: 1000;
3548
3881
  -webkit-font-smoothing: antialiased;
3549
3882
  }
3883
+ .parallax,
3550
3884
  .parallax-container {
3885
+ --md-comp-parallax-height: 500px;
3886
+ --md-comp-parallax-travel: 120px;
3887
+ --md-comp-parallax-shape: 12px;
3551
3888
  position: relative;
3889
+ isolation: isolate;
3552
3890
  overflow: hidden;
3553
- height: 500px;
3891
+ box-sizing: border-box;
3892
+ height: var(--md-comp-parallax-height);
3893
+ margin: 0;
3894
+ border-radius: var(--md-comp-parallax-shape);
3895
+ view-timeline-name: --parallax;
3896
+ view-timeline-axis: block;
3554
3897
  }
3555
- .parallax-container .parallax {
3898
+ .parallax-container > .parallax {
3556
3899
  position: absolute;
3557
- top: 0;
3558
- left: 0;
3559
- right: 0;
3560
- bottom: 0;
3561
- z-index: -1;
3900
+ inset: 0;
3901
+ height: auto;
3902
+ margin: 0;
3903
+ border-radius: 0;
3904
+ overflow: visible;
3905
+ view-timeline-name: none;
3562
3906
  }
3563
- .parallax-container .parallax img {
3564
- opacity: 0;
3907
+ .parallax > :is(img, video),
3908
+ .parallax > picture,
3909
+ .parallax-container .parallax > :is(img, video),
3910
+ .parallax-container .parallax > picture {
3565
3911
  position: absolute;
3566
- left: 50%;
3567
- bottom: 0;
3568
- min-width: 100%;
3569
- min-height: 100%;
3570
- transform: translate3d(0, 0, 0);
3571
- transform: translateX(-50%);
3912
+ inset: 0;
3913
+ display: block;
3914
+ width: 100%;
3915
+ height: 100%;
3916
+ border: 0;
3917
+ }
3918
+ .parallax > picture img,
3919
+ .parallax-container .parallax > picture img {
3920
+ display: block;
3921
+ width: 100%;
3922
+ height: 100%;
3923
+ border: 0;
3924
+ }
3925
+ .parallax > :is(img, video),
3926
+ .parallax > picture img,
3927
+ .parallax-container .parallax > :is(img, video),
3928
+ .parallax-container .parallax > picture img {
3929
+ object-fit: cover;
3930
+ object-position: center;
3931
+ }
3932
+ .parallax > :is(h1, h2, h3, h4, h5, h6),
3933
+ .parallax > p {
3934
+ position: absolute;
3935
+ inset: 0;
3936
+ z-index: 1;
3937
+ display: grid;
3938
+ place-items: center;
3939
+ margin: 0;
3940
+ padding: 24px;
3941
+ color: var(--md-sys-color-on-surface);
3942
+ text-align: center;
3943
+ }
3944
+ .parallax > figcaption {
3945
+ position: absolute;
3946
+ inset: auto 0 0;
3947
+ z-index: 1;
3948
+ margin: 0;
3949
+ padding: 16px 24px;
3950
+ color: var(--md-sys-color-on-surface);
3951
+ background: color-mix(in oklab, var(--md-sys-color-surface) 72%, transparent);
3952
+ }
3953
+ .parallax.max,
3954
+ .parallax-container.max {
3955
+ height: 100vh;
3956
+ height: 100dvh;
3957
+ border-radius: 0;
3958
+ }
3959
+ @supports (animation-timeline: view()) {
3960
+ @media (prefers-reduced-motion: no-preference) {
3961
+ .parallax > :is(img, video),
3962
+ .parallax > picture img,
3963
+ .parallax-container .parallax > :is(img, video),
3964
+ .parallax-container .parallax > picture img {
3965
+ height: calc(100% + 2 * var(--md-comp-parallax-travel));
3966
+ inset: calc(-1 * var(--md-comp-parallax-travel)) 0 auto;
3967
+ animation: parallax-shift linear both;
3968
+ animation-timeline: --parallax;
3969
+ animation-range: cover;
3970
+ }
3971
+ }
3972
+ }
3973
+ @keyframes parallax-shift {
3974
+ from {
3975
+ transform: translateY(var(--md-comp-parallax-travel));
3976
+ }
3977
+ to {
3978
+ transform: translateY(calc(-1 * var(--md-comp-parallax-travel)));
3979
+ }
3572
3980
  }
3573
3981
  .pin-top, .pin-bottom {
3574
3982
  position: relative;
@@ -5181,7 +5589,7 @@
5181
5589
  .sidenav li > a {
5182
5590
  /* TODO: Use special class in future like "mw-icon" */
5183
5591
  }
5184
- .sidenav li > a > .material-icons, .sidenav li > a > .material-symbols-outlined, .sidenav li > a > .material-symbols-rounded, .sidenav li > a > .material-symbols-sharp {
5592
+ .sidenav li > a > :is(.material-symbols, .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp, .material-icons) {
5185
5593
  display: inline-flex;
5186
5594
  vertical-align: middle;
5187
5595
  margin-right: 12px;
@@ -5271,7 +5679,8 @@
5271
5679
  padding: var(--sidenav-padding) var(--sidenav-padding) 0;
5272
5680
  }
5273
5681
  }
5274
- .sidenav .collapsible-body {
5682
+ .sidenav .collapsible-body,
5683
+ .sidenav details::details-content {
5275
5684
  padding: 0;
5276
5685
  }
5277
5686
  .sidenav-overlay {
@@ -5287,15 +5696,22 @@
5287
5696
  }
5288
5697
  .sidenav .collapsible,
5289
5698
  .sidenav.sidenav-fixed .collapsible {
5699
+ overflow: visible;
5290
5700
  border: none;
5701
+ border-radius: 0;
5702
+ background: transparent;
5291
5703
  box-shadow: none;
5292
5704
  }
5293
5705
  .sidenav .collapsible-header,
5294
- .sidenav.sidenav-fixed .collapsible-header {
5706
+ .sidenav summary,
5707
+ .sidenav.sidenav-fixed .collapsible-header,
5708
+ .sidenav.sidenav-fixed summary {
5295
5709
  border: none;
5296
5710
  }
5297
5711
  .sidenav .collapsible-body,
5298
- .sidenav.sidenav-fixed .collapsible-body {
5712
+ .sidenav details::details-content,
5713
+ .sidenav.sidenav-fixed .collapsible-body,
5714
+ .sidenav.sidenav-fixed details::details-content {
5299
5715
  border: none;
5300
5716
  }
5301
5717
  .progress {
@@ -5673,6 +6089,9 @@
5673
6089
  height: 400px;
5674
6090
  width: 100%;
5675
6091
  }
6092
+ .slider:not(.fullscreen) .slides, .slider:not(.fullscreen) .slides li {
6093
+ border-radius: 12px;
6094
+ }
5676
6095
  .slider.fullscreen {
5677
6096
  height: 100%;
5678
6097
  width: 100%;
@@ -5767,167 +6186,300 @@
5767
6186
  border-radius: 50%;
5768
6187
  border-width: 0;
5769
6188
  }
5770
- .slider .indicators .indicator-item-btn.active {
6189
+ .slider .indicators .indicator-item-btn.active {
6190
+ background-color: var(--md-sys-color-primary);
6191
+ }
6192
+ .carousel {
6193
+ --md-comp-carousel-height: 400px;
6194
+ --md-comp-carousel-shape: 12px;
6195
+ --md-comp-carousel-gap: 0px;
6196
+ overflow: hidden;
6197
+ position: relative;
6198
+ width: 100%;
6199
+ height: var(--carousel-height, var(--md-comp-carousel-height));
6200
+ border-radius: var(--md-comp-carousel-shape);
6201
+ }
6202
+ .carousel .carousel-item > img,
6203
+ .carousel .carousel-item > video {
6204
+ display: block;
6205
+ width: 100%;
6206
+ height: 100%;
6207
+ object-fit: cover;
6208
+ }
6209
+ .carousel .indicators {
6210
+ display: flex;
6211
+ justify-content: center;
6212
+ align-items: center;
6213
+ gap: 8px;
6214
+ list-style: none;
6215
+ position: absolute;
6216
+ inset: auto 0 0;
6217
+ z-index: 2;
6218
+ margin: 0;
6219
+ padding: 16px 0;
6220
+ border: 0;
6221
+ background: none;
6222
+ }
6223
+ .carousel .indicators .indicator-item {
6224
+ appearance: none;
6225
+ box-sizing: border-box;
6226
+ display: block;
6227
+ width: 8px;
6228
+ height: 8px;
6229
+ margin: 0;
6230
+ padding: 0;
6231
+ border: 0;
6232
+ border-radius: 50%;
6233
+ background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 45%, transparent);
6234
+ cursor: pointer;
6235
+ transition: background-color 0.2s ease-out;
6236
+ }
6237
+ .carousel .indicators .indicator-item:is(.active, [aria-current=true]) {
5771
6238
  background-color: var(--md-sys-color-primary);
5772
6239
  }
5773
- .carousel {
5774
- --carousel-height: 400px;
5775
- overflow: hidden;
5776
- position: relative;
5777
- width: 100%;
5778
- height: var(--carousel-height);
6240
+ .carousel .indicators .indicator-item:focus-visible {
6241
+ outline: 3px solid var(--md-sys-color-secondary);
6242
+ outline-offset: 2px;
6243
+ }
6244
+ .carousel:not(.flat):not(.carousel-slider) {
5779
6245
  perspective: 500px;
5780
6246
  transform-style: preserve-3d;
5781
6247
  transform-origin: 0% 50%;
6248
+ touch-action: pan-y;
5782
6249
  }
5783
- .carousel.carousel-slider {
6250
+ .carousel:not(.flat):not(.carousel-slider) > .carousel-item {
6251
+ visibility: hidden;
6252
+ position: absolute;
5784
6253
  top: 0;
5785
6254
  left: 0;
6255
+ width: calc(var(--carousel-height, var(--md-comp-carousel-height)) * 0.5);
6256
+ height: calc(var(--carousel-height, var(--md-comp-carousel-height)) * 0.5);
6257
+ overflow: hidden;
6258
+ border-radius: var(--md-comp-carousel-shape);
6259
+ }
6260
+ .carousel.flat,
6261
+ .carousel.carousel-slider {
6262
+ overflow: hidden;
6263
+ perspective: none;
6264
+ transform: none;
6265
+ }
6266
+ .carousel.flat > .carousel-track,
6267
+ .carousel.carousel-slider > .carousel-track {
6268
+ display: flex;
6269
+ gap: var(--md-comp-carousel-gap);
6270
+ box-sizing: border-box;
6271
+ width: 100%;
6272
+ height: 100%;
6273
+ overflow-x: auto;
6274
+ overflow-y: hidden;
6275
+ scroll-snap-type: x mandatory;
6276
+ scroll-behavior: smooth;
6277
+ touch-action: pan-x;
6278
+ scrollbar-width: none;
6279
+ }
6280
+ .carousel.flat > .carousel-track::-webkit-scrollbar,
6281
+ .carousel.carousel-slider > .carousel-track::-webkit-scrollbar {
6282
+ display: none;
6283
+ }
6284
+ .carousel.flat .carousel-track > .carousel-item,
6285
+ .carousel.carousel-slider .carousel-track > .carousel-item {
6286
+ flex: 0 0 100%;
6287
+ width: 100%;
6288
+ height: 100%;
6289
+ min-height: 0;
6290
+ position: relative;
6291
+ visibility: visible;
6292
+ scroll-snap-align: start;
6293
+ scroll-snap-stop: always;
5786
6294
  }
6295
+ .carousel.flat .carousel-fixed-item,
5787
6296
  .carousel.carousel-slider .carousel-fixed-item {
5788
6297
  position: absolute;
5789
- left: 0;
5790
- right: 0;
5791
- bottom: 20px;
6298
+ inset: auto 0 20px;
5792
6299
  z-index: 1;
5793
6300
  }
6301
+ .carousel.flat .carousel-fixed-item.with-indicators,
5794
6302
  .carousel.carousel-slider .carousel-fixed-item.with-indicators {
5795
6303
  bottom: 68px;
5796
6304
  }
5797
- .carousel.carousel-slider .carousel-item {
5798
- width: 100%;
5799
- height: 100%;
5800
- min-height: var(--carousel-height);
5801
- position: absolute;
5802
- top: 0;
5803
- left: 0;
5804
- }
6305
+ .carousel.flat .carousel-item h2,
5805
6306
  .carousel.carousel-slider .carousel-item h2 {
5806
- font-size: 24px;
5807
- font-weight: 500;
5808
- line-height: 32px;
6307
+ font-family: var(--md-sys-typescale-headline-small-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
6308
+ font-size: var(--md-sys-typescale-headline-small-font-size);
6309
+ font-weight: var(--md-sys-typescale-headline-small-font-weight);
6310
+ line-height: var(--md-sys-typescale-headline-small-line-height);
6311
+ letter-spacing: var(--md-sys-typescale-headline-small-letter-spacing);
6312
+ margin: 0 0 8px;
5809
6313
  }
6314
+ .carousel.flat .carousel-item p,
5810
6315
  .carousel.carousel-slider .carousel-item p {
5811
- font-size: 15px;
5812
- }
5813
- .carousel .carousel-item {
5814
- visibility: hidden;
5815
- width: calc(var(--carousel-height) * 0.5);
5816
- height: calc(var(--carousel-height) * 0.5);
5817
- position: absolute;
5818
- top: 0;
5819
- left: 0;
5820
- }
5821
- .carousel .carousel-item > img {
5822
- width: 100%;
5823
- }
5824
- .carousel .indicators {
5825
- padding-left: 0;
5826
- list-style-type: none;
5827
- position: absolute;
5828
- text-align: center;
5829
- left: 0;
5830
- right: 0;
5831
- bottom: 0;
6316
+ font-family: var(--md-sys-typescale-body-medium-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
6317
+ font-size: var(--md-sys-typescale-body-medium-font-size);
6318
+ font-weight: var(--md-sys-typescale-body-medium-font-weight);
6319
+ line-height: var(--md-sys-typescale-body-medium-line-height);
6320
+ letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing);
5832
6321
  margin: 0;
5833
6322
  }
5834
- .carousel .indicators .indicator-item {
5835
- display: inline-block;
5836
- position: relative;
5837
- cursor: pointer;
5838
- height: 8px;
5839
- width: 8px;
5840
- margin: 24px 4px;
5841
- background-color: rgba(255, 255, 255, 0.45);
5842
- transition: background-color 0.3s;
5843
- border-radius: 50%;
5844
- }
5845
- .carousel .indicators .indicator-item.active {
5846
- background-color: var(--md-ref-palette-primary100);
6323
+ @media (prefers-reduced-motion: reduce) {
6324
+ .carousel.flat > .carousel-track,
6325
+ .carousel.carousel-slider > .carousel-track {
6326
+ scroll-behavior: auto;
6327
+ }
5847
6328
  }
5848
6329
  .carousel.scrolling .carousel-item .lightboxed,
5849
- .carousel .carousel-item:not(.active) .lightboxed {
6330
+ .carousel-item:not(.active) .lightboxed {
5850
6331
  pointer-events: none;
5851
6332
  }
5852
6333
  .tap-target-wrapper {
5853
- width: 800px;
5854
- height: 800px;
6334
+ --md-comp-tap-target-size: 480px;
6335
+ --md-comp-tap-target-z: 1000;
6336
+ --md-comp-tap-target-container-color: var(--md-sys-color-primary-container);
6337
+ --md-comp-tap-target-supporting-color: var(--md-sys-color-on-primary-container);
6338
+ --md-comp-tap-target-duration: 300ms;
6339
+ --md-comp-tap-target-easing: cubic-bezier(0.65, 0, 0.35, 1);
6340
+ --md-comp-tap-target-x: 50%;
6341
+ --md-comp-tap-target-y: 50%;
6342
+ --md-comp-tap-target-origin-size: 56px;
6343
+ box-sizing: border-box;
5855
6344
  position: fixed;
5856
- z-index: 1000;
6345
+ inset: auto;
6346
+ left: var(--md-comp-tap-target-x);
6347
+ top: var(--md-comp-tap-target-y);
6348
+ translate: -50% -50%;
6349
+ width: var(--md-comp-tap-target-size);
6350
+ height: var(--md-comp-tap-target-size);
6351
+ margin: 0;
6352
+ padding: 0;
6353
+ overflow: visible;
6354
+ border: 0;
6355
+ background: transparent;
6356
+ color: var(--md-comp-tap-target-supporting-color);
5857
6357
  visibility: hidden;
5858
- transition: visibility 0s 0.3s;
6358
+ pointer-events: none;
6359
+ z-index: var(--md-comp-tap-target-z);
6360
+ transition: visibility 0s var(--md-comp-tap-target-duration), overlay var(--md-comp-tap-target-duration) allow-discrete, display var(--md-comp-tap-target-duration) allow-discrete;
5859
6361
  }
5860
- .tap-target-wrapper.open {
6362
+ .tap-target-wrapper:is(.open, :popover-open) {
5861
6363
  visibility: visible;
5862
- transition: visibility 0s;
6364
+ pointer-events: none;
6365
+ transition-delay: 0s;
5863
6366
  }
5864
- .tap-target-wrapper.open .tap-target {
6367
+ .tap-target-wrapper:is(.open, :popover-open) .tap-target,
6368
+ .tap-target-wrapper:is(.open, :popover-open) .feature-discovery {
5865
6369
  transform: scale(1);
5866
- opacity: 0.95;
5867
- transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);
6370
+ opacity: 1;
5868
6371
  }
5869
- .tap-target-wrapper.open .tap-target-wave::before {
6372
+ .tap-target-wrapper:is(.open, :popover-open) .tap-target-wave::before {
5870
6373
  transform: scale(1);
5871
6374
  }
5872
- .tap-target-wrapper.open .tap-target-wave::after {
6375
+ .tap-target-wrapper:is(.open, :popover-open) .tap-target-wave::after {
5873
6376
  visibility: visible;
5874
6377
  animation: pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;
5875
- transition: opacity 0.3s, transform 0.3s, visibility 0s 1s;
5876
6378
  }
5877
- .tap-target {
6379
+ .tap-target,
6380
+ .feature-discovery {
5878
6381
  position: absolute;
5879
- font-size: 1rem;
5880
- border-radius: 50%;
5881
- background-color: var(--md-sys-color-primary-container);
5882
- color: var(--md-sys-color-primary);
5883
- box-shadow: 0 20px 20px 0 rgba(0, 0, 0, 0.14), 0 10px 50px 0 rgba(0, 0, 0, 0.12), 0 30px 10px -20px rgba(0, 0, 0, 0.2);
6382
+ inset: 0;
6383
+ display: grid;
6384
+ box-sizing: border-box;
5884
6385
  width: 100%;
5885
6386
  height: 100%;
6387
+ overflow: hidden;
6388
+ border-radius: 50%;
6389
+ background-color: var(--md-comp-tap-target-container-color);
6390
+ color: var(--md-comp-tap-target-supporting-color);
5886
6391
  opacity: 0;
5887
6392
  transform: scale(0);
5888
- transition: transform 0.3s cubic-bezier(0.42, 0, 0.58, 1), opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);
6393
+ transition: transform var(--md-comp-tap-target-duration) var(--md-comp-tap-target-easing), opacity var(--md-comp-tap-target-duration) var(--md-comp-tap-target-easing);
6394
+ box-shadow: 0 8px 17px 2px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
6395
+ font-family: var(--md-sys-typescale-body-medium-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
6396
+ font-size: var(--md-sys-typescale-body-medium-font-size);
6397
+ font-weight: var(--md-sys-typescale-body-medium-font-weight);
6398
+ line-height: var(--md-sys-typescale-body-medium-line-height);
6399
+ letter-spacing: var(--md-sys-typescale-body-medium-letter-spacing);
5889
6400
  }
5890
6401
  .tap-target-content {
5891
6402
  position: relative;
5892
- display: table-cell;
6403
+ z-index: 1;
6404
+ display: grid;
6405
+ align-content: start;
6406
+ gap: 8px;
6407
+ box-sizing: border-box;
6408
+ max-width: min(18rem, 52%);
6409
+ padding: calc(var(--md-comp-tap-target-origin-size) * 0.5 + 20px);
6410
+ pointer-events: auto;
6411
+ }
6412
+ .tap-target-content > :is(h1, h2, h3, h4, h5, h6) {
6413
+ margin: 0;
6414
+ color: inherit;
6415
+ font-family: var(--md-sys-typescale-title-medium-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
6416
+ font-size: var(--md-sys-typescale-title-medium-font-size);
6417
+ font-weight: var(--md-sys-typescale-title-medium-font-weight);
6418
+ line-height: var(--md-sys-typescale-title-medium-line-height);
6419
+ letter-spacing: var(--md-sys-typescale-title-medium-letter-spacing);
6420
+ }
6421
+ .tap-target-content > p {
6422
+ margin: 0;
6423
+ color: inherit;
6424
+ }
6425
+ .tap-target-wrapper[data-edge^=top] .tap-target-content {
6426
+ align-self: end;
6427
+ }
6428
+ .tap-target-wrapper[data-edge^=bottom] .tap-target-content {
6429
+ align-self: start;
6430
+ }
6431
+ .tap-target-wrapper[data-edge$=left] .tap-target-content {
6432
+ justify-self: end;
6433
+ }
6434
+ .tap-target-wrapper[data-edge$=right] .tap-target-content {
6435
+ justify-self: start;
6436
+ }
6437
+ .tap-target-wrapper[data-edge$=center] .tap-target-content {
6438
+ justify-self: center;
6439
+ max-width: min(22rem, 80%);
6440
+ text-align: center;
5893
6441
  }
5894
6442
  .tap-target-wave {
5895
6443
  position: absolute;
6444
+ top: 50%;
6445
+ left: 50%;
6446
+ z-index: 0;
6447
+ width: calc(var(--md-comp-tap-target-origin-size) * 2);
6448
+ height: calc(var(--md-comp-tap-target-origin-size) * 2);
6449
+ translate: -50% -50%;
5896
6450
  border-radius: 50%;
5897
- z-index: 10001;
6451
+ pointer-events: none;
5898
6452
  }
5899
6453
  .tap-target-wave::before, .tap-target-wave::after {
5900
6454
  content: "";
5901
- display: block;
5902
6455
  position: absolute;
5903
- width: 100%;
5904
- height: 100%;
6456
+ inset: 0;
6457
+ display: block;
5905
6458
  border-radius: 50%;
5906
6459
  background-color: var(--md-sys-color-surface);
5907
6460
  }
5908
6461
  .tap-target-wave::before {
5909
6462
  transform: scale(0);
5910
- transition: transform 0.3s;
6463
+ transition: transform var(--md-comp-tap-target-duration) var(--md-comp-tap-target-easing);
5911
6464
  }
5912
6465
  .tap-target-wave::after {
5913
6466
  visibility: hidden;
5914
- transition: opacity 0.3s, transform 0.3s, visibility 0s;
5915
6467
  z-index: -1;
5916
6468
  }
5917
6469
  .tap-target-origin {
5918
- top: 50%;
5919
- left: 50%;
5920
- z-index: 10002;
5921
- position: absolute !important;
5922
- transform: translate(-50%, -50%);
5923
- }
5924
- .tap-target-origin:not(.btn), .tap-target-origin:not(.btn):hover {
5925
- background: none;
6470
+ z-index: calc(var(--md-comp-tap-target-z, 1000) + 2);
5926
6471
  }
5927
6472
  @media (width < 601px) {
5928
- .tap-target, .tap-target-wrapper {
5929
- width: 600px;
5930
- height: 600px;
6473
+ .tap-target-wrapper {
6474
+ --md-comp-tap-target-size: 360px;
6475
+ }
6476
+ }
6477
+ @media (prefers-reduced-motion: reduce) {
6478
+ .tap-target-wrapper {
6479
+ --md-comp-tap-target-duration: 0s;
6480
+ }
6481
+ .tap-target-wrapper:is(.open, :popover-open) .tap-target-wave::after {
6482
+ animation: none;
5931
6483
  }
5932
6484
  }
5933
6485
  .pulse {
@@ -6410,100 +6962,225 @@
6410
6962
  margin-top: 1.6rem;
6411
6963
  }
6412
6964
  }
6965
+ nav:has(> ol):not(.pagination),
6966
+ nav:has(> .breadcrumb),
6413
6967
  .breadcrumb-wrapper {
6968
+ --md-comp-breadcrumb-label-color: var(--md-sys-color-on-surface-variant);
6969
+ --md-comp-breadcrumb-current-color: var(--md-sys-color-on-surface);
6970
+ --md-comp-breadcrumb-separator: "/";
6971
+ --md-comp-breadcrumb-gap: 8px;
6972
+ display: flex;
6973
+ flex-wrap: wrap;
6974
+ align-items: center;
6975
+ margin: 0;
6976
+ padding: 0;
6977
+ color: var(--md-comp-breadcrumb-label-color);
6978
+ font-family: var(--md-sys-typescale-body-small-font-family-name), -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;
6979
+ font-size: var(--md-sys-typescale-body-small-font-size);
6980
+ font-weight: var(--md-sys-typescale-body-small-font-weight);
6981
+ line-height: var(--md-sys-typescale-body-small-line-height);
6982
+ letter-spacing: var(--md-sys-typescale-body-small-letter-spacing);
6983
+ }
6984
+ nav:has(> ol):not(.pagination).nowrap,
6985
+ nav:has(> .breadcrumb).nowrap,
6986
+ .breadcrumb-wrapper.nowrap {
6987
+ flex-wrap: nowrap;
6988
+ overflow-x: auto;
6989
+ scrollbar-width: none;
6990
+ }
6991
+ nav:has(> ol):not(.pagination).nowrap::-webkit-scrollbar,
6992
+ nav:has(> .breadcrumb).nowrap::-webkit-scrollbar,
6993
+ .breadcrumb-wrapper.nowrap::-webkit-scrollbar {
6994
+ display: none;
6995
+ }
6996
+ nav:has(> ol):not(.pagination) > ol,
6997
+ nav:has(> .breadcrumb) > ol,
6998
+ .breadcrumb-wrapper > ol {
6414
6999
  display: flex;
7000
+ flex-wrap: inherit;
6415
7001
  align-items: center;
7002
+ list-style: none;
7003
+ min-width: 0;
7004
+ margin: 0;
7005
+ padding: 0;
6416
7006
  }
6417
- .breadcrumb {
7007
+ nav:has(> ol):not(.pagination) > ol > li,
7008
+ nav:has(> .breadcrumb) > ol > li,
7009
+ .breadcrumb-wrapper > ol > li {
6418
7010
  display: inline-flex;
6419
7011
  align-items: center;
7012
+ min-width: 0;
6420
7013
  }
6421
- .breadcrumb i,
6422
- .breadcrumb i.material-icons, .breadcrumb i.material-symbols-outlined,
6423
- .breadcrumb i.material-symbols-rounded, .breadcrumb i.material-symbols-sharp, .breadcrumb:before {
6424
- font-weight: normal;
6425
- font-style: normal;
6426
- font-size: 24px;
7014
+ nav:has(> ol):not(.pagination) > ol > li:has(> [aria-current=page]),
7015
+ nav:has(> .breadcrumb) > ol > li:has(> [aria-current=page]),
7016
+ .breadcrumb-wrapper > ol > li:has(> [aria-current=page]) {
7017
+ flex-shrink: 0;
7018
+ }
7019
+ nav:has(> ol):not(.pagination) > ol > li + li::before,
7020
+ nav:has(> .breadcrumb) > ol > li + li::before,
7021
+ .breadcrumb-wrapper > ol > li + li::before {
7022
+ content: var(--md-comp-breadcrumb-separator);
7023
+ margin-inline: var(--md-comp-breadcrumb-gap);
7024
+ color: var(--md-comp-breadcrumb-label-color);
7025
+ }
7026
+ nav:has(> ol):not(.pagination) > .breadcrumb + .breadcrumb::before,
7027
+ nav:has(> .breadcrumb) > .breadcrumb + .breadcrumb::before,
7028
+ .breadcrumb-wrapper > .breadcrumb + .breadcrumb::before {
7029
+ content: var(--md-comp-breadcrumb-separator);
7030
+ margin-inline: var(--md-comp-breadcrumb-gap);
7031
+ color: var(--md-comp-breadcrumb-label-color);
7032
+ }
7033
+ nav:has(> ol):not(.pagination) :is(a, .breadcrumb),
7034
+ nav:has(> .breadcrumb) :is(a, .breadcrumb),
7035
+ .breadcrumb-wrapper :is(a, .breadcrumb) {
7036
+ display: inline-flex;
7037
+ align-items: center;
7038
+ min-height: 32px;
7039
+ color: var(--md-comp-breadcrumb-label-color);
7040
+ text-decoration: none;
6427
7041
  }
6428
- .breadcrumb:before {
6429
- content: "\e5cc";
6430
- font-family: "Material Symbols Outlined", "Material Symbols Rounded", "Material Symbols Sharp", "Material Icons";
7042
+ nav:has(> ol):not(.pagination) :is(a, .breadcrumb):focus-visible,
7043
+ nav:has(> .breadcrumb) :is(a, .breadcrumb):focus-visible,
7044
+ .breadcrumb-wrapper :is(a, .breadcrumb):focus-visible {
7045
+ outline: 3px solid var(--md-sys-color-secondary);
7046
+ outline-offset: 2px;
6431
7047
  }
6432
- .breadcrumb:first-child:before {
6433
- visibility: hidden;
7048
+ nav:has(> ol):not(.pagination) :is(a, .breadcrumb):hover,
7049
+ nav:has(> .breadcrumb) :is(a, .breadcrumb):hover,
7050
+ .breadcrumb-wrapper :is(a, .breadcrumb):hover {
7051
+ color: var(--md-comp-breadcrumb-current-color);
7052
+ }
7053
+ nav:has(> ol):not(.pagination) [aria-current=page],
7054
+ nav:has(> .breadcrumb) [aria-current=page],
7055
+ .breadcrumb-wrapper [aria-current=page] {
7056
+ color: var(--md-comp-breadcrumb-current-color);
7057
+ }
7058
+ nav:has(> ol):not(.pagination) i,
7059
+ nav:has(> .breadcrumb) i,
7060
+ .breadcrumb-wrapper i {
7061
+ font-size: 1.125em;
7062
+ margin-inline-end: 4px;
7063
+ }
7064
+ header:has(> nav) > nav:has(> ol):not(.pagination),
7065
+ header:has(> nav) > nav:has(> .breadcrumb) {
7066
+ --md-comp-breadcrumb-label-color: inherit;
7067
+ --md-comp-breadcrumb-current-color: inherit;
7068
+ }
7069
+ .pagination {
7070
+ --md-comp-pagination-size: 2rem;
7071
+ --md-comp-pagination-shape: 2rem;
7072
+ --md-comp-pagination-gap: 0px;
7073
+ --md-comp-pagination-padding: 0.66rem;
7074
+ --md-comp-pagination-icon-size: 2rem;
7075
+ --md-comp-pagination-selected-color: var(--md-sys-color-primary);
7076
+ --md-comp-pagination-selected-on-color: var(--md-sys-color-on-primary);
7077
+ box-sizing: border-box;
7078
+ margin: 0;
7079
+ padding: 0;
7080
+ color: var(--md-sys-color-on-surface);
7081
+ font-size: 1.2rem;
7082
+ line-height: 1;
7083
+ }
7084
+ .pagination,
7085
+ .pagination > :is(ul, ol) {
7086
+ display: flex;
7087
+ flex-wrap: wrap;
7088
+ align-items: center;
7089
+ gap: var(--md-comp-pagination-gap);
7090
+ list-style: none;
7091
+ margin: 0;
7092
+ padding: 0;
7093
+ }
7094
+ .pagination.nowrap, .pagination.nowrap > :is(ul, ol) {
7095
+ flex-wrap: nowrap;
7096
+ min-width: 0;
7097
+ overflow-x: auto;
7098
+ scrollbar-width: none;
7099
+ }
7100
+ .pagination.nowrap::-webkit-scrollbar, .pagination.nowrap > :is(ul, ol)::-webkit-scrollbar {
7101
+ display: none;
6434
7102
  }
6435
7103
  .pagination li {
6436
- display: inline-block;
6437
- vertical-align: top;
7104
+ display: flex;
7105
+ flex-shrink: 0;
7106
+ margin: 0;
7107
+ padding: 0;
6438
7108
  }
6439
- .pagination li a {
7109
+ .pagination :is(a, button) {
6440
7110
  box-sizing: border-box;
6441
7111
  display: inline-flex;
6442
7112
  align-items: center;
6443
7113
  justify-content: center;
6444
- gap: var(--md-comp-filled-button-icon-label-space, 8px);
6445
- height: 2rem;
6446
- padding-left: 0.66rem;
6447
- padding-right: 0.66rem;
6448
- border: none;
6449
- border-radius: var(--md-comp-filled-button-container-shape, 20px);
6450
- font-family: var(--md-sys-typescale-label-large-font-family-name);
6451
- font-size: 1.2rem;
6452
- font-weight: var(--md-sys-typescale-label-large-font-weight);
6453
- line-height: var(--md-sys-typescale-label-large-line-height);
6454
- letter-spacing: var(--md-sys-typescale-label-large-letter-spacing);
7114
+ gap: 4px;
7115
+ min-width: var(--md-comp-pagination-size);
7116
+ height: var(--md-comp-pagination-size);
7117
+ padding: 0 var(--md-comp-pagination-padding);
7118
+ border: 0;
7119
+ border-radius: var(--md-comp-pagination-shape);
7120
+ background: transparent;
7121
+ color: inherit;
7122
+ font: inherit;
7123
+ line-height: inherit;
6455
7124
  text-decoration: none;
6456
- white-space: nowrap;
6457
7125
  cursor: pointer;
6458
- outline: 0;
6459
- user-select: none;
6460
- appearance: none;
6461
7126
  -webkit-tap-highlight-color: transparent;
6462
- transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out;
6463
- }
6464
- .pagination li.active a {
6465
- color: var(--md-comp-filled-button-label-text-color, var(--md-sys-color-on-primary));
6466
- background-color: var(--md-comp-filled-button-container-color, var(--md-sys-color-primary));
6467
- }
6468
- .pagination li.active a:hover {
6469
- background-color: color-mix(in oklab, var(--md-sys-color-on-primary) 8%, var(--md-sys-color-primary));
7127
+ transition: background-color 0.2s ease-out;
6470
7128
  }
6471
- .pagination li.active a:active, .pagination li.active a:focus {
6472
- background-color: color-mix(in oklab, var(--md-sys-color-on-primary) 10%, var(--md-sys-color-primary));
6473
- }
6474
- .pagination li.active a:focus-visible {
7129
+ .pagination :is(a, button):focus-visible {
6475
7130
  outline: 3px solid var(--md-sys-color-secondary);
6476
7131
  outline-offset: 2px;
6477
7132
  }
6478
- .pagination li.disabled a {
6479
- box-shadow: none !important;
7133
+ .pagination :is(a, button):hover {
7134
+ background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 8%, transparent);
7135
+ }
7136
+ .pagination :is(a, button):has(> span) {
7137
+ width: auto;
7138
+ }
7139
+ .pagination :is(a, button) > i {
7140
+ font-size: var(--md-comp-pagination-icon-size);
7141
+ width: var(--md-comp-pagination-icon-size);
7142
+ height: var(--md-comp-pagination-icon-size);
7143
+ line-height: 1;
7144
+ }
7145
+ .pagination :is(a, button)[aria-current=page],
7146
+ .pagination .active > :is(a, button),
7147
+ .pagination li:has(> [aria-current=page]) > :is(a, button) {
7148
+ background-color: var(--md-comp-pagination-selected-color);
7149
+ color: var(--md-comp-pagination-selected-on-color);
7150
+ }
7151
+ .pagination :is(a, button)[aria-current=page]:hover,
7152
+ .pagination .active > :is(a, button):hover,
7153
+ .pagination li:has(> [aria-current=page]) > :is(a, button):hover {
7154
+ background-color: color-mix(in oklab, var(--md-comp-pagination-selected-on-color) 8%, var(--md-comp-pagination-selected-color));
7155
+ }
7156
+ .pagination :is(a, button)[aria-disabled=true],
7157
+ .pagination .disabled > :is(a, button) {
6480
7158
  color: color-mix(in oklab, var(--md-sys-color-on-surface) 38%, transparent);
6481
- background-color: color-mix(in oklab, var(--md-sys-color-on-surface) 12%, transparent);
6482
- border-color: transparent;
7159
+ background-color: transparent;
6483
7160
  pointer-events: none;
6484
- box-shadow: none;
6485
7161
  cursor: default;
6486
7162
  }
6487
- .pagination li i {
6488
- font-size: 2rem;
7163
+ .pagination li > span {
7164
+ box-sizing: border-box;
7165
+ display: inline-flex;
7166
+ align-items: center;
7167
+ justify-content: center;
7168
+ min-width: var(--md-comp-pagination-size);
7169
+ height: var(--md-comp-pagination-size);
7170
+ color: var(--md-sys-color-on-surface-variant);
6489
7171
  }
6490
- .pagination li.pages ul li {
6491
- display: inline-block;
6492
- float: none;
7172
+ .pagination .pages {
7173
+ min-width: 0;
6493
7174
  }
6494
- @media (width < 993px) {
6495
- .pagination {
6496
- width: 100%;
6497
- }
6498
- .pagination li.prev,
6499
- .pagination li.next {
6500
- width: 10%;
6501
- }
6502
- .pagination li.pages {
6503
- width: 80%;
6504
- overflow: hidden;
6505
- white-space: nowrap;
6506
- }
7175
+ .pagination .pages > :is(ul, ol) {
7176
+ display: flex;
7177
+ flex-wrap: inherit;
7178
+ align-items: center;
7179
+ gap: var(--md-comp-pagination-gap);
7180
+ list-style: none;
7181
+ min-width: 0;
7182
+ margin: 0;
7183
+ padding: 0;
6507
7184
  }
6508
7185
  }
6509
7186
  @layer utilities {