@cirthcss/cirth 0.10.0 → 0.11.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/README.md CHANGED
@@ -55,8 +55,8 @@ Include one stylesheet and write ordinary semantic HTML.
55
55
  ```html
56
56
  <link
57
57
  rel="stylesheet"
58
- href="https://cdn.jsdelivr.net/npm/@cirthcss/cirth@0.10.0/dist/cirth.min.css"
59
- integrity="sha384-eryxoPjA1vogVlspjzxHv7EDws0Ns2llZpU+nFSO6MKh58+TqPrpTxm/nBZcjAuE"
58
+ href="https://cdn.jsdelivr.net/npm/@cirthcss/cirth@0.11.0/dist/cirth.min.css"
59
+ integrity="sha384-gY1h03CuKKEHKTnH6uBur925Uk1yp4+5VW4BQoPN/UTG/dqjekX52Eg084QriHT4"
60
60
  crossorigin="anonymous">
61
61
  ```
62
62
 
@@ -250,8 +250,8 @@ npm run docs:dev
250
250
  [Meter](docs/src/pages/components/meter.md) ·
251
251
  [Modal](docs/src/pages/components/modal.md) ·
252
252
  [Nav](docs/src/pages/components/nav.md) ·
253
- [Progress](docs/src/pages/components/progress.md) ·
254
- [Tooltip](docs/src/pages/components/tooltip.md)
253
+ [Popover](docs/src/pages/components/popover.md) ·
254
+ [Progress](docs/src/pages/components/progress.md)
255
255
  - **Utilities** —
256
256
  [Accessibility](docs/src/pages/utilities/accessibility.md) ·
257
257
  [High contrast](docs/src/pages/utilities/high-contrast.md) ·
@@ -286,20 +286,38 @@ npm pack --dry-run
286
286
  ## Browser Support
287
287
 
288
288
  Cirth is designed and tested for the latest stable Chrome, Edge, Firefox,
289
- and Safari releases. The compiled CSS is processed with Lightning CSS
290
- against this Browserslist target:
289
+ and Safari releases, on desktop and mobile. The compiled CSS is processed
290
+ with Lightning CSS against this Browserslist target:
291
291
 
292
292
  ```json
293
293
  [
294
- "Chrome >= 111",
295
- "Edge >= 111",
296
- "Firefox >= 113",
297
- "Safari >= 15.4",
298
- "iOS >= 15.4"
294
+ "Chrome >= 123",
295
+ "ChromeAndroid >= 123",
296
+ "Edge >= 123",
297
+ "Firefox >= 130",
298
+ "FirefoxAndroid >= 130",
299
+ "iOS >= 18.2",
300
+ "Opera >= 109",
301
+ "OperaMobile >= 73",
302
+ "Safari >= 18.2",
303
+ "Samsung >= 27"
299
304
  ]
300
305
  ```
301
306
 
302
- No version of Internet Explorer is supported.
307
+ Opera 109 and Samsung Internet 27 are the releases built on the same
308
+ Chromium as Chrome 123, so every entry above describes one engine floor,
309
+ not ten independent ones. Together they account for roughly 78% of global
310
+ browser usage, and the number rises on its own as old versions retire.
311
+
312
+ The floor is set by what the library needs, not by age: `popover`,
313
+ `@starting-style`, `transition-behavior: allow-discrete` and
314
+ `scrollbar-gutter` are what let components open, close and animate
315
+ without JavaScript, and `:has()`, `color-mix()` and `light-dark()` are
316
+ what let the theme express relationships instead of baking them.
317
+
318
+ No version of Internet Explorer is supported, and neither is the legacy
319
+ Android Browser — on any current Android device that name refers to
320
+ Chrome, which `ChromeAndroid` already covers.
303
321
 
304
322
  ## Design principles
305
323
 
@@ -10,6 +10,7 @@
10
10
  }
11
11
 
