@cirthcss/cirth 0.10.0 → 0.12.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/dist/cirth.css CHANGED
@@ -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%;
@@ -66,7 +67,7 @@ section {
66
67
  display: grid;
67
68
  }
68
69
 
69
- @media (min-width: 768px) {
70
+ @media (width >= 768px) {
70
71
  .row {
71
72
  grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
72
73
  }
@@ -305,6 +306,7 @@ button, [type="submit"], [type="reset"], [type="button"], [role="button"] {
305
306
  --cirth-color: var(--cirth-primary-inverse);
306
307
  --cirth-box-shadow: var(--cirth-button-box-shadow, 0 0 0 #0000);
307
308
  max-width: 100%;
309
+ min-block-size: calc(var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
308
310
  padding: var(--cirth-form-element-spacing-vertical) var(--cirth-form-element-spacing-horizontal);
309
311
  border: var(--cirth-border-width) solid var(--cirth-border-color);
310
312
  border-radius: var(--cirth-border-radius);
@@ -329,6 +331,7 @@ button, [type="submit"], [type="reset"], [type="button"], [role="button"] {
329
331
  --cirth-color: var(--cirth-primary-inverse);
330
332
  --cirth-box-shadow: var(--cirth-button-box-shadow, 0 0 0 #0000);
331
333
  max-width: 100%;
334
+ min-block-size: calc(var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
332
335
  padding: var(--cirth-form-element-spacing-vertical) var(--cirth-form-element-spacing-horizontal);
333
336
  border: var(--cirth-border-width) solid var(--cirth-border-color);
334
337
  border-radius: var(--cirth-border-radius);
@@ -666,6 +669,10 @@ input:not([type="checkbox"], [type="radio"], [type="range"]) {
666
669
  height: calc(var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
667
670
  }
668
671
 
672
+ select, textarea {
673
+ min-block-size: calc(var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
674
+ }
675
+
669
676
  fieldset {
670
677
  width: 100%;
671
678
  margin: 0;
@@ -812,6 +819,10 @@ textarea {
812
819
  display: block;
813
820
  }
814
821
 
822
+ textarea:not([rows]) {
823
+ min-block-size: calc(4lh + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
824
+ }
825
+
815
826
  textarea:is([aria-invalid], :user-invalid:not([aria-invalid], [type="range"]):not(select:focus)) {
816
827
  --cirth-icon-height: calc(var(--cirth-size-4) * var(--cirth-line-height) +
817
828
  var(--cirth-form-element-spacing-vertical) * 2 +
@@ -856,14 +867,6 @@ label:has([type="checkbox"], [type="radio"]) {
856
867
  margin-inline-end: .5em;
857
868
  }
858
869
 
859
- [type="checkbox"]::-ms-check {
860
- display: none;
861
- }
862
-
863
- [type="radio"]::-ms-check {
864
- display: none;
865
- }
866
-
867
870
  [type="checkbox"]:checked, [type="checkbox"]:checked:active, [type="checkbox"]:checked:focus, [type="radio"]:checked, [type="radio"]:checked:active, [type="radio"]:checked:focus {
868
871
  --cirth-background-color: var(--cirth-primary-background);
869
872
  --cirth-border-color: var(--cirth-primary-border);
@@ -1057,6 +1060,7 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1057
1060
  }
1058
1061
 
1059
1062
  [type="file"]::file-selector-button {
1063
+ min-block-size: 0;
1060
1064
  padding: calc(var(--cirth-form-element-spacing-vertical) * .5) var(--cirth-form-element-spacing-horizontal);
1061
1065
  margin-inline-end: calc(var(--cirth-spacing) / 2);
1062
1066
  }
@@ -1094,14 +1098,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1094
1098
  transition: background-color var(--cirth-transition), box-shadow var(--cirth-transition);
1095
1099
  }
1096
1100
 
1097
- [type="range"]::-ms-track {
1098
- border-radius: var(--cirth-border-radius);
1099
- background-color: var(--cirth-range-border-color);
1100
- width: 100%;
1101
- height: .375rem;
1102
- transition: background-color var(--cirth-transition), box-shadow var(--cirth-transition);
1103
- }
1104
-
1105
1101
  [type="range"]::-webkit-slider-thumb {
1106
1102
  -webkit-appearance: none;
1107
1103
  border: var(--cirth-border-width-2) solid var(--cirth-range-thumb-border-color);
@@ -1115,19 +1111,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1115
1111
  }
1116
1112
 
1117
1113
  [type="range"]::-moz-range-thumb {
1118
- -webkit-appearance: none;
1119
- border: var(--cirth-border-width-2) solid var(--cirth-range-thumb-border-color);
1120
- background-color: var(--cirth-range-thumb-color);
1121
- cursor: pointer;
1122
- width: 1.25rem;
1123
- height: 1.25rem;
1124
- transition: background-color var(--cirth-transition), transform var(--cirth-transition);
1125
- border-radius: 50%;
1126
- margin-top: -.4375rem;
1127
- }
1128
-
1129
- [type="range"]::-ms-thumb {
1130
- -webkit-appearance: none;
1131
1114
  border: var(--cirth-border-width-2) solid var(--cirth-range-thumb-border-color);
1132
1115
  background-color: var(--cirth-range-thumb-color);
1133
1116
  cursor: pointer;
@@ -1151,10 +1134,6 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1151
1134
  transform: scale(1.25);
1152
1135
  }
1153
1136
 
1154
- [type="range"]:active::-ms-thumb {
1155
- transform: scale(1.25);
1156
- }
1157
-
1158
1137
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
1159
1138
  background-image: var(--cirth-icon-search);
1160
1139
  background-position: center left var(--cirth-form-element-spacing-horizontal);
@@ -1208,10 +1187,6 @@ details summary::marker {
1208
1187
  display: none;
1209
1188
  }
1210
1189
 
1211
- details summary::-moz-list-bullet {
1212
- list-style-type: none;
1213
- }
1214
-
1215
1190
  details summary:after {
1216
1191
  width: var(--cirth-size-4);
1217
1192
  height: var(--cirth-size-4);
@@ -1725,17 +1700,14 @@ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
1725
1700
  background: var(--cirth-meter-even-less-good-color);
1726
1701
  }
1727
1702
 
1728
- :root, :host {
1729
- --cirth-scrollbar-width: 0px;
1730
- }
1731
-
1732
1703
  dialog {
1704
+ opacity: 0;
1705
+ transition: opacity var(--cirth-transition), display var(--cirth-transition) allow-discrete, overlay var(--cirth-transition) allow-discrete;
1733
1706
  z-index: var(--cirth-z-index-modal);
1734
1707
  width: inherit;
1735
1708
  min-width: 100%;
1736
1709
  height: inherit;
1737
1710
  min-height: 100%;
1738
- -webkit-backdrop-filter: var(--cirth-modal-overlay-backdrop-filter);
1739
1711
  backdrop-filter: var(--cirth-modal-overlay-backdrop-filter);
1740
1712
  background-color: var(--cirth-modal-overlay-background-color);
1741
1713
  color: var(--cirth-color);
@@ -1748,7 +1720,25 @@ dialog {
1748
1720
  inset: 0;
1749
1721
  }
1750
1722
 
1723
+ dialog[open] {
1724
+ opacity: 1;
1725
+ }
1726
+
1727
+ @starting-style {
1728
+ dialog[open] {
1729
+ opacity: 0;
1730
+ }
1731
+ }
1732
+
1733
+ @starting-style {
1734
+ dialog[open] > article {
1735
+ opacity: 0;
1736
+ transform: translateY(-100%);
1737
+ }
1738
+ }
1739
+
1751
1740
  dialog > article {
1741
+ transition: opacity var(--cirth-transition), transform var(--cirth-transition);
1752
1742
  width: 100%;
1753
1743
  max-height: calc(100vh - var(--cirth-spacing) * 2);
1754
1744
  max-height: calc(100dvh - var(--cirth-spacing) * 2);
@@ -1756,13 +1746,13 @@ dialog > article {
1756
1746
  overflow: auto;
1757
1747
  }
1758
1748
 
1759
- @media (min-width: 576px) {
1749
+ @media (width >= 576px) {
1760
1750
  dialog > article {
1761
1751
  max-width: 510px;
1762
1752
  }
1763
1753
  }
1764
1754
 
1765
- @media (min-width: 768px) {
1755
+ @media (width >= 768px) {
1766
1756
  dialog > article {
1767
1757
  max-width: 700px;
1768
1758
  }
@@ -1773,7 +1763,7 @@ dialog > article > header > * {
1773
1763
  }
1774
1764
 
1775
1765
  dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
1776
- margin: 0;
1766
+ margin: calc(calc((var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-size-4)) / 2) * -1);
1777
1767
  float: right;
1778
1768
  margin-inline-start: var(--cirth-spacing);
1779
1769
  padding: 0;
@@ -1792,10 +1782,11 @@ dialog > article > footer button:not(:first-of-type), dialog > article > footer
1792
1782
  }
1793
1783
 
1794
1784
  dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
1795
- width: var(--cirth-size-4);
1796
- height: var(--cirth-size-4);
1797
- margin-top: calc(var(--cirth-spacing) * -1);
1798
- margin-bottom: var(--cirth-spacing);
1785
+ width: calc(var(--cirth-size-4) + calc((var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-size-4)) / 2) * 2);
1786
+ height: calc(var(--cirth-size-4) + calc((var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-size-4)) / 2) * 2);
1787
+ margin-top: calc(var(--cirth-spacing) * -1 - calc((var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-size-4)) / 2));
1788
+ margin-right: calc(calc((var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-size-4)) / 2) * -1);
1789
+ margin-bottom: calc(var(--cirth-spacing) - calc((var(--cirth-size-4) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-size-4)) / 2));
1799
1790
  background-image: var(--cirth-icon-close);
1800
1791
  background-position: center;
1801
1792
  background-size: auto var(--cirth-size-4);
@@ -1820,54 +1811,10 @@ dialog:not([open]), dialog[open="false"] {
1820
1811
  float: left;
1821
1812
  }
1822
1813
 
1823
- .modal-is-open {
1824
- pointer-events: none;
1825
- touch-action: none;
1826
- padding-inline-end: var(--cirth-scrollbar-width, 0);
1814
+ html:has(dialog:modal) {
1827
1815
  overflow: hidden;
1828
1816
  }
1829
1817
 
1830
- .modal-is-open dialog {
1831
- pointer-events: auto;
1832
- touch-action: auto;
1833
- }
1834
-
1835
- :where(.modal-is-opening, .modal-is-closing) dialog, :where(.modal-is-opening, .modal-is-closing) dialog > article {
1836
- animation-duration: var(--cirth-duration-normal);
1837
- animation-timing-function: var(--cirth-ease-in-out);
1838
- animation-fill-mode: both;
1839
- }
1840
-
1841
- :where(.modal-is-opening, .modal-is-closing) dialog {
1842
- animation-duration: calc(var(--cirth-duration-normal) * 4);
1843
- animation-name: modal-overlay;
1844
- }
1845
-
1846
- :where(.modal-is-opening, .modal-is-closing) dialog > article {
1847
- animation-delay: var(--cirth-duration-normal);
1848
- animation-name: modal;
1849
- }
1850
-
1851
- .modal-is-closing dialog, .modal-is-closing dialog > article {
1852
- animation-delay: var(--cirth-duration-instant);
1853
- animation-direction: reverse;
1854
- }
1855
-
1856
- @keyframes modal-overlay {
1857
- from {
1858
- -webkit-backdrop-filter: none;
1859
- backdrop-filter: none;
1860
- background-color: #0000;
1861
- }
1862
- }
1863
-
1864
- @keyframes modal {
1865
- from {
1866
- opacity: 0;
1867
- transform: translateY(-100%);
1868
- }
1869
- }
1870
-
1871
1818
  :where(nav li):before {
1872
1819
  float: left;
1873
1820
  content: "​";
@@ -1921,6 +1868,7 @@ nav li .group, nav li [role="search"] {
1921
1868
 
1922
1869
  nav li button, nav li [role="button"], nav li [type="button"], nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), nav li select {
1923
1870
  height: auto;
1871
+ min-block-size: var(--cirth-size-6);
1924
1872
  margin-inline: inherit;
1925
1873
  padding: calc(var(--cirth-nav-link-spacing-vertical) - var(--cirth-border-width) * 2) var(--cirth-nav-link-spacing-horizontal);
1926
1874
  margin-bottom: 0;
@@ -1975,6 +1923,35 @@ aside li [role="button"] {
1975
1923
  margin: inherit;
1976
1924
  }
1977
1925
 
1926
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog) {
1927
+ --cirth-popover-display: block;
1928
+ display: none;
1929
+ }
1930
+
1931
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open {
1932
+ display: var(--cirth-popover-display);
1933
+ max-width: var(--cirth-popover-max-width);
1934
+ padding: var(--cirth-space-2) var(--cirth-space-3);
1935
+ border: var(--cirth-border-width) solid var(--cirth-popover-border-color);
1936
+ border-radius: var(--cirth-border-radius);
1937
+ background-color: var(--cirth-popover-background-color);
1938
+ box-shadow: var(--cirth-popover-box-shadow);
1939
+ color: var(--cirth-popover-color);
1940
+ transition: opacity var(--cirth-transition), display var(--cirth-transition) allow-discrete, overlay var(--cirth-transition) allow-discrete;
1941
+ margin: auto;
1942
+ inset: 0;
1943
+ }
1944
+
1945
+ @starting-style {
1946
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open {
1947
+ opacity: 0;
1948
+ }
1949
+ }
1950
+
1951
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):not(:popover-open) {
1952
+ opacity: 0;
1953
+ }
1954
+
1978
1955
  progress {
1979
1956
  vertical-align: baseline;
1980
1957
  appearance: none;
@@ -1984,7 +1961,6 @@ progress {
1984
1961
  border: var(--cirth-border-width-1) solid var(--cirth-progress-border-color);
1985
1962
  border-radius: var(--cirth-border-radius);
1986
1963
  background-color: var(--cirth-progress-background-color);
1987
- color: var(--cirth-progress-color);
1988
1964
  display: inline-block;
1989
1965
  overflow: hidden;
1990
1966
  }
@@ -2032,160 +2008,6 @@ progress::-moz-progress-bar {
2032
2008
  }
2033
2009
  }
2034
2010
 
2035
- [data-tooltip] {
2036
- position: relative;
2037
- }
2038
-
2039
- [data-tooltip]:not(a, button, input, [role="button"]) {
2040
- border-bottom: var(--cirth-border-width-1) dotted;
2041
- cursor: help;
2042
- text-decoration: none;
2043
- }
2044
-
2045
- [data-tooltip][data-placement="top"]:before, [data-tooltip][data-placement="top"]:after, [data-tooltip]:before, [data-tooltip]:after {
2046
- z-index: var(--cirth-z-index-tooltip);
2047
- padding: var(--cirth-space-1) var(--cirth-space-2);
2048
- border-radius: var(--cirth-border-radius);
2049
- background: var(--cirth-tooltip-background-color);
2050
- content: attr(data-tooltip);
2051
- color: var(--cirth-tooltip-color);
2052
- font-style: normal;
2053
- font-weight: var(--cirth-font-weight);
2054
- font-size: var(--cirth-font-size-sm);
2055
- text-overflow: ellipsis;
2056
- white-space: nowrap;
2057
- opacity: 0;
2058
- pointer-events: none;
2059
- text-decoration: none;
2060
- display: block;
2061
- position: absolute;
2062
- bottom: 100%;
2063
- left: 50%;
2064
- overflow: hidden;
2065
- transform: translate(-50%, -.25rem);
2066
- }
2067
-
2068
- [data-tooltip][data-placement="top"]:after, [data-tooltip]:after {
2069
- content: "";
2070
- color: var(--cirth-tooltip-background-color);
2071
- background-color: #0000;
2072
- border-top: .3rem solid;
2073
- border-left: .3rem solid #0000;
2074
- border-right: .3rem solid #0000;
2075
- border-radius: 0;
2076
- padding: 0;
2077
- transform: translate(-50%);
2078
- }
2079
-
2080
- [data-tooltip][data-placement="bottom"]:before, [data-tooltip][data-placement="bottom"]:after {
2081
- top: 100%;
2082
- bottom: auto;
2083
- transform: translate(-50%, .25rem);
2084
- }
2085
-
2086
- [data-tooltip][data-placement="bottom"]:after {
2087
- border: .3rem solid #0000;
2088
- border-bottom-color: currentColor;
2089
- transform: translate(-50%, -.3rem);
2090
- }
2091
-
2092
- [data-tooltip][data-placement="left"]:before, [data-tooltip][data-placement="left"]:after {
2093
- inset: 50% 100% auto auto;
2094
- transform: translate(-.25rem, -50%);
2095
- }
2096
-
2097
- [data-tooltip][data-placement="left"]:after {
2098
- border: .3rem solid #0000;
2099
- border-left-color: currentColor;
2100
- transform: translate(.3rem, -50%);
2101
- }
2102
-
2103
- [data-tooltip][data-placement="right"]:before, [data-tooltip][data-placement="right"]:after {
2104
- inset: 50% auto auto 100%;
2105
- transform: translate(.25rem, -50%);
2106
- }
2107
-
2108
- [data-tooltip][data-placement="right"]:after {
2109
- border: .3rem solid #0000;
2110
- border-right-color: currentColor;
2111
- transform: translate(-.3rem, -50%);
2112
- }
2113
-
2114
- [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
2115
- opacity: 1;
2116
- }
2117
-
2118
- @media (hover: hover) and (pointer: fine) {
2119
- [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
2120
- --cirth-tooltip-slide-to: translate(-50%, -.25rem);
2121
- animation-duration: var(--cirth-duration-normal);
2122
- opacity: 0;
2123
- animation-name: tooltip-slide;
2124
- animation-fill-mode: forwards;
2125
- transform: translate(-50%, .75rem);
2126
- }
2127
-
2128
- [data-tooltip]:focus:after, [data-tooltip]:hover:after {
2129
- --cirth-tooltip-caret-slide-to: translate(-50%, 0rem);
2130
- animation-name: tooltip-caret-slide;
2131
- transform: translate(-50%, -.25rem);
2132
- }
2133
-
2134
- [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 {
2135
- --cirth-tooltip-slide-to: translate(-50%, .25rem);
2136
- animation-name: tooltip-slide;
2137
- transform: translate(-50%, -.75rem);
2138
- }
2139
-
2140
- [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:after {
2141
- --cirth-tooltip-caret-slide-to: translate(-50%, -.3rem);
2142
- animation-name: tooltip-caret-slide;
2143
- transform: translate(-50%, -.5rem);
2144
- }
2145
-
2146
- [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 {
2147
- --cirth-tooltip-slide-to: translate(-.25rem, -50%);
2148
- animation-name: tooltip-slide;
2149
- transform: translate(.75rem, -50%);
2150
- }
2151
-
2152
- [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:after {
2153
- --cirth-tooltip-caret-slide-to: translate(.3rem, -50%);
2154
- animation-name: tooltip-caret-slide;
2155
- transform: translate(.05rem, -50%);
2156
- }
2157
-
2158
- [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 {
2159
- --cirth-tooltip-slide-to: translate(.25rem, -50%);
2160
- animation-name: tooltip-slide;
2161
- transform: translate(-.75rem, -50%);
2162
- }
2163
-
2164
- [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:after {
2165
- --cirth-tooltip-caret-slide-to: translate(-.3rem, -50%);
2166
- animation-name: tooltip-caret-slide;
2167
- transform: translate(-.05rem, -50%);
2168
- }
2169
- }
2170
-
2171
- @keyframes tooltip-slide {
2172
- to {
2173
- transform: var(--cirth-tooltip-slide-to);
2174
- opacity: 1;
2175
- }
2176
- }
2177
-
2178
- @keyframes tooltip-caret-slide {
2179
- 50% {
2180
- opacity: 0;
2181
- }
2182
-
2183
- 100% {
2184
- transform: var(--cirth-tooltip-caret-slide-to);
2185
- opacity: 1;
2186
- }
2187
- }
2188
-
2189
2011
  [aria-controls] {
2190
2012
  cursor: pointer;
2191
2013
  }
@@ -2340,7 +2162,6 @@ progress::-moz-progress-bar {
2340
2162
  --cirth-z-index-fixed: 1030;
2341
2163
  --cirth-z-index-modal-backdrop: 1040;
2342
2164
  --cirth-z-index-modal: 1050;
2343
- --cirth-z-index-tooltip: 1070;
2344
2165
  --cirth-font-family: var(--cirth-font-family-sans);
2345
2166
  --cirth-line-height: var(--cirth-line-height-normal);
2346
2167
  --cirth-font-weight: var(--cirth-font-weight-regular);
@@ -2373,20 +2194,25 @@ progress::-moz-progress-bar {
2373
2194
  var(--cirth-form-element-border-color);
2374
2195
  --cirth-meter-background-color: var(--cirth-progress-background-color);
2375
2196
  --cirth-meter-border-color: var(--cirth-progress-border-color);
2197
+ --cirth-popover-background-color: var(--cirth-card-background-color);
2198
+ --cirth-popover-border-color: var(--cirth-muted-border-color);
2199
+ --cirth-popover-color: var(--cirth-color);
2200
+ --cirth-popover-box-shadow: var(--cirth-box-shadow);
2201
+ --cirth-popover-max-width: min(30rem, 100% - var(--cirth-spacing) * 2);
2376
2202
  --cirth-modal-overlay-backdrop-filter: blur(.375rem);
2377
2203
  --cirth-nav-element-spacing-vertical: var(--cirth-space-4);
2378
2204
  --cirth-nav-element-spacing-horizontal: var(--cirth-space-2);
2379
2205
  --cirth-nav-link-spacing-vertical: var(--cirth-space-2);
2380
2206
  --cirth-nav-link-spacing-horizontal: var(--cirth-space-2);
2381
2207
  --cirth-nav-breadcrumb-divider: ">";
2382
- --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");
2383
- --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");
2384
- --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");
2385
- --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");
2386
- --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");
2387
- --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");
2388
- --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");
2389
- --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");
2208
+ --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");
2209
+ --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");
2210
+ --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");
2211
+ --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");
2212
+ --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");
2213
+ --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");
2214
+ --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");
2215
+ --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");
2390
2216
  }
2391
2217
 
2392
2218
  a, a.secondary, a.contrast {
@@ -2645,10 +2471,8 @@ details summary[role="button"]:not(.outline):after {
2645
2471
  --cirth-progress-background-color: oklch(91.7% .006 264);
2646
2472
  --cirth-progress-border-color: oklch(61.3% .032 264);
2647
2473
  --cirth-progress-color: var(--cirth-primary-background);
2648
- --cirth-tooltip-background-color: var(--cirth-contrast-background);
2649
- --cirth-tooltip-color: var(--cirth-contrast-inverse);
2650
- --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");
2651
- --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");
2474
+ --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");
2475
+ --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");
2652
2476
  }
2653
2477
 
2654
2478
  :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"]) {
@@ -2762,10 +2586,8 @@ details summary[role="button"]:not(.outline):after {
2762
2586
  --cirth-progress-background-color: oklch(26.7% .011 264);
2763
2587
  --cirth-progress-border-color: oklch(52.7% .032 264);
2764
2588
  --cirth-progress-color: oklch(61.3% .113 69.35);
2765
- --cirth-tooltip-background-color: var(--cirth-contrast-background);
2766
- --cirth-tooltip-color: var(--cirth-contrast-inverse);
2767
- --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");
2768
- --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");
2589
+ --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");
2590
+ --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");
2769
2591
  }
2770
2592
 
2771
2593
  :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"]) {
@@ -2883,10 +2705,8 @@ details summary[role="button"]:not(.outline):after {
2883
2705
  --cirth-progress-background-color: oklch(26.7% .011 264);
2884
2706
  --cirth-progress-border-color: oklch(52.7% .032 264);
2885
2707
  --cirth-progress-color: oklch(61.3% .113 69.35);
2886
- --cirth-tooltip-background-color: var(--cirth-contrast-background);
2887
- --cirth-tooltip-color: var(--cirth-contrast-inverse);
2888
- --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");
2889
- --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");
2708
+ --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");
2709
+ --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");
2890
2710
  }
2891
2711
 
2892
2712
  :where([data-theme="dark"]) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
@@ -3118,7 +2938,6 @@ progress, [type="checkbox"], [type="radio"], [type="range"] {
3118
2938
  }
3119
2939
 
3120
2940
  dialog {
3121
- -webkit-backdrop-filter: none;
3122
2941
  backdrop-filter: none;
3123
2942
  min-width: 0;
3124
2943
  min-height: 0;