12
12
  :where(:root), :where(:host) {
13
+ scrollbar-gutter: stable;
13
14
  -webkit-tap-highlight-color: transparent;
14
15
  -webkit-text-size-adjust: 100%;
15
16
  -moz-text-size-adjust: 100%;
@@ -729,14 +730,6 @@ label:has([type="checkbox"], [type="radio"]) {
729
730
  margin-inline-end: .5em;
730
731
  }
731
732
 
732
- [type="checkbox"]::-ms-check {
733
- display: none;
734
- }
735
-
736
- [type="radio"]::-ms-check {
737
- display: none;
738
- }
739
-
740
733
  [type="checkbox"]:checked, [type="checkbox"]:checked:active, [type="checkbox"]:checked:focus, [type="radio"]:checked, [type="radio"]:checked:active, [type="radio"]:checked:focus {
741
734
  --cirth-background-color: var(--cirth-primary-background);
742
735
  --cirth-border-color: var(--cirth-primary-border);
@@ -967,14 +960,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
967
960
  transition: background-color var(--cirth-transition), box-shadow var(--cirth-transition);
968
961
  }
969
962
 
970
- [type="range"]::-ms-track {
971
- border-radius: var(--cirth-border-radius);
972
- background-color: var(--cirth-range-border-color);
973
- width: 100%;
974
- height: .375rem;
975
- transition: background-color var(--cirth-transition), box-shadow var(--cirth-transition);
976
- }
977
-
978
963
  [type="range"]::-webkit-slider-thumb {
979
964
  -webkit-appearance: none;
980
965
  border: var(--cirth-border-width-2) solid var(--cirth-range-thumb-border-color);
@@ -988,19 +973,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
988
973
  }
989
974
 
990
975
  [type="range"]::-moz-range-thumb {
991
- -webkit-appearance: none;
992
- border: var(--cirth-border-width-2) solid var(--cirth-range-thumb-border-color);
993
- background-color: var(--cirth-range-thumb-color);
994
- cursor: pointer;
995
- width: 1.25rem;
996
- height: 1.25rem;
997
- transition: background-color var(--cirth-transition), transform var(--cirth-transition);
998
- border-radius: 50%;
999
- margin-top: -.4375rem;
1000
- }
1001
-
1002
- [type="range"]::-ms-thumb {
1003
- -webkit-appearance: none;
1004
976
  border: var(--cirth-border-width-2) solid var(--cirth-range-thumb-border-color);
1005
977
  background-color: var(--cirth-range-thumb-color);
1006
978
  cursor: pointer;
@@ -1024,10 +996,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1024
996
  transform: scale(1.25);
1025
997
  }
1026
998
 
1027
- [type="range"]:active::-ms-thumb {
1028
- transform: scale(1.25);
1029
- }
1030
-
1031
999
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
1032
1000
  background-image: var(--cirth-icon-search);
1033
1001
  background-position: center left var(--cirth-form-element-spacing-horizontal);
@@ -1081,10 +1049,6 @@ details summary::marker {
1081
1049
  display: none;
1082
1050
  }
1083
1051
 
1084
- details summary::-moz-list-bullet {
1085
- list-style-type: none;
1086
- }
1087
-
1088
1052
  details summary:after {
1089
1053
  width: var(--cirth-size-4);
1090
1054
  height: var(--cirth-size-4);
@@ -1442,17 +1406,14 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
1442
1406
  background: var(--cirth-meter-even-less-good-color);
1443
1407
  }
1444
1408
 
1445
- :root, :host {
1446
- --cirth-scrollbar-width: 0px;
1447
- }
1448
-
1449
1409
  dialog {
1410
+ opacity: 0;
1411
+ transition: opacity var(--cirth-transition), display var(--cirth-transition) allow-discrete, overlay var(--cirth-transition) allow-discrete;
1450
1412
  z-index: var(--cirth-z-index-modal);
1451
1413
  width: inherit;
1452
1414
  min-width: 100%;
1453
1415
  height: inherit;
1454
1416
  min-height: 100%;
1455
- -webkit-backdrop-filter: var(--cirth-modal-overlay-backdrop-filter);
1456
1417
  backdrop-filter: var(--cirth-modal-overlay-backdrop-filter);
1457
1418
  background-color: var(--cirth-modal-overlay-background-color);
1458
1419
  color: var(--cirth-color);
@@ -1465,7 +1426,25 @@ dialog {
1465
1426
  inset: 0;
1466
1427
  }
1467
1428
 
1429
+ dialog[open] {
1430
+ opacity: 1;
1431
+ }
1432
+
1433
+ @starting-style {
1434
+ dialog[open] {
1435
+ opacity: 0;
1436
+ }
1437
+ }
1438
+
1439
+ @starting-style {
1440
+ dialog[open] > article {
1441
+ opacity: 0;
1442
+ transform: translateY(-100%);
1443
+ }
1444
+ }
1445
+
1468
1446
  dialog > article {
1447
+ transition: opacity var(--cirth-transition), transform var(--cirth-transition);
1469
1448
  width: 100%;
1470
1449
  max-height: calc(100vh - var(--cirth-spacing) * 2);
1471
1450
  max-height: calc(100dvh - var(--cirth-spacing) * 2);
@@ -1473,13 +1452,13 @@ dialog > article {
1473
1452
  overflow: auto;
1474
1453
  }
1475
1454
 
1476
- @media (min-width: 576px) {
1455
+ @media (width >= 576px) {
1477
1456
  dialog > article {
1478
1457
  max-width: 510px;
1479
1458
  }
1480
1459
  }
1481
1460
 
1482
- @media (min-width: 768px) {
1461
+ @media (width >= 768px) {
1483
1462
  dialog > article {
1484
1463
  max-width: 700px;
1485
1464
  }
@@ -1537,6 +1516,10 @@ dialog:not([open]), dialog[open="false"] {
1537
1516
  float: left;
1538
1517
  }
1539
1518
 
1519
+ html:has(dialog[open]) {
1520
+ overflow: hidden;
1521
+ }
1522
+
1540
1523
  :where(nav li):before {
1541
1524
  float: left;
1542
1525
  content: "​";
@@ -1644,6 +1627,33 @@ aside li [role="button"] {
1644
1627
  margin: inherit;
1645
1628
  }
1646
1629
 
1630
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog) {
1631
+ --cirth-popover-display: block;
1632
+ display: none;
1633
+ }
1634
+
1635
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open {
1636
+ display: var(--cirth-popover-display);
1637
+ max-width: var(--cirth-popover-max-width);
1638
+ padding: var(--cirth-space-2) var(--cirth-space-3);
1639
+ border: var(--cirth-border-width) solid var(--cirth-popover-border-color);
1640
+ border-radius: var(--cirth-border-radius);
1641
+ background-color: var(--cirth-popover-background-color);
1642
+ box-shadow: var(--cirth-popover-box-shadow);
1643
+ color: var(--cirth-popover-color);
1644
+ transition: opacity var(--cirth-transition), display var(--cirth-transition) allow-discrete, overlay var(--cirth-transition) allow-discrete;
1645
+ }
1646
+
1647
+ @starting-style {
1648
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open {
1649
+ opacity: 0;
1650
+ }
1651
+ }
1652
+
1653
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):not(:popover-open) {
1654
+ opacity: 0;
1655
+ }
1656
+
1647
1657
  progress {
1648
1658
  vertical-align: baseline;
1649
1659
  appearance: none;
@@ -1653,7 +1663,6 @@ progress {
1653
1663
  border: var(--cirth-border-width-1) solid var(--cirth-progress-border-color);
1654
1664
  border-radius: var(--cirth-border-radius);
1655
1665
  background-color: var(--cirth-progress-background-color);
1656
- color: var(--cirth-progress-color);
1657
1666
  display: inline-block;
1658
1667
  overflow: hidden;
1659
1668
  }
@@ -1701,160 +1710,6 @@ progress::-moz-progress-bar {
1701
1710
  }
1702
1711
  }
1703
1712
 
1704
- [data-tooltip] {
1705
- position: relative;
1706
- }
1707
-
1708
- [data-tooltip]:not(a, button, input, [role="button"]) {
1709
- border-bottom: var(--cirth-border-width-1) dotted;
1710
- cursor: help;
1711
- text-decoration: none;
1712
- }
1713
-
1714
- [data-tooltip][data-placement="top"]:before, [data-tooltip][data-placement="top"]:after, [data-tooltip]:before, [data-tooltip]:after {
1715
- z-index: var(--cirth-z-index-tooltip);
1716
- padding: var(--cirth-space-1) var(--cirth-space-2);
1717
- border-radius: var(--cirth-border-radius);
1718
- background: var(--cirth-tooltip-background-color);
1719
- content: attr(data-tooltip);
1720
- color: var(--cirth-tooltip-color);
1721
- font-style: normal;
1722
- font-weight: var(--cirth-font-weight);
1723
- font-size: var(--cirth-font-size-sm);
1724
- text-overflow: ellipsis;
1725
- white-space: nowrap;
1726
- opacity: 0;
1727
- pointer-events: none;
1728
- text-decoration: none;
1729
- display: block;
1730
- position: absolute;
1731
- bottom: 100%;
1732
- left: 50%;
1733
- overflow: hidden;
1734
- transform: translate(-50%, -.25rem);
1735
- }
1736
-
1737
- [data-tooltip][data-placement="top"]:after, [data-tooltip]:after {
1738
- content: "";
1739
- color: var(--cirth-tooltip-background-color);
1740
- background-color: #0000;
1741
- border-top: .3rem solid;
1742
- border-left: .3rem solid #0000;
1743
- border-right: .3rem solid #0000;
1744
- border-radius: 0;
1745
- padding: 0;
1746
- transform: translate(-50%);
1747
- }
1748
-
1749
- [data-tooltip][data-placement="bottom"]:before, [data-tooltip][data-placement="bottom"]:after {
1750
- top: 100%;
1751
- bottom: auto;
1752
- transform: translate(-50%, .25rem);
1753
- }
1754
-
1755
- [data-tooltip][data-placement="bottom"]:after {
1756
- border: .3rem solid #0000;
1757
- border-bottom-color: currentColor;
1758
- transform: translate(-50%, -.3rem);
1759
- }
1760
-
1761
- [data-tooltip][data-placement="left"]:before, [data-tooltip][data-placement="left"]:after {
1762
- inset: 50% 100% auto auto;
1763
- transform: translate(-.25rem, -50%);
1764
- }
1765
-
1766
- [data-tooltip][data-placement="left"]:after {
1767
- border: .3rem solid #0000;
1768
- border-left-color: currentColor;
1769
- transform: translate(.3rem, -50%);
1770
- }
1771
-
1772
- [data-tooltip][data-placement="right"]:before, [data-tooltip][data-placement="right"]:after {
1773
- inset: 50% auto auto 100%;
1774
- transform: translate(.25rem, -50%);
1775
- }
1776
-
1777
- [data-tooltip][data-placement="right"]:after {
1778
- border: .3rem solid #0000;
1779
- border-right-color: currentColor;
1780
- transform: translate(-.3rem, -50%);
1781
- }
1782
-
1783
- [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
1784
- opacity: 1;
1785
- }
1786
-
1787
- @media (hover: hover) and (pointer: fine) {
1788
- [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
1789
- --cirth-tooltip-slide-to: translate(-50%, -.25rem);
1790
- animation-duration: var(--cirth-duration-normal);
1791
- opacity: 0;
1792
- animation-name: tooltip-slide;
1793
- animation-fill-mode: forwards;
1794
- transform: translate(-50%, .75rem);
1795
- }
1796
-
1797
- [data-tooltip]:focus:after, [data-tooltip]:hover:after {
1798
- --cirth-tooltip-caret-slide-to: translate(-50%, 0rem);
1799
- animation-name: tooltip-caret-slide;
1800
- transform: translate(-50%, -.25rem);
1801
- }
1802
-
1803
- [data-tooltip][data-placement="bottom"]:focus:before, [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:before, [data-tooltip][data-placement="bottom"]:hover:after {
1804
- --cirth-tooltip-slide-to: translate(-50%, .25rem);
1805
- animation-name: tooltip-slide;
1806
- transform: translate(-50%, -.75rem);
1807
- }
1808
-
1809
- [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:after {
1810
- --cirth-tooltip-caret-slide-to: translate(-50%, -.3rem);
1811
- animation-name: tooltip-caret-slide;
1812
- transform: translate(-50%, -.5rem);
1813
- }
1814
-
1815
- [data-tooltip][data-placement="left"]:focus:before, [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:before, [data-tooltip][data-placement="left"]:hover:after {
1816
- --cirth-tooltip-slide-to: translate(-.25rem, -50%);
1817
- animation-name: tooltip-slide;
1818
- transform: translate(.75rem, -50%);
1819
- }
1820
-
1821
- [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:after {
1822
- --cirth-tooltip-caret-slide-to: translate(.3rem, -50%);
1823
- animation-name: tooltip-caret-slide;
1824
- transform: translate(.05rem, -50%);
1825
- }
1826
-
1827
- [data-tooltip][data-placement="right"]:focus:before, [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:before, [data-tooltip][data-placement="right"]:hover:after {
1828
- --cirth-tooltip-slide-to: translate(.25rem, -50%);
1829
- animation-name: tooltip-slide;
1830
- transform: translate(-.75rem, -50%);
1831
- }
1832
-
1833
- [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:after {
1834
- --cirth-tooltip-caret-slide-to: translate(-.3rem, -50%);
1835
- animation-name: tooltip-caret-slide;
1836
- transform: translate(-.05rem, -50%);
1837
- }
1838
- }
1839
-
1840
- @keyframes tooltip-slide {
1841
- to {
1842
- transform: var(--cirth-tooltip-slide-to);
1843
- opacity: 1;
1844
- }
1845
- }
1846
-
1847
- @keyframes tooltip-caret-slide {
1848
- 50% {
1849
- opacity: 0;
1850
- }
1851
-
1852
- 100% {
1853
- transform: var(--cirth-tooltip-caret-slide-to);
1854
- opacity: 1;
1855
- }
1856
- }
1857
-
1858
1713
  [aria-controls] {
1859
1714
  cursor: pointer;
1860
1715
  }
@@ -1981,7 +1836,6 @@ progress::-moz-progress-bar {
1981
1836
  --cirth-z-index-fixed: 1030;
1982
1837
  --cirth-z-index-modal-backdrop: 1040;
1983
1838
  --cirth-z-index-modal: 1050;
1984
- --cirth-z-index-tooltip: 1070;
1985
1839
  --cirth-font-family: var(--cirth-font-family-sans);
1986
1840
  --cirth-line-height: var(--cirth-line-height-normal);
1987
1841
  --cirth-font-weight: var(--cirth-font-weight-regular);
@@ -2011,20 +1865,25 @@ progress::-moz-progress-bar {
2011
1865
  var(--cirth-form-element-border-color);
2012
1866
  --cirth-meter-background-color: var(--cirth-progress-background-color);
2013
1867
  --cirth-meter-border-color: var(--cirth-progress-border-color);
1868
+ --cirth-popover-background-color: var(--cirth-card-background-color);
1869
+ --cirth-popover-border-color: var(--cirth-muted-border-color);
1870
+ --cirth-popover-color: var(--cirth-color);
1871
+ --cirth-popover-box-shadow: var(--cirth-box-shadow);
1872
+ --cirth-popover-max-width: min(30rem, 100% - var(--cirth-spacing) * 2);
2014
1873
  --cirth-modal-overlay-backdrop-filter: blur(.375rem);
2015
1874
  --cirth-nav-element-spacing-vertical: var(--cirth-space-4);
2016
1875
  --cirth-nav-element-spacing-horizontal: var(--cirth-space-2);
2017
1876
  --cirth-nav-link-spacing-vertical: var(--cirth-space-2);
2018
1877
  --cirth-nav-link-spacing-horizontal: var(--cirth-space-2);
2019
1878
  --cirth-nav-breadcrumb-divider: ">";
2020
- --cirth-icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2021
- --cirth-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
2022
- --cirth-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
2023
- --cirth-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
2024
- --cirth-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
2025
- --cirth-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
2026
- --cirth-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
2027
- --cirth-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 146, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
1879
+ --cirth-icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
1880
+ --cirth-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
1881
+ --cirth-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
1882
+ --cirth-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
1883
+ --cirth-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
1884
+ --cirth-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
1885
+ --cirth-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
1886
+ --cirth-icon-loading: url("data:image/svg+xml,%3Csvg fill='none' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 146, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
2028
1887
  }
2029
1888
 
2030
1889
  a {
@@ -2254,10 +2113,8 @@ details summary[role="button"]:after {
2254
2113
  --cirth-progress-background-color: oklch(91.7% .006 264);
2255
2114
  --cirth-progress-border-color: oklch(61.3% .032 264);
2256
2115
  --cirth-progress-color: var(--cirth-primary-background);
2257
- --cirth-tooltip-background-color: var(--cirth-contrast-background);
2258
- --cirth-tooltip-color: var(--cirth-contrast-inverse);
2259
- --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(40, 124, 87)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2260
- --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(189, 47, 33)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2116
+ --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(40, 124, 87)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2117
+ --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(189, 47, 33)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2261
2118
  }
2262
2119
 
2263
2120
  :where([data-theme="light"]) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :root:where(:not([data-theme="dark"])) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :host(:where(:not([data-theme="dark"]))) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
@@ -2366,10 +2223,8 @@ details summary[role="button"]:after {
2366
2223
  --cirth-progress-background-color: oklch(26.7% .011 264);
2367
2224
  --cirth-progress-border-color: oklch(52.7% .032 264);
2368
2225
  --cirth-progress-color: oklch(61.3% .113 69.35);
2369
- --cirth-tooltip-background-color: var(--cirth-contrast-background);
2370
- --cirth-tooltip-color: var(--cirth-contrast-inverse);
2371
- --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(75, 215, 153)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2372
- --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(246, 160, 145)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2226
+ --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(75, 215, 153)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2227
+ --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(246, 160, 145)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2373
2228
  }
2374
2229
 
2375
2230
  :root:where(:not([data-theme])) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :host(:where(:not([data-theme]))) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
@@ -2478,10 +2333,8 @@ details summary[role="button"]:after {
2478
2333
  --cirth-progress-background-color: oklch(26.7% .011 264);
2479
2334
  --cirth-progress-border-color: oklch(52.7% .032 264);
2480
2335
  --cirth-progress-color: oklch(61.3% .113 69.35);
2481
- --cirth-tooltip-background-color: var(--cirth-contrast-background);
2482
- --cirth-tooltip-color: var(--cirth-contrast-inverse);
2483
- --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(75, 215, 153)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2484
- --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(246, 160, 145)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2336
+ --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(75, 215, 153)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2337
+ --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(246, 160, 145)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2485
2338
  }
2486
2339
 
2487
2340
  :where([data-theme="dark"]) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
@@ -2700,7 +2553,6 @@ progress, [type="checkbox"], [type="radio"], [type="range"] {
2700
2553
  }
2701
2554
 
2702
2555
  dialog {
2703
- -webkit-backdrop-filter: none;
2704
2556
  backdrop-filter: none;
2705
2557
  min-width: 0;
2706
2558
  min-height: 0;