@anyblades/blades 3.1.0-beta.5 → 3.1.0-beta.6

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 (77) hide show
  1. package/.prettierrc.json +0 -7
  2. package/README.md +4 -3
  3. package/_includes/.prettierrc.json +12 -0
  4. package/_includes/package.json +10 -0
  5. package/css/blades.css +941 -1804
  6. package/css/blades.min.css +11 -1
  7. package/css/blades.ninja.css +1123 -2264
  8. package/css/blades.ninja.min.css +16 -1
  9. package/css/float-label.css +34 -187
  10. package/css/float-label.min.css +1 -1
  11. package/css/layered/blades.layered.css +941 -1804
  12. package/css/layered/blades.layered.min.css +11 -1
  13. package/css/layered/compact.css +10 -31
  14. package/css/layered/components/accordion.css +32 -21
  15. package/css/layered/components/card.css +8 -16
  16. package/css/layered/components/dropdown-popover.css +44 -59
  17. package/css/layered/components/dropdown.css +61 -61
  18. package/css/layered/components/group.css +40 -156
  19. package/css/layered/components/loading.css +28 -35
  20. package/css/layered/components/modal-modern.css +7 -15
  21. package/css/layered/components/modal.css +54 -65
  22. package/css/layered/components/nav.css +36 -36
  23. package/css/layered/components/progress.css +18 -23
  24. package/css/layered/components/timeline.css +5 -19
  25. package/css/layered/components/tooltip.css +88 -103
  26. package/css/layered/components.css +371 -517
  27. package/css/layered/content/button.css +37 -117
  28. package/css/layered/content/code-block.css +11 -23
  29. package/css/layered/content/code.css +11 -26
  30. package/css/layered/content/embedded-content.css +5 -10
  31. package/css/layered/content/figure.css +3 -5
  32. package/css/layered/content/icon.css +20 -47
  33. package/css/layered/content/link.css +18 -40
  34. package/css/layered/content/misc.css +1 -5
  35. package/css/layered/content/table.css +4 -10
  36. package/css/layered/content/typography.css +22 -41
  37. package/css/layered/content.css +102 -254
  38. package/css/layered/forms/basics.css +64 -142
  39. package/css/layered/forms/checkbox-radio-switch.css +46 -75
  40. package/css/layered/forms/float-label/core.css +13 -85
  41. package/css/layered/forms/float-label/theme.css +22 -104
  42. package/css/layered/forms/float-label.css +34 -187
  43. package/css/layered/forms/input-color.css +5 -5
  44. package/css/layered/forms/input-datetime.css +9 -26
  45. package/css/layered/forms/input-file.css +7 -8
  46. package/css/layered/forms/input-range.css +43 -50
  47. package/css/layered/forms/input-search.css +16 -47
  48. package/css/layered/forms.css +197 -355
  49. package/css/layered/layout/columns.css +4 -24
  50. package/css/layered/layout/container.css +13 -13
  51. package/css/layered/layout/document.css +4 -12
  52. package/css/layered/layout/grid.css +6 -8
  53. package/css/layered/layout/landmarks.css +1 -7
  54. package/css/layered/layout/overflow-auto.css +0 -3
  55. package/css/layered/layout/section.css +0 -3
  56. package/css/layered/layout.css +26 -39
  57. package/css/layered/utilities.css +6 -15
  58. package/css/layered/variables-blades.css +4 -16
  59. package/css/layered/variables.css +77 -181
  60. package/css/pico.conditional.css +785 -1368
  61. package/css/pico.conditional.min.css +1 -1
  62. package/css/pico.css +785 -1368
  63. package/css/pico.min.css +1 -1
  64. package/package.json +12 -25
  65. package/src/blades/_index.css +9 -9
  66. package/src/blades/forms/float-label/_index.css +2 -2
  67. package/src/blades.css +2 -2
  68. package/src/blades.ninja.css +3 -3
  69. package/src/float-label.css +1 -1
  70. package/src/ninja/_index.css +7 -8
  71. package/src/pico/_index.css +6 -6
  72. package/src/pico/components/_index.css +9 -9
  73. package/src/pico/content/_index.css +8 -8
  74. package/src/pico/forms/_index.css +7 -7
  75. package/src/pico/layout/_index.css +5 -5
  76. package/src/pico.css +2 -2
  77. package/src/ninja/_scroll-to.css +0 -10
package/css/blades.css CHANGED
@@ -2,95 +2,91 @@
2
2
  * Blades CSS v3 with Pico CSS 🥷✨
3
3
  * Copyright 2026 (https://blades.ninja/)
4
4
  * Licensed under MIT
5
- *//*!
5
+ */
6
+ /*!
6
7
  * Blades CSS' Pico fork v2.5 🥷✨
7
8
  * Copyright 2019-2025 (https://picocss.com)
8
9
  * Copyright 2026 (https://blades.ninja/css/pico/)
9
10
  * Licensed under MIT
10
- *//**
11
- * Variables
12
11
  */
13
- :scope,
14
- :host {
15
- --pico-font-family-emoji:
16
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
17
- --pico-font-family-sans-serif:
18
- system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue",
12
+ /*!
13
+ * Blades CSS standalone kit v3 🥷
14
+ * Copyright 2026 (https://blades.ninja/css/standalone/)
15
+ * Licensed under MIT
16
+ */
17
+ /*!
18
+ * Float Label CSS v2 by Blades CSS 🥷🏷️
19
+ * Copyright 2016–2026 (https://blades.ninja/css/float-label/)
20
+ * Licensed under MIT
21
+ */
22
+ :scope, :host {
23
+ --pico-font-family-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
24
+ --pico-font-family-sans-serif: system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, Helvetica, Arial, "Helvetica Neue",
19
25
  sans-serif, var(--pico-font-family-emoji);
20
- --pico-font-family-monospace:
21
- ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace,
26
+ --pico-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace,
22
27
  var(--pico-font-family-emoji);
23
28
  --pico-font-family: var(--pico-font-family-sans-serif);
24
29
  --pico-line-height: 1.5;
25
30
  --pico-font-weight: 400;
26
31
  --pico-font-size: 100%;
27
- --pico-text-underline-offset: 0.1rem;
28
- --pico-border-radius: 0.25rem;
29
- --pico-border-width: 0.0625rem;
30
- --pico-outline-width: 0.125rem;
31
- --pico-transition: 0.2s ease-in-out;
32
+ --pico-text-underline-offset: .1rem;
33
+ --pico-border-radius: .25rem;
34
+ --pico-border-width: .0625rem;
35
+ --pico-outline-width: .125rem;
36
+ --pico-transition: .2s ease-in-out;
32
37
  --pico-spacing: 1rem;
33
38
  --pico-typography-spacing-vertical: 1rem;
34
39
  --pico-block-spacing-vertical: var(--pico-spacing);
35
40
  --pico-block-spacing-horizontal: var(--pico-spacing);
36
41
  --pico-grid-column-gap: var(--pico-spacing);
37
42
  --pico-grid-row-gap: var(--pico-spacing);
38
- --pico-form-element-spacing-vertical: 0.75rem;
43
+ --pico-form-element-spacing-vertical: .75rem;
39
44
  --pico-form-element-spacing-horizontal: 1rem;
40
45
  --pico-nav-element-spacing-vertical: 1rem;
41
- --pico-nav-link-spacing-vertical: 0.5rem;
42
- --pico-nav-link-spacing-horizontal: 0.5rem;
46
+ --pico-nav-link-spacing-vertical: .5rem;
47
+ --pico-nav-link-spacing-horizontal: .5rem;
43
48
  --pico-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, 145, 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");
44
49
  }
45
- @media (min-width: 576px) {
46
- :scope,
47
- :host {
50
+
51
+ @media (width >= 576px) {
52
+ :scope, :host {
48
53
  --pico-font-size: 106.25%;
49
54
  }
50
55
  }
51
- @media (min-width: 768px) {
52
- :scope,
53
- :host {
56
+
57
+ @media (width >= 768px) {
58
+ :scope, :host {
54
59
  --pico-font-size: 112.5%;
55
60
  }
56
61
  }
57
- @media (min-width: 1024px) {
58
- :scope,
59
- :host {
62
+
63
+ @media (width >= 1024px) {
64
+ :scope, :host {
60
65
  --pico-font-size: 118.75%;
61
66
  }
62
67
  }
63
- @media (min-width: 1280px) {
64
- :scope,
65
- :host {
68
+
69
+ @media (width >= 1280px) {
70
+ :scope, :host {
66
71
  --pico-font-size: 125%;
67
72
  }
68
73
  }
69
- @media (min-width: 1536px) {
70
- :scope,
71
- :host {
74
+
75
+ @media (width >= 1536px) {
76
+ :scope, :host {
72
77
  --pico-font-size: 131.25%;
73
78
  }
74
79
  }
75
80
 
76
- a {
77
- --pico-text-decoration: underline;
78
- }
79
- a.secondary,
80
- a.contrast {
81
+ a, a.secondary, a.contrast {
81
82
  --pico-text-decoration: underline;
82
83
  }
83
84
 
84
85
  small {
85
- --pico-font-size: 0.875em;
86
+ --pico-font-size: .875em;
86
87
  }
87
88
 
88
- h1,
89
- h2,
90
- h3,
91
- h4,
92
- h5,
93
- h6 {
89
+ h1, h2, h3, h4, h5, h6 {
94
90
  --pico-font-weight: 700;
95
91
  }
96
92
 
@@ -130,18 +126,12 @@ h6 {
130
126
  --pico-typography-spacing-top: 1.5rem;
131
127
  }
132
128
 
133
- thead th,
134
- thead td,
135
- tfoot th,
136
- tfoot td {
129
+ thead th, thead td, tfoot th, tfoot td {
137
130
  --pico-font-weight: 600;
138
- --pico-border-width: 0.1875rem;
131
+ --pico-border-width: .1875rem;
139
132
  }
140
133
 
141
- pre,
142
- code,
143
- kbd,
144
- samp {
134
+ pre, code, kbd, samp {
145
135
  --pico-font-family: var(--pico-font-family-monospace);
146
136
  }
147
137
 
@@ -149,246 +139,156 @@ kbd {
149
139
  --pico-font-weight: bolder;
150
140
  }
151
141
 
152
- input:not(
153
- [type="submit"],
154
- [type="button"],
155
- [type="reset"],
156
- [type="checkbox"],
157
- [type="radio"],
158
- [type="file"]
159
- ),
160
- :where(select, textarea) {
161
- --pico-outline-width: 0.0625rem;
142
+ input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :where(select, textarea) {
143
+ --pico-outline-width: .0625rem;
162
144
  }
163
145
 
164
146
  [type="search"] {
165
147
  --pico-border-radius: 5rem;
166
148
  }
167
149
 
168
- [type="checkbox"],
169
- [type="radio"] {
170
- --pico-border-width: 0.125rem;
150
+ [type="checkbox"], [type="radio"] {
151
+ --pico-border-width: .125rem;
171
152
  }
172
153
 
173
154
  [type="checkbox"][role="switch"] {
174
- --pico-border-width: 0.1875rem;
155
+ --pico-border-width: .1875rem;
175
156
  }
176
157
 
177
158
  details.dropdown summary:not([role="button"]) {
178
- --pico-outline-width: 0.0625rem;
159
+ --pico-outline-width: .0625rem;
179
160
  }
180
161
 
181
162
  nav details.dropdown summary:focus-visible {
182
- --pico-outline-width: 0.125rem;
163
+ --pico-outline-width: .125rem;
183
164
  }
184
165
 
185
166
  [role="search"] {
186
167
  --pico-border-radius: 5rem;
187
168
  }
188
169
 
189
- [role="search"] button,
190
- [role="search"] [type="submit"],
191
- [role="search"] [type="button"],
192
- [role="search"] [role="button"],
193
- [role="group"] button,
194
- [role="group"] [type="submit"],
195
- [role="group"] [type="button"],
196
- [role="group"] [role="button"] {
170
+ [role="search"] button, [role="search"] [type="submit"], [role="search"] [type="button"], [role="search"] [role="button"], [role="group"] button, [role="group"] [type="submit"], [role="group"] [type="button"], [role="group"] [role="button"] {
197
171
  --pico-form-element-spacing-horizontal: 2rem;
198
172
  }
199
173
 
200
- details summary[role="button"]:not(.outline)::after {
201
- filter: brightness(0) invert(1);
202
- }
203
-
204
- [aria-busy="true"]:not(input, select, textarea):is(
205
- button,
206
- [type="submit"],
207
- [type="button"],
208
- [type="reset"],
209
- [role="button"]
210
- ):not(.outline)::before {
211
- filter: brightness(0) invert(1);
174
+ details summary[role="button"]:not(.outline):after, [aria-busy="true"]:not(input, select, textarea):is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
175
+ filter: brightness(0) invert();
212
176
  }
213
177
 
214
- /**
215
- * Color schemes
216
- * One palette for both schemes: light-dark() picks the value from the used color-scheme,
217
- * so the dark scheme only has to switch color-scheme (same selectors as before).
218
- */
219
- :scope,
220
- :host,
221
- [data-theme="light"],
222
- [data-theme="dark"] {
178
+ :scope, :host, [data-theme="light"], [data-theme="dark"] {
223
179
  color-scheme: light;
224
- --pico-background-color: light-dark(#fff, rgb(19, 22.5, 30.5));
180
+ --pico-background-color: light-dark(#fff, #13171f);
225
181
  --pico-color: light-dark(#373c44, #c2c7d0);
226
- --pico-text-selection-color: light-dark(rgba(2, 154, 232, 0.25), rgba(1, 170, 255, 0.1875));
182
+ --pico-text-selection-color: light-dark(#029ae840, #01aaff30);
227
183
  --pico-muted-color: light-dark(#646b79, #7b8495);
228
- --pico-muted-border-color: light-dark(rgb(231, 234, 239.5), #202632);
184
+ --pico-muted-border-color: light-dark(#e7eaf0, #202632);
229
185
  --pico-primary: light-dark(#0172ad, #01aaff);
230
186
  --pico-primary-background: #0172ad;
231
187
  --pico-primary-border: var(--pico-primary-background);
232
- --pico-primary-underline: light-dark(rgba(1, 114, 173, 0.5), rgba(1, 170, 255, 0.5));
188
+ --pico-primary-underline: light-dark(#0172ad80, #01aaff80);
233
189
  --pico-primary-hover: light-dark(#015887, #79c0ff);
234
190
  --pico-primary-hover-background: light-dark(#02659a, #017fc0);
235
191
  --pico-primary-hover-border: var(--pico-primary-hover-background);
236
192
  --pico-primary-hover-underline: var(--pico-primary-hover);
237
- /* Focus rings are opaque: at 25–50% alpha they composite below 3:1 (SC 1.4.11), see #167 */
238
- --pico-primary-focus: light-dark(rgb(2, 138, 212), rgb(1, 170, 255));
193
+ --pico-primary-focus: light-dark(#028ad4, #01aaff);
239
194
  --pico-primary-inverse: #fff;
240
195
  --pico-secondary: light-dark(#5d6b89, #969eaf);
241
196
  --pico-secondary-background: #525f7a;
242
197
  --pico-secondary-border: var(--pico-secondary-background);
243
- --pico-secondary-underline: light-dark(rgba(93, 107, 137, 0.5), rgba(150, 158, 175, 0.5));
198
+ --pico-secondary-underline: light-dark(#5d6b8980, #969eaf80);
244
199
  --pico-secondary-hover: light-dark(#48536b, #b3b9c5);
245
200
  --pico-secondary-hover-background: light-dark(#48536b, #5d6b89);
246
201
  --pico-secondary-hover-border: var(--pico-secondary-hover-background);
247
202
  --pico-secondary-hover-underline: var(--pico-secondary-hover);
248
- --pico-secondary-focus: light-dark(rgb(93, 107, 137), rgb(144, 158, 190));
203
+ --pico-secondary-focus: light-dark(#5d6b89, #909ebe);
249
204
  --pico-secondary-inverse: #fff;
250
205
  --pico-contrast: light-dark(#181c25, #dfe3eb);
251
206
  --pico-contrast-background: light-dark(#181c25, #eff1f4);
252
207
  --pico-contrast-border: var(--pico-contrast-background);
253
- --pico-contrast-underline: light-dark(rgba(24, 28, 37, 0.5), rgba(223, 227, 235, 0.5));
208
+ --pico-contrast-underline: light-dark(#181c2580, #dfe3eb80);
254
209
  --pico-contrast-hover: light-dark(#000, #fff);
255
210
  --pico-contrast-hover-background: light-dark(#000, #fff);
256
211
  --pico-contrast-hover-border: var(--pico-contrast-hover-background);
257
- --pico-contrast-hover-underline: light-dark(
258
- var(--pico-secondary-hover),
259
- var(--pico-contrast-hover)
260
- );
261
- --pico-contrast-focus: light-dark(rgb(93, 107, 137), rgb(207, 213, 226));
212
+ --pico-contrast-hover-underline: light-dark(var(--pico-secondary-hover), var(--pico-contrast-hover));
213
+ --pico-contrast-focus: light-dark(#5d6b89, #cfd5e2);
262
214
  --pico-contrast-inverse: light-dark(#fff, #000);
263
- --pico-box-shadow: 0 0.5rem 2.5rem light-dark(rgba(129, 145, 181, 0.2), rgba(7, 8.5, 12, 0.2));
215
+ --pico-box-shadow: 0 .5rem 2.5rem light-dark(#8191b533, #07090c33);
264
216
  --pico-h1-color: light-dark(#2d3138, #f0f1f3);
265
217
  --pico-h2-color: light-dark(#373c44, #e0e3e7);
266
218
  --pico-h3-color: light-dark(#424751, #c2c7d0);
267
219
  --pico-h4-color: light-dark(#4d535e, #b3b9c5);
268
220
  --pico-h5-color: light-dark(#5c6370, #a4acba);
269
221
  --pico-h6-color: light-dark(#646b79, #8891a4);
270
- --pico-mark-background-color: light-dark(rgb(252.5, 230.5, 191.5), #014063);
222
+ --pico-mark-background-color: light-dark(#fde7c0, #014063);
271
223
  --pico-mark-color: light-dark(#0f1114, #fff);
272
- --pico-ins-color: light-dark(rgb(28.5, 105.5, 84), #62af9a);
273
- --pico-del-color: light-dark(rgb(136, 56.5, 53), rgb(205.5, 126, 123));
224
+ --pico-ins-color: light-dark(#1d6a54, #62af9a);
225
+ --pico-del-color: light-dark(#883935, #ce7e7b);
274
226
  --pico-blockquote-border-color: var(--pico-muted-border-color);
275
227
  --pico-blockquote-footer-color: var(--pico-muted-color);
276
- --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
277
- --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
228
+ --pico-button-box-shadow: 0 0 0 #0000;
229
+ --pico-button-hover-box-shadow: 0 0 0 #0000;
278
230
  --pico-table-border-color: var(--pico-muted-border-color);
279
- --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
280
- --pico-code-background-color: light-dark(rgb(243, 244.5, 246.75), rgb(26, 30.5, 40.25));
231
+ --pico-table-row-stripped-background-color: #6f78870a;
232
+ --pico-code-background-color: light-dark(#f3f5f7, #1a1f28);
281
233
  --pico-code-color: light-dark(#646b79, #8891a4);
282
234
  --pico-code-kbd-background-color: var(--pico-color);
283
235
  --pico-code-kbd-color: var(--pico-background-color);
284
- --pico-form-element-background-color: light-dark(rgb(251, 251.5, 252.25), rgb(28, 33, 43.5));
236
+ --pico-form-element-background-color: light-dark(#fbfcfc, #1c212c);
285
237
  --pico-form-element-selected-background-color: light-dark(#dfe3eb, #2a3140);
286
238
  --pico-form-element-border-color: light-dark(#cfd5e2, #2a3140);
287
239
  --pico-form-element-color: light-dark(#23262c, #e0e3e7);
288
240
  --pico-form-element-placeholder-color: light-dark(var(--pico-muted-color), #8891a4);
289
- --pico-form-element-active-background-color: light-dark(#fff, rgb(26, 30.5, 40.25));
241
+ --pico-form-element-active-background-color: light-dark(#fff, #1a1f28);
290
242
  --pico-form-element-active-border-color: var(--pico-primary-border);
291
243
  --pico-form-element-focus-color: var(--pico-primary-border);
292
- --pico-form-element-disabled-opacity: 0.5;
293
- --pico-form-element-invalid-border-color: light-dark(
294
- rgb(183.5, 105.5, 106.5),
295
- rgb(200.25, 79.25, 72.25)
296
- );
297
- --pico-form-element-invalid-active-border-color: light-dark(
298
- rgb(200.25, 79.25, 72.25),
299
- rgb(214, 92, 86)
300
- );
244
+ --pico-form-element-disabled-opacity: .5;
245
+ --pico-form-element-invalid-border-color: light-dark(#b86a6b, #c84f48);
246
+ --pico-form-element-invalid-active-border-color: light-dark(#c84f48, #d65c56);
301
247
  --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
302
- --pico-form-element-valid-border-color: light-dark(rgb(76, 154.5, 137.5), #2a7b6f);
303
- --pico-form-element-valid-active-border-color: light-dark(
304
- rgb(39, 152.75, 118.75),
305
- rgb(22, 137, 105.5)
306
- );
248
+ --pico-form-element-valid-border-color: light-dark(#4c9b8a, #2a7b6f);
249
+ --pico-form-element-valid-active-border-color: light-dark(#279977, #16896a);
307
250
  --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
308
- /* One stroke color for both schemes, at least 3:1 on light and dark form backgrounds */
309
251
  --pico-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(76, 154.5, 137.5)' 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");
310
252
  --pico-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(200.25, 79.25, 72.25)' 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");
311
253
  }
312
254
 
313
- input:is(
314
- [type="submit"],
315
- [type="button"],
316
- [type="reset"],
317
- [type="checkbox"],
318
- [type="radio"],
319
- [type="file"]
320
- ) {
255
+ input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
321
256
  --pico-form-element-focus-color: var(--pico-primary-focus);
322
257
  }
323
258
 
324
- /* Dark scheme: switch color-scheme, plus filters that light-dark() can't pick */
325
259
  @media only screen and (prefers-color-scheme: dark) {
326
- :scope:not([data-theme]),
327
- :host(:not([data-theme])) {
260
+ :scope:not([data-theme]), :host(:not([data-theme])) {
328
261
  color-scheme: dark;
329
262
  }
330
- :scope:not([data-theme]) details summary[role="button"].contrast:not(.outline)::after,
331
- :host(:not([data-theme])) details summary[role="button"].contrast:not(.outline)::after,
332
- :scope:not([data-theme])
333
- [aria-busy="true"]:not(input, select, textarea).contrast:is(
334
- button,
335
- [type="submit"],
336
- [type="button"],
337
- [type="reset"],
338
- [role="button"]
339
- ):not(.outline)::before,
340
- :host(:not([data-theme]))
341
- [aria-busy="true"]:not(input, select, textarea).contrast:is(
342
- button,
343
- [type="submit"],
344
- [type="button"],
345
- [type="reset"],
346
- [role="button"]
347
- ):not(.outline)::before {
263
+
264
+ :scope:not([data-theme]) details summary[role="button"].contrast:not(.outline):after, :host(:not([data-theme])) details summary[role="button"].contrast:not(.outline):after, :scope:not([data-theme]) [aria-busy="true"]:not(input, select, textarea).contrast:is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before, :host(:not([data-theme])) [aria-busy="true"]:not(input, select, textarea).contrast:is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
348
265
  filter: brightness(0);
349
266
  }
350
267
  }
268
+
351
269
  [data-theme="dark"] {
352
270
  color-scheme: dark;
353
271
  }
354
- [data-theme="dark"] details summary[role="button"].contrast:not(.outline)::after,
355
- [data-theme="dark"]
356
- [aria-busy="true"]:not(input, select, textarea).contrast:is(
357
- button,
358
- [type="submit"],
359
- [type="button"],
360
- [type="reset"],
361
- [role="button"]
362
- ):not(.outline)::before {
272
+
273
+ [data-theme="dark"] details summary[role="button"].contrast:not(.outline):after, [data-theme="dark"] [aria-busy="true"]:not(input, select, textarea).contrast:is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
363
274
  filter: brightness(0);
364
275
  }
365
276
 
366
- progress,
367
- [type="checkbox"],
368
- [type="radio"],
369
- [type="range"] {
277
+ progress, [type="checkbox"], [type="radio"], [type="range"] {
370
278
  accent-color: var(--pico-primary);
371
279
  }
372
280
 
373
- /**
374
- * Document
375
- * Content-box & Responsive typography
376
- */
377
- *,
378
- *::before,
379
- *::after {
281
+ *, :before, :after {
380
282
  box-sizing: border-box;
381
283
  background-repeat: no-repeat;
382
284
  }
383
285
 
384
- ::before,
385
- ::after {
286
+ :before, :after {
386
287
  text-decoration: inherit;
387
288
  vertical-align: inherit;
388
289
  }
389
290
 
390
- :where(:scope),
391
- :where(:host) {
291
+ :where(:scope), :where(:host) {
392
292
  -webkit-tap-highlight-color: transparent;
393
293
  -webkit-text-size-adjust: 100%;
394
294
  -moz-text-size-adjust: 100%;
@@ -400,7 +300,7 @@ progress,
400
300
  line-height: var(--pico-line-height);
401
301
  font-family: var(--pico-font-family);
402
302
  text-underline-offset: var(--pico-text-underline-offset);
403
- text-rendering: optimizeLegibility;
303
+ text-rendering: optimizelegibility;
404
304
  overflow-wrap: break-word;
405
305
  -moz-tab-size: 4;
406
306
  -o-tab-size: 4;
@@ -416,108 +316,92 @@ main {
416
316
  display: block;
417
317
  }
418
318
 
419
- /**
420
- * Section
421
- */
422
319
  section {
423
320
  margin-bottom: var(--pico-block-spacing-vertical);
424
321
  }
425
- /**
426
- * Container
427
- */
428
- .container,
429
- .container-fluid {
322
+
323
+ .container, .container-fluid {
430
324
  width: 100%;
431
- margin-right: auto;
432
- margin-left: auto;
433
325
  padding-right: var(--pico-spacing);
434
326
  padding-left: var(--pico-spacing);
327
+ margin-left: auto;
328
+ margin-right: auto;
435
329
  }
436
330
 
437
- @media (min-width: 576px) {
331
+ @media (width >= 576px) {
438
332
  .container {
439
333
  max-width: 510px;
440
- padding-right: 0;
441
334
  padding-left: 0;
335
+ padding-right: 0;
442
336
  }
443
337
  }
444
- @media (min-width: 768px) {
338
+
339
+ @media (width >= 768px) {
445
340
  .container {
446
341
  max-width: 700px;
447
342
  }
448
343
  }
449
- @media (min-width: 1024px) {
344
+
345
+ @media (width >= 1024px) {
450
346
  .container {
451
347
  max-width: 950px;
452
348
  }
453
349
  }
454
- @media (min-width: 1280px) {
350
+
351
+ @media (width >= 1280px) {
455
352
  .container {
456
353
  max-width: 1200px;
457
354
  }
458
355
  }
459
- @media (min-width: 1536px) {
356
+
357
+ @media (width >= 1536px) {
460
358
  .container {
461
359
  max-width: 1450px;
462
360
  }
463
361
  }
464
- /**
465
- * Grid
466
- * Minimal grid system with auto-layout columns
467
- */
362
+
468
363
  .grid {
469
364
  grid-column-gap: var(--pico-grid-column-gap);
470
365
  grid-row-gap: var(--pico-grid-row-gap);
471
- display: grid;
472
366
  grid-template-columns: 1fr;
367
+ display: grid;
473
368
  }
474
- @media (min-width: 768px) {
369
+
370
+ @media (width >= 768px) {
475
371
  .grid {
476
372
  grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
477
373
  }
478
374
  }
479
- .grid > *:not(.does-not-exist) {
375
+
376
+ .grid > :not(.does-not-exist) {
480
377
  min-width: 0;
481
- margin-bottom: 0; /* https://github.com/picocss/pico/issues/738 */
378
+ margin-bottom: 0;
482
379
  }
483
- /**
484
- * Overflow auto
485
- */
380
+
486
381
  .overflow-auto {
487
382
  overflow: auto;
488
383
  }
489
- /**
490
- * Typography
491
- */
492
- b,
493
- strong {
384
+
385
+ b, strong {
494
386
  font-weight: bolder;
495
387
  }
496
388
 
497
- sub,
498
- sup {
499
- position: relative;
500
- font-size: 0.75em;
501
- line-height: 0;
389
+ sub, sup {
502
390
  vertical-align: baseline;
391
+ font-size: .75em;
392
+ line-height: 0;
393
+ position: relative;
503
394
  }
504
395
 
505
396
  sub {
506
- bottom: -0.25em;
397
+ bottom: -.25em;
507
398
  }
508
399
 
509
400
  sup {
510
- top: -0.5em;
401
+ top: -.5em;
511
402
  }
512
403
 
513
- address,
514
- blockquote,
515
- dl,
516
- ol,
517
- p,
518
- pre,
519
- table,
520
- ul {
404
+ address, blockquote, dl, ol, p, pre, table, ul {
521
405
  margin-top: 0;
522
406
  margin-bottom: var(--pico-typography-spacing-vertical);
523
407
  color: var(--pico-color);
@@ -525,12 +409,7 @@ ul {
525
409
  font-weight: var(--pico-font-weight);
526
410
  }
527
411
 
528
- h1,
529
- h2,
530
- h3,
531
- h4,
532
- h5,
533
- h6 {
412
+ h1, h2, h3, h4, h5, h6 {
534
413
  margin-top: 0;
535
414
  margin-bottom: var(--pico-typography-spacing-vertical);
536
415
  color: var(--pico-color);
@@ -564,35 +443,32 @@ h6 {
564
443
  --pico-color: var(--pico-h6-color);
565
444
  }
566
445
 
567
- :where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul)
568
- ~ :is(h1, h2, h3, h4, h5, h6) {
446
+ :where(article, address, blockquote, dl, figure, form, ol, p, pre, table, ul) ~ :is(h1, h2, h3, h4, h5, h6) {
569
447
  margin-top: var(--pico-typography-spacing-top);
570
448
  }
571
449
 
572
- p {
450
+ p, hgroup {
573
451
  margin-bottom: var(--pico-typography-spacing-vertical);
574
452
  }
575
453
 
576
- hgroup {
577
- margin-bottom: var(--pico-typography-spacing-vertical);
578
- }
579
454
  hgroup > * {
580
455
  margin-top: 0;
581
456
  margin-bottom: 0;
582
457
  }
583
- hgroup > *:not(:first-child):last-child {
458
+
459
+ hgroup > :not(:first-child):last-child {
584
460
  --pico-color: var(--pico-muted-color);
585
461
  --pico-font-weight: unset;
586
462
  font-size: 1rem;
587
463
  }
588
464
 
589
465
  :where(ol, ul) li {
590
- margin-bottom: calc(var(--pico-typography-spacing-vertical) * 0.25);
466
+ margin-bottom: calc(var(--pico-typography-spacing-vertical) * .25);
591
467
  }
592
468
 
593
469
  :where(dl, ol, ul) :where(dl, ol, ul) {
594
470
  margin: 0;
595
- margin-top: calc(var(--pico-typography-spacing-vertical) * 0.25);
471
+ margin-top: calc(var(--pico-typography-spacing-vertical) * .25);
596
472
  }
597
473
 
598
474
  ul li {
@@ -600,30 +476,31 @@ ul li {
600
476
  }
601
477
 
602
478
  mark {
603
- padding: 0.125rem 0.25rem;
604
479
  background-color: var(--pico-mark-background-color);
605
480
  color: var(--pico-mark-color);
606
481
  vertical-align: baseline;
482
+ padding: .125rem .25rem;
607
483
  }
608
484
 
609
485
  blockquote {
610
- display: block;
611
486
  margin: var(--pico-typography-spacing-vertical) 0;
612
487
  padding: var(--pico-spacing);
613
488
  border-right: none;
614
- border-left: 0.25rem solid var(--pico-blockquote-border-color);
615
- border-inline-start: 0.25rem solid var(--pico-blockquote-border-color);
489
+ border-left: .25rem solid var(--pico-blockquote-border-color);
490
+ border-inline-start: .25rem solid var(--pico-blockquote-border-color);
616
491
  border-inline-end: none;
492
+ display: block;
617
493
  }
494
+
618
495
  blockquote footer {
619
- margin-top: calc(var(--pico-typography-spacing-vertical) * 0.5);
496
+ margin-top: calc(var(--pico-typography-spacing-vertical) * .5);
620
497
  color: var(--pico-blockquote-footer-color);
621
498
  }
622
499
 
623
500
  abbr[title] {
501
+ cursor: help;
624
502
  border-bottom: 1px dotted;
625
503
  text-decoration: none;
626
- cursor: help;
627
504
  }
628
505
 
629
506
  ins {
@@ -643,80 +520,58 @@ del {
643
520
  background-color: var(--pico-text-selection-color);
644
521
  }
645
522
 
646
- /**
647
- * Link
648
- */
649
- :where(a:not([role="button"])),
650
- [role="link"] {
523
+ :where(a:not([role="button"])), [role="link"] {
651
524
  --pico-color: var(--pico-primary);
652
525
  --pico-background-color: transparent;
653
526
  --pico-underline: var(--pico-primary-underline);
654
- outline: none;
655
527
  background-color: var(--pico-background-color);
656
528
  color: var(--pico-color);
657
529
  -webkit-text-decoration: var(--pico-text-decoration);
658
530
  text-decoration: var(--pico-text-decoration);
659
531
  text-decoration-color: var(--pico-underline);
660
- text-underline-offset: 0.125em;
661
- transition:
662
- background-color var(--pico-transition),
532
+ text-underline-offset: .125em;
533
+ transition: background-color var(--pico-transition),
663
534
  color var(--pico-transition),
664
535
  box-shadow var(--pico-transition),
665
536
  -webkit-text-decoration var(--pico-transition);
666
- transition:
667
- background-color var(--pico-transition),
537
+ transition: background-color var(--pico-transition),
668
538
  color var(--pico-transition),
669
539
  text-decoration var(--pico-transition),
670
540
  box-shadow var(--pico-transition);
671
- transition:
672
- background-color var(--pico-transition),
541
+ transition: background-color var(--pico-transition),
673
542
  color var(--pico-transition),
674
543
  text-decoration var(--pico-transition),
675
544
  box-shadow var(--pico-transition),
676
545
  -webkit-text-decoration var(--pico-transition);
546
+ outline: none;
677
547
  }
678
- :where(a:not([role="button"])):is(
679
- [aria-current]:not([aria-current="false"]),
680
- :hover,
681
- :active,
682
- :focus
683
- ),
684
- [role="link"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
548
+
549
+ :where(a:not([role="button"])):is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [role="link"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
685
550
  --pico-color: var(--pico-primary-hover);
686
551
  --pico-underline: var(--pico-primary-hover-underline);
687
552
  --pico-text-decoration: underline;
688
553
  }
689
- :where(a:not([role="button"])):focus-visible,
690
- [role="link"]:focus-visible {
554
+
555
+ :where(a:not([role="button"])):focus-visible, [role="link"]:focus-visible {
691
556
  box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
692
557
  }
693
- :where(a:not([role="button"])).secondary,
694
- [role="link"].secondary {
558
+
559
+ :where(a:not([role="button"])).secondary, [role="link"].secondary {
695
560
  --pico-color: var(--pico-secondary);
696
561
  --pico-underline: var(--pico-secondary-underline);
697
562
  }
698
- :where(a:not([role="button"])).secondary:is(
699
- [aria-current]:not([aria-current="false"]),
700
- :hover,
701
- :active,
702
- :focus
703
- ),
704
- [role="link"].secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
563
+
564
+ :where(a:not([role="button"])).secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [role="link"].secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
705
565
  --pico-color: var(--pico-secondary-hover);
706
566
  --pico-underline: var(--pico-secondary-hover-underline);
707
567
  }
708
- :where(a:not([role="button"])).contrast,
709
- [role="link"].contrast {
568
+
569
+ :where(a:not([role="button"])).contrast, [role="link"].contrast {
710
570
  --pico-color: var(--pico-contrast);
711
571
  --pico-underline: var(--pico-contrast-underline);
712
572
  }
713
- :where(a:not([role="button"])).contrast:is(
714
- [aria-current]:not([aria-current="false"]),
715
- :hover,
716
- :active,
717
- :focus
718
- ),
719
- [role="link"].contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
573
+
574
+ :where(a:not([role="button"])).contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [role="link"].contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
720
575
  --pico-color: var(--pico-contrast-hover);
721
576
  --pico-underline: var(--pico-contrast-hover-underline);
722
577
  }
@@ -725,37 +580,25 @@ a[role="button"] {
725
580
  display: inline-block;
726
581
  }
727
582
 
728
- /**
729
- * Button
730
- */
731
583
  button {
584
+ text-transform: none;
732
585
  margin: 0;
733
- overflow: visible;
734
586
  font-family: inherit;
735
- text-transform: none;
587
+ overflow: visible;
736
588
  }
737
589
 
738
- button,
739
- [type="submit"],
740
- [type="reset"],
741
- [type="button"] {
590
+ button, [type="submit"], [type="reset"], [type="button"] {
742
591
  -webkit-appearance: button;
743
592
  }
744
593
 
745
- button,
746
- [type="submit"],
747
- [type="reset"],
748
- [type="button"],
749
- [type="file"]::file-selector-button,
750
- [role="button"] {
594
+ button, [type="submit"], [type="reset"], [type="button"], [type="file"]::file-selector-button, [role="button"] {
751
595
  --pico-background-color: var(--pico-primary-background);
752
596
  --pico-border-color: var(--pico-primary-border);
753
597
  --pico-color: var(--pico-primary-inverse);
754
- --pico-box-shadow: var(--pico-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
598
+ --pico-box-shadow: var(--pico-button-box-shadow, 0 0 0 #0000);
755
599
  padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
756
600
  border: var(--pico-border-width) solid var(--pico-border-color);
757
601
  border-radius: var(--pico-border-radius);
758
- outline: none;
759
602
  background-color: var(--pico-background-color);
760
603
  box-shadow: var(--pico-box-shadow);
761
604
  color: var(--pico-color);
@@ -763,92 +606,49 @@ button,
763
606
  font-size: 1rem;
764
607
  line-height: var(--pico-line-height);
765
608
  text-align: center;
766
- text-decoration: none;
767
609
  cursor: pointer;
768
610
  -webkit-user-select: none;
769
611
  -moz-user-select: none;
770
- transition:
771
- background-color var(--pico-transition),
612
+ user-select: none;
613
+ transition: background-color var(--pico-transition),
772
614
  border-color var(--pico-transition),
773
615
  color var(--pico-transition),
774
616
  box-shadow var(--pico-transition);
775
- user-select: none;
617
+ outline: none;
618
+ text-decoration: none;
776
619
  }
777
- button:is([aria-current]:not([aria-current="false"])),
778
- button:is(:hover, :active, :focus),
779
- [type="submit"]:is([aria-current]:not([aria-current="false"])),
780
- [type="submit"]:is(:hover, :active, :focus),
781
- [type="reset"]:is([aria-current]:not([aria-current="false"])),
782
- [type="reset"]:is(:hover, :active, :focus),
783
- [type="button"]:is([aria-current]:not([aria-current="false"])),
784
- [type="button"]:is(:hover, :active, :focus),
785
- [type="file"]::file-selector-button:is([aria-current]:not([aria-current="false"])),
786
- [type="file"]::file-selector-button:is(:hover, :active, :focus),
787
- [role="button"]:is([aria-current]:not([aria-current="false"])),
788
- [role="button"]:is(:hover, :active, :focus) {
620
+
621
+ button[aria-current]:not([aria-current="false"]), button:is(:hover, :active, :focus), [type="submit"][aria-current]:not([aria-current="false"]), [type="submit"]:is(:hover, :active, :focus), [type="reset"][aria-current]:not([aria-current="false"]), [type="reset"]:is(:hover, :active, :focus), [type="button"][aria-current]:not([aria-current="false"]), [type="button"]:is(:hover, :active, :focus), [type="file"]::file-selector-button:is(), [type="file"]::file-selector-button:is(:hover, :active, :focus), [role="button"][aria-current]:not([aria-current="false"]), [role="button"]:is(:hover, :active, :focus) {
789
622
  --pico-background-color: var(--pico-primary-hover-background);
790
623
  --pico-border-color: var(--pico-primary-hover-border);
791
- --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
624
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000);
792
625
  --pico-color: var(--pico-primary-inverse);
793
626
  }
794
- button:focus,
795
- button:is([aria-current]:not([aria-current="false"])):focus,
796
- [type="submit"]:focus,
797
- [type="submit"]:is([aria-current]:not([aria-current="false"])):focus,
798
- [type="reset"]:focus,
799
- [type="reset"]:is([aria-current]:not([aria-current="false"])):focus,
800
- [type="button"]:focus,
801
- [type="button"]:is([aria-current]:not([aria-current="false"])):focus,
802
- [type="file"]::file-selector-button:focus,
803
- [type="file"]::file-selector-button:is([aria-current]:not([aria-current="false"])):focus,
804
- [role="button"]:focus,
805
- [role="button"]:is([aria-current]:not([aria-current="false"])):focus {
806
- --pico-box-shadow:
807
- var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
627
+
628
+ button:focus, button[aria-current]:not([aria-current="false"]):focus, [type="submit"]:focus, [type="submit"][aria-current]:not([aria-current="false"]):focus, [type="reset"]:focus, [type="reset"][aria-current]:not([aria-current="false"]):focus, [type="button"]:focus, [type="button"][aria-current]:not([aria-current="false"]):focus, [type="file"]::file-selector-button:focus, [type="file"]::file-selector-button:is():focus, [role="button"]:focus, [role="button"][aria-current]:not([aria-current="false"]):focus {
629
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
808
630
  0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
809
631
  }
810
632
 
811
- [type="submit"],
812
- [type="reset"],
813
- [type="button"] {
633
+ [type="submit"], [type="reset"], [type="button"] {
814
634
  margin-bottom: var(--pico-spacing);
815
635
  }
816
636
 
817
- :is(button, [type="submit"], [type="button"], [role="button"]).secondary,
818
- [type="reset"],
819
- [type="file"]::file-selector-button {
637
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary, [type="reset"], [type="file"]::file-selector-button {
820
638
  --pico-background-color: var(--pico-secondary-background);
821
639
  --pico-border-color: var(--pico-secondary-border);
822
640
  --pico-color: var(--pico-secondary-inverse);
823
641
  cursor: pointer;
824
642
  }
825
- :is(button, [type="submit"], [type="button"], [role="button"]).secondary:is(
826
- [aria-current]:not([aria-current="false"]),
827
- :hover,
828
- :active,
829
- :focus
830
- ),
831
- [type="reset"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus),
832
- [type="file"]::file-selector-button:is(
833
- [aria-current]:not([aria-current="false"]),
834
- :hover,
835
- :active,
836
- :focus
837
- ) {
643
+
644
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="file"]::file-selector-button:is(:hover, :active, :focus) {
838
645
  --pico-background-color: var(--pico-secondary-hover-background);
839
646
  --pico-border-color: var(--pico-secondary-hover-border);
840
647
  --pico-color: var(--pico-secondary-inverse);
841
648
  }
842
- :is(button, [type="submit"], [type="button"], [role="button"]).secondary:focus,
843
- :is(button, [type="submit"], [type="button"], [role="button"]).secondary:is(
844
- [aria-current]:not([aria-current="false"])
845
- ):focus,
846
- [type="reset"]:focus,
847
- [type="reset"]:is([aria-current]:not([aria-current="false"])):focus,
848
- [type="file"]::file-selector-button:focus,
849
- [type="file"]::file-selector-button:is([aria-current]:not([aria-current="false"])):focus {
850
- --pico-box-shadow:
851
- var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
649
+
650
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:focus, :is(button, [type="submit"], [type="button"], [role="button"]).secondary[aria-current]:not([aria-current="false"]):focus, [type="reset"]:focus, [type="reset"][aria-current]:not([aria-current="false"]):focus, [type="file"]::file-selector-button:focus, [type="file"]::file-selector-button:is():focus {
651
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
852
652
  0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
853
653
  }
854
654
 
@@ -857,55 +657,36 @@ button:is([aria-current]:not([aria-current="false"])):focus,
857
657
  --pico-border-color: var(--pico-contrast-border);
858
658
  --pico-color: var(--pico-contrast-inverse);
859
659
  }
860
- :is(button, [type="submit"], [type="button"], [role="button"]).contrast:is(
861
- [aria-current]:not([aria-current="false"]),
862
- :hover,
863
- :active,
864
- :focus
865
- ) {
660
+
661
+ :is(button, [type="submit"], [type="button"], [role="button"]).contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
866
662
  --pico-background-color: var(--pico-contrast-hover-background);
867
663
  --pico-border-color: var(--pico-contrast-hover-border);
868
664
  --pico-color: var(--pico-contrast-inverse);
869
665
  }
870
- :is(button, [type="submit"], [type="button"], [role="button"]).contrast:focus,
871
- :is(button, [type="submit"], [type="button"], [role="button"]).contrast:is(
872
- [aria-current]:not([aria-current="false"])
873
- ):focus {
874
- --pico-box-shadow:
875
- var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
666
+
667
+ :is(button, [type="submit"], [type="button"], [role="button"]).contrast:focus, :is(button, [type="submit"], [type="button"], [role="button"]).contrast[aria-current]:not([aria-current="false"]):focus {
668
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
876
669
  0 0 0 var(--pico-outline-width) var(--pico-contrast-focus);
877
670
  }
878
671
 
879
- :is(button, [type="submit"], [type="button"], [role="button"]).outline,
880
- [type="reset"].outline {
672
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline, [type="reset"].outline {
881
673
  --pico-background-color: transparent;
882
674
  --pico-color: var(--pico-primary);
883
675
  --pico-border-color: var(--pico-primary);
884
676
  }
885
- :is(button, [type="submit"], [type="button"], [role="button"]).outline:is(
886
- [aria-current]:not([aria-current="false"]),
887
- :hover,
888
- :active,
889
- :focus
890
- ),
891
- [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
677
+
678
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
892
679
  --pico-background-color: transparent;
893
680
  --pico-color: var(--pico-primary-hover);
894
681
  --pico-border-color: var(--pico-primary-hover);
895
682
  }
896
683
 
897
- :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary,
898
- [type="reset"].outline {
684
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary, [type="reset"].outline {
899
685
  --pico-color: var(--pico-secondary);
900
686
  --pico-border-color: var(--pico-secondary);
901
687
  }
902
- :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary:is(
903
- [aria-current]:not([aria-current="false"]),
904
- :hover,
905
- :active,
906
- :focus
907
- ),
908
- [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
688
+
689
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
909
690
  --pico-color: var(--pico-secondary-hover);
910
691
  --pico-border-color: var(--pico-secondary-hover);
911
692
  }
@@ -914,35 +695,25 @@ button:is([aria-current]:not([aria-current="false"])):focus,
914
695
  --pico-color: var(--pico-contrast);
915
696
  --pico-border-color: var(--pico-contrast);
916
697
  }
917
- :is(button, [type="submit"], [type="button"], [role="button"]).outline.contrast:is(
918
- [aria-current]:not([aria-current="false"]),
919
- :hover,
920
- :active,
921
- :focus
922
- ) {
698
+
699
+ :is(button, [type="submit"], [type="button"], [role="button"]).outline.contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
923
700
  --pico-color: var(--pico-contrast-hover);
924
701
  --pico-border-color: var(--pico-contrast-hover);
925
702
  }
926
703
 
927
- :where(button, [type="submit"], [type="reset"], [type="button"], [role="button"])[disabled],
928
- :where(fieldset[disabled])
929
- :is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]) {
930
- opacity: 0.5;
704
+ :where(button, [type="submit"], [type="reset"], [type="button"], [role="button"])[disabled], :where(fieldset[disabled]) :is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]) {
705
+ opacity: .5;
931
706
  pointer-events: none;
932
707
  }
933
708
 
934
- /**
935
- * Table
936
- */
937
709
  :where(table) {
938
- width: 100%;
939
710
  border-collapse: collapse;
940
711
  border-spacing: 0;
941
712
  text-indent: 0;
713
+ width: 100%;
942
714
  }
943
715
 
944
- th,
945
- td {
716
+ th, td {
946
717
  padding: calc(var(--pico-spacing) / 2) var(--pico-spacing);
947
718
  border-bottom: var(--pico-border-width) solid var(--pico-table-border-color);
948
719
  background-color: var(--pico-background-color);
@@ -951,44 +722,38 @@ td {
951
722
  text-align: start;
952
723
  }
953
724
 
954
- tfoot th,
955
- tfoot td {
725
+ tfoot th, tfoot td {
956
726
  border-top: var(--pico-border-width) solid var(--pico-table-border-color);
957
727
  border-bottom: 0;
958
728
  }
959
729
 
960
- table.striped tbody tr:nth-child(odd) th,
961
- table.striped tbody tr:nth-child(odd) td {
730
+ table.striped tbody tr:nth-child(odd) th, table.striped tbody tr:nth-child(odd) td {
962
731
  background-color: var(--pico-table-row-stripped-background-color);
963
732
  }
964
733
 
965
- /**
966
- * Embedded content
967
- */
968
734
  :where(audio, canvas, iframe, img, svg, video) {
969
735
  vertical-align: middle;
970
736
  }
971
737
 
972
- audio,
973
- video {
738
+ audio, video {
974
739
  display: inline-block;
975
740
  }
976
741
 
977
742
  audio:not([controls]) {
978
- display: none;
979
743
  height: 0;
744
+ display: none;
980
745
  }
981
746
 
982
747
  :where(iframe) {
983
748
  border-style: none;
984
749
  }
985
750
 
986
- img:not([height]) {
751
+ img {
752
+ &:not([height]) {
987
753
  max-width: 100%;
988
754
  height: auto;
989
755
  }
990
756
 
991
- img {
992
757
  border-style: none;
993
758
  }
994
759
 
@@ -996,25 +761,16 @@ img {
996
761
  fill: currentColor;
997
762
  }
998
763
 
999
- svg:not(:scope),
1000
- svg:not(:host) {
764
+ svg:not(:scope), svg:not(:host) {
1001
765
  overflow: hidden;
1002
766
  }
1003
767
 
1004
- /**
1005
- * Code
1006
- */
1007
- pre,
1008
- code,
1009
- var,
1010
- kbd,
1011
- samp {
1012
- font-size: 0.875em;
768
+ pre, code, var, kbd, samp {
769
+ font-size: .875em;
1013
770
  font-family: var(--pico-font-family);
1014
771
  }
1015
772
 
1016
- pre code,
1017
- pre samp {
773
+ pre code, pre samp {
1018
774
  font-size: inherit;
1019
775
  font-family: inherit;
1020
776
  }
@@ -1024,11 +780,7 @@ pre {
1024
780
  overflow: auto;
1025
781
  }
1026
782
 
1027
- pre,
1028
- code,
1029
- var,
1030
- kbd,
1031
- samp {
783
+ pre, code, var, kbd, samp {
1032
784
  border-radius: var(--pico-border-radius);
1033
785
  background: var(--pico-code-background-color);
1034
786
  color: var(--pico-code-color);
@@ -1036,25 +788,22 @@ samp {
1036
788
  line-height: initial;
1037
789
  }
1038
790
 
1039
- code,
1040
- var,
1041
- kbd,
1042
- samp {
791
+ code, var, kbd, samp {
792
+ padding: .375rem;
1043
793
  display: inline-block;
1044
- padding: 0.375rem;
1045
794
  }
1046
795
 
1047
796
  pre {
1048
- display: block;
1049
797
  margin-bottom: var(--pico-spacing);
798
+ display: block;
1050
799
  overflow-x: auto;
1051
800
  }
1052
- pre > code,
1053
- pre > samp {
1054
- display: block;
801
+
802
+ pre > code, pre > samp {
1055
803
  padding: var(--pico-spacing);
1056
- background: none;
1057
804
  line-height: var(--pico-line-height);
805
+ background: none;
806
+ display: block;
1058
807
  }
1059
808
 
1060
809
  kbd {
@@ -1063,21 +812,17 @@ kbd {
1063
812
  vertical-align: baseline;
1064
813
  }
1065
814
 
1066
- /**
1067
- * Figure
1068
- */
1069
815
  figure {
1070
- display: block;
1071
816
  margin: 0;
1072
817
  padding: 0;
818
+ display: block;
1073
819
  }
820
+
1074
821
  figure figcaption {
1075
- padding: calc(var(--pico-spacing) * 0.5) 0;
822
+ padding: calc(var(--pico-spacing) * .5) 0;
1076
823
  color: var(--pico-muted-color);
1077
824
  }
1078
- /**
1079
- * Misc
1080
- */
825
+
1081
826
  hr {
1082
827
  height: 0;
1083
828
  margin: var(--pico-typography-spacing-vertical) 0;
@@ -1086,8 +831,7 @@ hr {
1086
831
  color: inherit;
1087
832
  }
1088
833
 
1089
- [hidden],
1090
- template {
834
+ [hidden], template {
1091
835
  display: none !important;
1092
836
  }
1093
837
 
@@ -1095,18 +839,12 @@ canvas {
1095
839
  display: inline-block;
1096
840
  }
1097
841
 
1098
- /**
1099
- * Basics form elements
1100
- */
1101
- input,
1102
- optgroup,
1103
- select,
1104
- textarea {
1105
- margin: 0;
842
+ input, optgroup, select, textarea {
1106
843
  font-size: 1rem;
1107
844
  line-height: var(--pico-line-height);
1108
- font-family: inherit;
1109
845
  letter-spacing: inherit;
846
+ margin: 0;
847
+ font-family: inherit;
1110
848
  }
1111
849
 
1112
850
  input {
@@ -1119,22 +857,20 @@ select {
1119
857
 
1120
858
  legend {
1121
859
  max-width: 100%;
1122
- padding: 0;
1123
860
  color: inherit;
1124
861
  white-space: normal;
862
+ padding: 0;
1125
863
  }
1126
864
 
1127
865
  textarea {
1128
866
  overflow: auto;
1129
867
  }
1130
868
 
1131
- [type="checkbox"],
1132
- [type="radio"] {
869
+ [type="checkbox"], [type="radio"] {
1133
870
  padding: 0;
1134
871
  }
1135
872
 
1136
- ::-webkit-inner-spin-button,
1137
- ::-webkit-outer-spin-button {
873
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
1138
874
  height: auto;
1139
875
  }
1140
876
 
@@ -1153,8 +889,8 @@ textarea {
1153
889
  }
1154
890
 
1155
891
  ::-moz-focus-inner {
1156
- padding: 0;
1157
892
  border-style: none;
893
+ padding: 0;
1158
894
  }
1159
895
 
1160
896
  :-moz-focusring {
@@ -1169,17 +905,14 @@ textarea {
1169
905
  display: none;
1170
906
  }
1171
907
 
1172
- [type="file"],
1173
- [type="range"] {
1174
- padding: 0;
908
+ [type="file"], [type="range"] {
1175
909
  border-width: 0;
910
+ padding: 0;
1176
911
  }
1177
912
 
1178
913
  input:not([type="checkbox"], [type="radio"], [type="range"]) {
1179
- height: calc(
1180
- 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
1181
- var(--pico-border-width) * 2
1182
- );
914
+ height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
915
+ var(--pico-border-width) * 2);
1183
916
  }
1184
917
 
1185
918
  fieldset {
@@ -1187,97 +920,63 @@ fieldset {
1187
920
  min-width: 0;
1188
921
  margin: 0;
1189
922
  margin-bottom: var(--pico-spacing);
1190
- padding: 0;
1191
923
  border: 0;
924
+ padding: 0;
1192
925
  }
1193
926
 
1194
- label,
1195
- fieldset legend {
1196
- display: block;
1197
- margin-bottom: calc(var(--pico-spacing) * 0.375);
927
+ label, fieldset legend {
928
+ margin-bottom: calc(var(--pico-spacing) * .375);
1198
929
  color: var(--pico-color);
1199
930
  font-weight: var(--pico-form-label-font-weight, var(--pico-font-weight));
931
+ display: block;
1200
932
  }
1201
933
 
1202
934
  fieldset legend {
1203
- margin-bottom: calc(var(--pico-spacing) * 0.5);
935
+ margin-bottom: calc(var(--pico-spacing) * .5);
1204
936
  }
1205
937
 
1206
- input:not([type="checkbox"], [type="radio"]),
1207
- button[type="submit"],
1208
- select,
1209
- textarea {
938
+ input:not([type="checkbox"], [type="radio"]), button[type="submit"], select, textarea {
1210
939
  width: 100%;
1211
940
  }
1212
941
 
1213
- input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]),
1214
- select,
1215
- textarea {
942
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), select, textarea {
1216
943
  -webkit-appearance: none;
1217
944
  -moz-appearance: none;
1218
945
  appearance: none;
1219
946
  padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
1220
947
  }
1221
948
 
1222
- input,
1223
- select,
1224
- textarea {
949
+ input, select, textarea {
1225
950
  --pico-background-color: var(--pico-form-element-background-color);
1226
951
  --pico-border-color: var(--pico-form-element-border-color);
1227
952
  --pico-color: var(--pico-form-element-color);
1228
953
  --pico-box-shadow: none;
1229
954
  border: var(--pico-border-width) solid var(--pico-border-color);
1230
955
  border-radius: var(--pico-border-radius);
1231
- outline: none;
1232
956
  background-color: var(--pico-background-color);
1233
957
  box-shadow: var(--pico-box-shadow);
1234
958
  color: var(--pico-color);
1235
959
  font-weight: var(--pico-font-weight);
1236
- transition:
1237
- background-color var(--pico-transition),
960
+ transition: background-color var(--pico-transition),
1238
961
  border-color var(--pico-transition),
1239
962
  color var(--pico-transition),
1240
963
  box-shadow var(--pico-transition);
964
+ outline: none;
1241
965
  }
1242
966
 
1243
- input:not(
1244
- [type="submit"],
1245
- [type="button"],
1246
- [type="reset"],
1247
- [type="checkbox"],
1248
- [type="radio"],
1249
- [readonly]
1250
- ):is(:active, :focus),
1251
- :where(select, textarea):not([readonly]):is(:active, :focus) {
967
+ input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [readonly]):is(:active, :focus), :where(select, textarea):not([readonly]):is(:active, :focus) {
1252
968
  --pico-background-color: var(--pico-form-element-active-background-color);
1253
969
  }
1254
970
 
1255
- input:not([type="submit"], [type="button"], [type="reset"], [role="switch"], [readonly]):is(
1256
- :active,
1257
- :focus
1258
- ),
1259
- :where(select, textarea):not([readonly]):is(:active, :focus) {
971
+ input:not([type="submit"], [type="button"], [type="reset"], [role="switch"], [readonly]):is(:active, :focus), :where(select, textarea):not([readonly]):is(:active, :focus) {
1260
972
  --pico-border-color: var(--pico-form-element-active-border-color);
1261
973
  }
1262
974
 
1263
- input:not(
1264
- [type="submit"],
1265
- [type="button"],
1266
- [type="reset"],
1267
- [type="range"],
1268
- [type="file"],
1269
- [readonly]
1270
- ):focus,
1271
- :where(select, textarea):not([readonly]):focus {
975
+ input:not([type="submit"], [type="button"], [type="reset"], [type="range"], [type="file"], [readonly]):focus, :where(select, textarea):not([readonly]):focus {
1272
976
  --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
1273
977
  }
1274
978
 
1275
- input:not([type="submit"], [type="button"], [type="reset"])[disabled],
1276
- select[disabled],
1277
- textarea[disabled],
1278
- label[aria-disabled="true"],
1279
- :where(fieldset[disabled])
1280
- :is(input:not([type="submit"], [type="button"], [type="reset"]), select, textarea) {
979
+ input:not([type="submit"], [type="button"], [type="reset"])[disabled], select[disabled], textarea[disabled], label[aria-disabled="true"], :where(fieldset[disabled]) :is(input:not([type="submit"], [type="button"], [type="reset"]), select, textarea) {
1281
980
  opacity: var(--pico-form-element-disabled-opacity);
1282
981
  pointer-events: none;
1283
982
  }
@@ -1286,211 +985,168 @@ label[aria-disabled="true"] input[disabled] {
1286
985
  opacity: 1;
1287
986
  }
1288
987
 
1289
- :where(input, select, textarea):not(
1290
- [type="checkbox"],
1291
- [type="radio"],
1292
- [type="date"],
1293
- [type="datetime-local"],
1294
- [type="month"],
1295
- [type="time"],
1296
- [type="week"],
1297
- [type="range"]
1298
- )[aria-invalid] {
1299
- padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
988
+ :where(input, select, textarea):not([type="checkbox"], [type="radio"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"], [type="range"])[aria-invalid] {
1300
989
  padding-left: var(--pico-form-element-spacing-horizontal);
990
+ background-position: right .75rem center;
991
+ background-repeat: no-repeat;
992
+ background-size: 1rem;
993
+ padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
1301
994
  padding-inline-start: var(--pico-form-element-spacing-horizontal) !important;
1302
995
  padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
1303
- background-position: center right 0.75rem;
1304
- background-size: 1rem auto;
1305
- background-repeat: no-repeat;
1306
996
  }
1307
- :where(input, select, textarea):not(
1308
- [type="checkbox"],
1309
- [type="radio"],
1310
- [type="date"],
1311
- [type="datetime-local"],
1312
- [type="month"],
1313
- [type="time"],
1314
- [type="week"],
1315
- [type="range"]
1316
- )[aria-invalid="false"]:not(select) {
997
+
998
+ :where(input, select, textarea):not([type="checkbox"], [type="radio"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"], [type="range"])[aria-invalid="false"]:not(select) {
1317
999
  background-image: var(--pico-icon-valid);
1318
1000
  }
1319
- :where(input, select, textarea):not(
1320
- [type="checkbox"],
1321
- [type="radio"],
1322
- [type="date"],
1323
- [type="datetime-local"],
1324
- [type="month"],
1325
- [type="time"],
1326
- [type="week"],
1327
- [type="range"]
1328
- )[aria-invalid="true"]:not(select) {
1001
+
1002
+ :where(input, select, textarea):not([type="checkbox"], [type="radio"], [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"], [type="range"])[aria-invalid="true"]:not(select) {
1329
1003
  background-image: var(--pico-icon-invalid);
1330
1004
  }
1005
+
1331
1006
  :where(input, select, textarea)[aria-invalid="false"] {
1332
1007
  --pico-border-color: var(--pico-form-element-valid-border-color);
1333
1008
  }
1009
+
1334
1010
  :where(input, select, textarea)[aria-invalid="false"]:is(:active, :focus) {
1335
1011
  --pico-border-color: var(--pico-form-element-valid-active-border-color) !important;
1336
1012
  }
1337
- :where(input, select, textarea)[aria-invalid="false"]:is(:active, :focus):not(
1338
- [type="checkbox"],
1339
- [type="radio"]
1340
- ) {
1013
+
1014
+ :where(input, select, textarea)[aria-invalid="false"]:is(:active, :focus):not([type="checkbox"], [type="radio"]) {
1341
1015
  --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color) !important;
1342
1016
  }
1017
+
1343
1018
  :where(input, select, textarea)[aria-invalid="true"] {
1344
1019
  --pico-border-color: var(--pico-form-element-invalid-border-color);
1345
1020
  }
1021
+
1346
1022
  :where(input, select, textarea)[aria-invalid="true"]:is(:active, :focus) {
1347
1023
  --pico-border-color: var(--pico-form-element-invalid-active-border-color) !important;
1348
1024
  }
1349
- :where(input, select, textarea)[aria-invalid="true"]:is(:active, :focus):not(
1350
- [type="checkbox"],
1351
- [type="radio"]
1352
- ) {
1025
+
1026
+ :where(input, select, textarea)[aria-invalid="true"]:is(:active, :focus):not([type="checkbox"], [type="radio"]) {
1353
1027
  --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color) !important;
1354
1028
  }
1355
1029
 
1356
- [dir="rtl"]
1357
- :where(input, select, textarea):not([type="checkbox"], [type="radio"]):is(
1358
- [aria-invalid],
1359
- [aria-invalid="true"],
1360
- [aria-invalid="false"]
1361
- ) {
1362
- background-position: center left 0.75rem;
1030
+ [dir="rtl"] :where(input, select, textarea):not([type="checkbox"], [type="radio"]):is([aria-invalid], [aria-invalid="true"], [aria-invalid="false"]) {
1031
+ background-position: .75rem;
1363
1032
  }
1364
1033
 
1365
- input::placeholder,
1366
- input::-webkit-input-placeholder,
1367
- textarea::placeholder,
1368
- textarea::-webkit-input-placeholder,
1369
- select:invalid {
1034
+ input::placeholder, input::-webkit-input-placeholder, textarea::placeholder, textarea::-webkit-input-placeholder, select:invalid {
1370
1035
  color: var(--pico-form-element-placeholder-color);
1371
1036
  opacity: 1;
1372
1037
  }
1373
1038
 
1374
- input:not([type="checkbox"], [type="radio"]),
1375
- select,
1376
- textarea {
1039
+ input:not([type="checkbox"], [type="radio"]), select, textarea {
1377
1040
  margin-bottom: var(--pico-spacing);
1378
1041
  }
1379
1042
 
1380
1043
  select::-ms-expand {
1044
+ background-color: #0000;
1381
1045
  border: 0;
1382
- background-color: transparent;
1383
1046
  }
1047
+
1384
1048
  select:not([multiple], [size]) {
1385
1049
  padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
1386
1050
  padding-left: var(--pico-form-element-spacing-horizontal);
1387
- padding-inline-start: var(--pico-form-element-spacing-horizontal);
1388
- padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
1389
1051
  background-image: var(--pico-icon-chevron);
1390
- background-position: center right 0.75rem;
1391
- background-size: 1rem auto;
1052
+ background-position: right .75rem center;
1392
1053
  background-repeat: no-repeat;
1054
+ background-size: 1rem;
1055
+ padding-inline-start: var(--pico-form-element-spacing-horizontal);
1056
+ padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
1393
1057
  }
1058
+
1394
1059
  select[multiple] option:checked {
1395
1060
  background: var(--pico-form-element-selected-background-color);
1396
1061
  color: var(--pico-form-element-color);
1397
1062
  }
1398
1063
 
1399
1064
  [dir="rtl"] select:not([multiple], [size]) {
1400
- background-position: center left 0.75rem;
1065
+ background-position: .75rem;
1401
1066
  }
1402
1067
 
1403
1068
  textarea {
1404
- display: block;
1405
1069
  resize: vertical;
1070
+ display: block;
1406
1071
  }
1072
+
1407
1073
  textarea[aria-invalid] {
1408
- --pico-icon-height: calc(
1409
- 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
1410
- var(--pico-border-width) * 2
1411
- );
1412
- background-position: top right 0.75rem !important;
1074
+ --pico-icon-height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
1075
+ var(--pico-border-width) * 2);
1076
+ background-position: right .75rem top !important;
1413
1077
  background-size: 1rem var(--pico-icon-height) !important;
1414
1078
  }
1415
1079
 
1416
1080
  :where(input, select, textarea, fieldset, .grid) + small {
1417
- display: block;
1418
1081
  width: 100%;
1419
- margin-top: calc(var(--pico-spacing) * -0.75);
1082
+ margin-top: calc(var(--pico-spacing) * -.75);
1420
1083
  margin-bottom: var(--pico-spacing);
1421
1084
  color: var(--pico-muted-color);
1085
+ display: block;
1422
1086
  }
1087
+
1423
1088
  :where(input, select, textarea, fieldset, .grid)[aria-invalid="false"] + small {
1424
1089
  color: var(--pico-ins-color);
1425
1090
  }
1091
+
1426
1092
  :where(input, select, textarea, fieldset, .grid)[aria-invalid="true"] + small {
1427
1093
  color: var(--pico-del-color);
1428
1094
  }
1429
1095
 
1430
1096
  label > :where(input, select, textarea) {
1431
- margin-top: calc(var(--pico-spacing) * 0.25);
1097
+ margin-top: calc(var(--pico-spacing) * .25);
1432
1098
  }
1433
1099
 
1434
- /**
1435
- * Checkboxes, Radios and Switches
1436
- */
1437
- :where(:scope),
1438
- :host {
1100
+ :where(:scope), :host {
1439
1101
  --pico-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");
1440
1102
  --pico-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");
1441
1103
  }
1442
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
1443
- :host {
1104
+
1105
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
1444
1106
  --pico-switch-background-color: light-dark(#bfc7d9, #333c4e);
1445
1107
  --pico-switch-checked-background-color: var(--pico-primary-background);
1446
1108
  --pico-switch-color: #fff;
1447
- --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
1109
+ --pico-switch-thumb-box-shadow: 0 0 0 #0000;
1448
1110
  }
1449
1111
 
1450
1112
  label:has([type="checkbox"], [type="radio"]) {
1451
- width: -moz-fit-content;
1452
- width: fit-content;
1453
1113
  cursor: pointer;
1114
+ width: fit-content;
1454
1115
  }
1455
1116
 
1456
- [type="checkbox"],
1457
- [type="radio"] {
1117
+ [type="checkbox"], [type="radio"] {
1458
1118
  -webkit-appearance: none;
1459
1119
  -moz-appearance: none;
1460
1120
  appearance: none;
1461
- width: 1.25em;
1462
- height: 1.25em;
1463
- margin-top: -0.125em;
1464
- margin-inline-end: 0.5em;
1121
+ margin-top: -.125em;
1465
1122
  border-width: var(--pico-border-width);
1466
1123
  vertical-align: middle;
1467
1124
  cursor: pointer;
1125
+ width: 1.25em;
1126
+ height: 1.25em;
1127
+ margin-inline-end: .5em;
1468
1128
  }
1469
- [type="checkbox"]::-ms-check,
1470
- [type="radio"]::-ms-check {
1129
+
1130
+ [type="checkbox"]::-ms-check, [type="radio"]::-ms-check {
1471
1131
  display: none;
1472
1132
  }
1473
- [type="checkbox"]:checked,
1474
- [type="checkbox"]:checked:active,
1475
- [type="checkbox"]:checked:focus,
1476
- [type="radio"]:checked,
1477
- [type="radio"]:checked:active,
1478
- [type="radio"]:checked:focus {
1133
+
1134
+ [type="checkbox"]:checked, [type="checkbox"]:checked:active, [type="checkbox"]:checked:focus, [type="radio"]:checked, [type="radio"]:checked:active, [type="radio"]:checked:focus {
1479
1135
  --pico-background-color: var(--pico-primary-background);
1480
1136
  --pico-border-color: var(--pico-primary-border);
1481
1137
  background-image: var(--pico-icon-checkbox);
1482
1138
  background-position: center;
1483
- background-size: 0.75em auto;
1484
1139
  background-repeat: no-repeat;
1140
+ background-size: .75em;
1485
1141
  }
1486
- [type="checkbox"] ~ label,
1487
- [type="radio"] ~ label {
1488
- display: inline-block;
1489
- margin-bottom: 0;
1142
+
1143
+ [type="checkbox"] ~ label, [type="radio"] ~ label {
1490
1144
  cursor: pointer;
1145
+ margin-bottom: 0;
1146
+ display: inline-block;
1491
1147
  }
1492
- [type="checkbox"] ~ label:not(:last-of-type),
1493
- [type="radio"] ~ label:not(:last-of-type) {
1148
+
1149
+ [type="checkbox"] ~ label:not(:last-of-type), [type="radio"] ~ label:not(:last-of-type) {
1494
1150
  margin-inline-end: 1em;
1495
1151
  }
1496
1152
 
@@ -1499,150 +1155,120 @@ label:has([type="checkbox"], [type="radio"]) {
1499
1155
  --pico-border-color: var(--pico-primary-border);
1500
1156
  background-image: var(--pico-icon-minus);
1501
1157
  background-position: center;
1502
- background-size: 0.75em auto;
1503
1158
  background-repeat: no-repeat;
1159
+ background-size: .75em;
1504
1160
  }
1505
1161
 
1506
1162
  [type="radio"] {
1507
1163
  border-radius: 50%;
1508
1164
  }
1509
- [type="radio"]:checked,
1510
- [type="radio"]:checked:active,
1511
- [type="radio"]:checked:focus {
1165
+
1166
+ [type="radio"]:checked, [type="radio"]:checked:active, [type="radio"]:checked:focus {
1512
1167
  --pico-background-color: var(--pico-primary-inverse);
1513
- border-width: 0.35em;
1514
1168
  background-image: none;
1169
+ border-width: .35em;
1515
1170
  }
1516
1171
 
1517
1172
  [type="checkbox"][role="switch"] {
1518
1173
  --pico-background-color: var(--pico-switch-background-color);
1519
1174
  --pico-color: var(--pico-switch-color);
1520
- width: 2.25em;
1521
- height: 1.25em;
1522
1175
  border: var(--pico-border-width) solid var(--pico-border-color);
1523
- border-radius: 1.25em;
1524
1176
  background-color: var(--pico-background-color);
1177
+ border-radius: 1.25em;
1178
+ width: 2.25em;
1179
+ height: 1.25em;
1525
1180
  line-height: 1.25em;
1526
1181
  }
1182
+
1527
1183
  [type="checkbox"][role="switch"]:not([aria-invalid]) {
1528
1184
  --pico-border-color: var(--pico-switch-background-color);
1529
1185
  }
1186
+
1530
1187
  [type="checkbox"][role="switch"]:before {
1531
- display: block;
1532
1188
  aspect-ratio: 1;
1533
- height: 100%;
1534
- border-radius: 50%;
1535
1189
  background-color: var(--pico-color);
1190
+ height: 100%;
1536
1191
  box-shadow: var(--pico-switch-thumb-box-shadow);
1537
1192
  content: "";
1538
- transition: margin 0.1s ease-in-out;
1193
+ border-radius: 50%;
1194
+ transition: margin .1s ease-in-out;
1195
+ display: block;
1539
1196
  }
1197
+
1540
1198
  [type="checkbox"][role="switch"]:focus {
1541
1199
  --pico-background-color: var(--pico-switch-background-color);
1542
1200
  --pico-border-color: var(--pico-switch-background-color);
1543
1201
  }
1202
+
1544
1203
  [type="checkbox"][role="switch"]:checked {
1545
1204
  --pico-background-color: var(--pico-switch-checked-background-color);
1546
1205
  --pico-border-color: var(--pico-switch-checked-background-color);
1547
1206
  background-image: none;
1548
1207
  }
1549
- [type="checkbox"][role="switch"]:checked::before {
1550
- margin-inline-start: calc(2.25em - 1.25em);
1208
+
1209
+ [type="checkbox"][role="switch"]:checked:before {
1210
+ margin-inline-start: 1em;
1551
1211
  }
1212
+
1552
1213
  [type="checkbox"][role="switch"][disabled] {
1553
1214
  --pico-background-color: var(--pico-border-color);
1554
1215
  }
1555
1216
 
1556
- [type="checkbox"][aria-invalid="false"]:checked,
1557
- [type="checkbox"][aria-invalid="false"]:checked:active,
1558
- [type="checkbox"][aria-invalid="false"]:checked:focus,
1559
- [type="checkbox"][role="switch"][aria-invalid="false"]:checked,
1560
- [type="checkbox"][role="switch"][aria-invalid="false"]:checked:active,
1561
- [type="checkbox"][role="switch"][aria-invalid="false"]:checked:focus {
1217
+ [type="checkbox"][aria-invalid="false"]:checked, [type="checkbox"][aria-invalid="false"]:checked:active, [type="checkbox"][aria-invalid="false"]:checked:focus, [type="checkbox"][role="switch"][aria-invalid="false"]:checked, [type="checkbox"][role="switch"][aria-invalid="false"]:checked:active, [type="checkbox"][role="switch"][aria-invalid="false"]:checked:focus {
1562
1218
  --pico-background-color: var(--pico-form-element-valid-border-color);
1563
1219
  }
1564
- [type="checkbox"]:checked[aria-invalid="true"],
1565
- [type="checkbox"]:checked:active[aria-invalid="true"],
1566
- [type="checkbox"]:checked:focus[aria-invalid="true"],
1567
- [type="checkbox"][role="switch"]:checked[aria-invalid="true"],
1568
- [type="checkbox"][role="switch"]:checked:active[aria-invalid="true"],
1569
- [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
1220
+
1221
+ [type="checkbox"]:checked[aria-invalid="true"], [type="checkbox"]:checked:active[aria-invalid="true"], [type="checkbox"]:checked:focus[aria-invalid="true"], [type="checkbox"][role="switch"]:checked[aria-invalid="true"], [type="checkbox"][role="switch"]:checked:active[aria-invalid="true"], [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
1570
1222
  --pico-background-color: var(--pico-form-element-invalid-border-color);
1571
1223
  }
1572
1224
 
1573
- [type="checkbox"][aria-invalid="false"]:checked,
1574
- [type="checkbox"][aria-invalid="false"]:checked:active,
1575
- [type="checkbox"][aria-invalid="false"]:checked:focus,
1576
- [type="radio"][aria-invalid="false"]:checked,
1577
- [type="radio"][aria-invalid="false"]:checked:active,
1578
- [type="radio"][aria-invalid="false"]:checked:focus,
1579
- [type="checkbox"][role="switch"][aria-invalid="false"]:checked,
1580
- [type="checkbox"][role="switch"][aria-invalid="false"]:checked:active,
1581
- [type="checkbox"][role="switch"][aria-invalid="false"]:checked:focus {
1225
+ [type="checkbox"][aria-invalid="false"]:checked, [type="checkbox"][aria-invalid="false"]:checked:active, [type="checkbox"][aria-invalid="false"]:checked:focus, [type="radio"][aria-invalid="false"]:checked, [type="radio"][aria-invalid="false"]:checked:active, [type="radio"][aria-invalid="false"]:checked:focus, [type="checkbox"][role="switch"][aria-invalid="false"]:checked, [type="checkbox"][role="switch"][aria-invalid="false"]:checked:active, [type="checkbox"][role="switch"][aria-invalid="false"]:checked:focus {
1582
1226
  --pico-border-color: var(--pico-form-element-valid-border-color);
1583
1227
  }
1584
- [type="checkbox"]:checked[aria-invalid="true"],
1585
- [type="checkbox"]:checked:active[aria-invalid="true"],
1586
- [type="checkbox"]:checked:focus[aria-invalid="true"],
1587
- [type="radio"]:checked[aria-invalid="true"],
1588
- [type="radio"]:checked:active[aria-invalid="true"],
1589
- [type="radio"]:checked:focus[aria-invalid="true"],
1590
- [type="checkbox"][role="switch"]:checked[aria-invalid="true"],
1591
- [type="checkbox"][role="switch"]:checked:active[aria-invalid="true"],
1592
- [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
1228
+
1229
+ [type="checkbox"]:checked[aria-invalid="true"], [type="checkbox"]:checked:active[aria-invalid="true"], [type="checkbox"]:checked:focus[aria-invalid="true"], [type="radio"]:checked[aria-invalid="true"], [type="radio"]:checked:active[aria-invalid="true"], [type="radio"]:checked:focus[aria-invalid="true"], [type="checkbox"][role="switch"]:checked[aria-invalid="true"], [type="checkbox"][role="switch"]:checked:active[aria-invalid="true"], [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
1593
1230
  --pico-border-color: var(--pico-form-element-invalid-border-color);
1594
1231
  }
1595
- /**
1596
- * Input type color
1597
- */
1232
+
1598
1233
  [type="color"]::-webkit-color-swatch-wrapper {
1599
1234
  padding: 0;
1600
1235
  }
1236
+
1601
1237
  [type="color"]::-moz-focus-inner {
1602
1238
  padding: 0;
1603
1239
  }
1240
+
1604
1241
  [type="color"]::-webkit-color-swatch {
1242
+ border-radius: calc(var(--pico-border-radius) * .5);
1605
1243
  border: 0;
1606
- border-radius: calc(var(--pico-border-radius) * 0.5);
1607
1244
  }
1245
+
1608
1246
  [type="color"]::-moz-color-swatch {
1247
+ border-radius: calc(var(--pico-border-radius) * .5);
1609
1248
  border: 0;
1610
- border-radius: calc(var(--pico-border-radius) * 0.5);
1611
1249
  }
1612
- /**
1613
- * Input type datetime
1614
- */
1615
- :where(:scope),
1616
- :host {
1250
+
1251
+ :where(:scope), :host {
1617
1252
  --pico-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, 145, 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");
1618
1253
  --pico-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, 145, 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");
1619
1254
  }
1620
1255
 
1621
- input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is(
1622
- [type="date"],
1623
- [type="datetime-local"],
1624
- [type="month"],
1625
- [type="time"],
1626
- [type="week"]
1627
- ) {
1628
- --pico-icon-position: 0.75rem;
1256
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1257
+ --pico-icon-position: .75rem;
1629
1258
  --pico-icon-width: 1rem;
1630
- min-width: 0;
1631
1259
  padding-right: calc(var(--pico-icon-width) + var(--pico-icon-position));
1632
1260
  background-image: var(--pico-icon-date);
1633
1261
  background-position: center right var(--pico-icon-position);
1634
1262
  background-size: var(--pico-icon-width) auto;
1635
1263
  background-repeat: no-repeat;
1264
+ min-width: 0;
1636
1265
  }
1266
+
1637
1267
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="time"] {
1638
1268
  background-image: var(--pico-icon-time);
1639
1269
  }
1640
1270
 
1641
- [type="date"]::-webkit-calendar-picker-indicator,
1642
- [type="datetime-local"]::-webkit-calendar-picker-indicator,
1643
- [type="month"]::-webkit-calendar-picker-indicator,
1644
- [type="time"]::-webkit-calendar-picker-indicator,
1645
- [type="week"]::-webkit-calendar-picker-indicator {
1271
+ [type="date"]::-webkit-calendar-picker-indicator, [type="datetime-local"]::-webkit-calendar-picker-indicator, [type="month"]::-webkit-calendar-picker-indicator, [type="time"]::-webkit-calendar-picker-indicator, [type="week"]::-webkit-calendar-picker-indicator {
1646
1272
  width: var(--pico-icon-width);
1647
1273
  margin-right: calc(var(--pico-icon-width) * -1);
1648
1274
  margin-left: var(--pico-icon-position);
@@ -1650,50 +1276,43 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1650
1276
  }
1651
1277
 
1652
1278
  @-moz-document url-prefix() {
1653
- [type="date"],
1654
- [type="datetime-local"],
1655
- [type="month"],
1656
- [type="time"],
1657
- [type="week"] {
1279
+ [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"] {
1658
1280
  padding-right: var(--pico-form-element-spacing-horizontal) !important;
1659
1281
  background-image: none !important;
1660
1282
  }
1661
1283
  }
1662
- [dir="rtl"]
1663
- :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1284
+
1285
+ [dir="rtl"] :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
1664
1286
  text-align: end;
1665
1287
  }
1666
- /**
1667
- * Input type file
1668
- */
1288
+
1669
1289
  [type="file"] {
1670
1290
  --pico-color: var(--pico-muted-color);
1671
1291
  margin-left: calc(var(--pico-outline-width) * -1);
1672
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) 0;
1292
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5) 0;
1673
1293
  padding-left: var(--pico-outline-width);
1294
+ background: none;
1674
1295
  border: 0;
1675
1296
  border-radius: 0;
1676
- background: none;
1677
1297
  }
1298
+
1678
1299
  [type="file"]::file-selector-button {
1679
1300
  margin-right: calc(var(--pico-spacing) / 2);
1680
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
1301
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
1681
1302
  var(--pico-form-element-spacing-horizontal);
1682
1303
  }
1304
+
1683
1305
  [type="file"]:is(:hover, :active, :focus)::file-selector-button {
1684
1306
  --pico-background-color: var(--pico-secondary-hover-background);
1685
1307
  --pico-border-color: var(--pico-secondary-hover-border);
1686
1308
  }
1309
+
1687
1310
  [type="file"]:focus::file-selector-button {
1688
- --pico-box-shadow:
1689
- var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
1311
+ --pico-box-shadow: var(--pico-button-hover-box-shadow, 0 0 0 #0000),
1690
1312
  0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
1691
1313
  }
1692
- /**
1693
- * Input type range
1694
- */
1695
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
1696
- :host {
1314
+
1315
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
1697
1316
  --pico-range-border-color: light-dark(#dfe3eb, #202632);
1698
1317
  --pico-range-active-border-color: light-dark(#bfc7d9, #2a3140);
1699
1318
  --pico-range-thumb-border-color: var(--pico-background-color);
@@ -1705,176 +1324,140 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1705
1324
  -webkit-appearance: none;
1706
1325
  -moz-appearance: none;
1707
1326
  appearance: none;
1327
+ background: none;
1708
1328
  width: 100%;
1709
1329
  height: 1.25rem;
1710
- background: none;
1711
1330
  }
1331
+
1712
1332
  [type="range"]::-webkit-slider-runnable-track {
1713
- width: 100%;
1714
- height: 0.375rem;
1715
1333
  border-radius: var(--pico-border-radius);
1716
1334
  background-color: var(--pico-range-border-color);
1717
- -webkit-transition:
1718
- background-color var(--pico-transition),
1335
+ width: 100%;
1336
+ height: .375rem;
1337
+ -webkit-transition: background-color var(--pico-transition),
1719
1338
  box-shadow var(--pico-transition);
1720
- transition:
1721
- background-color var(--pico-transition),
1339
+ transition: background-color var(--pico-transition),
1722
1340
  box-shadow var(--pico-transition);
1723
1341
  }
1342
+
1724
1343
  [type="range"]::-moz-range-track {
1725
- width: 100%;
1726
- height: 0.375rem;
1727
1344
  border-radius: var(--pico-border-radius);
1728
1345
  background-color: var(--pico-range-border-color);
1729
- -moz-transition:
1730
- background-color var(--pico-transition),
1346
+ width: 100%;
1347
+ height: .375rem;
1348
+ -moz-transition: background-color var(--pico-transition),
1731
1349
  box-shadow var(--pico-transition);
1732
- transition:
1733
- background-color var(--pico-transition),
1350
+ transition: background-color var(--pico-transition),
1734
1351
  box-shadow var(--pico-transition);
1735
1352
  }
1353
+
1736
1354
  [type="range"]::-ms-track {
1737
- width: 100%;
1738
- height: 0.375rem;
1739
1355
  border-radius: var(--pico-border-radius);
1740
1356
  background-color: var(--pico-range-border-color);
1741
- -ms-transition:
1742
- background-color var(--pico-transition),
1357
+ width: 100%;
1358
+ height: .375rem;
1359
+ -ms-transition: background-color var(--pico-transition),
1743
1360
  box-shadow var(--pico-transition);
1744
- transition:
1745
- background-color var(--pico-transition),
1361
+ transition: background-color var(--pico-transition),
1746
1362
  box-shadow var(--pico-transition);
1747
1363
  }
1364
+
1748
1365
  [type="range"]::-webkit-slider-thumb {
1749
1366
  -webkit-appearance: none;
1750
- width: 1.25rem;
1751
- height: 1.25rem;
1752
- margin-top: -0.4375rem;
1753
1367
  border: 2px solid var(--pico-range-thumb-border-color);
1754
- border-radius: 50%;
1755
1368
  background-color: var(--pico-range-thumb-color);
1756
1369
  cursor: pointer;
1757
- -webkit-transition:
1758
- background-color var(--pico-transition),
1370
+ width: 1.25rem;
1371
+ height: 1.25rem;
1372
+ -webkit-transition: background-color var(--pico-transition),
1759
1373
  transform var(--pico-transition);
1760
- transition:
1761
- background-color var(--pico-transition),
1374
+ transition: background-color var(--pico-transition),
1762
1375
  transform var(--pico-transition);
1376
+ border-radius: 50%;
1377
+ margin-top: -.4375rem;
1763
1378
  }
1379
+
1764
1380
  [type="range"]::-moz-range-thumb {
1765
1381
  -webkit-appearance: none;
1766
- width: 1.25rem;
1767
- height: 1.25rem;
1768
- margin-top: -0.4375rem;
1769
1382
  border: 2px solid var(--pico-range-thumb-border-color);
1770
- border-radius: 50%;
1771
1383
  background-color: var(--pico-range-thumb-color);
1772
1384
  cursor: pointer;
1773
- -moz-transition:
1774
- background-color var(--pico-transition),
1385
+ width: 1.25rem;
1386
+ height: 1.25rem;
1387
+ -moz-transition: background-color var(--pico-transition),
1775
1388
  transform var(--pico-transition);
1776
- transition:
1777
- background-color var(--pico-transition),
1389
+ transition: background-color var(--pico-transition),
1778
1390
  transform var(--pico-transition);
1391
+ border-radius: 50%;
1392
+ margin-top: -.4375rem;
1779
1393
  }
1394
+
1780
1395
  [type="range"]::-ms-thumb {
1781
1396
  -webkit-appearance: none;
1782
- width: 1.25rem;
1783
- height: 1.25rem;
1784
- margin-top: -0.4375rem;
1785
1397
  border: 2px solid var(--pico-range-thumb-border-color);
1786
- border-radius: 50%;
1787
1398
  background-color: var(--pico-range-thumb-color);
1788
1399
  cursor: pointer;
1789
- -ms-transition:
1790
- background-color var(--pico-transition),
1400
+ width: 1.25rem;
1401
+ height: 1.25rem;
1402
+ -ms-transition: background-color var(--pico-transition),
1791
1403
  transform var(--pico-transition);
1792
- transition:
1793
- background-color var(--pico-transition),
1404
+ transition: background-color var(--pico-transition),
1794
1405
  transform var(--pico-transition);
1406
+ border-radius: 50%;
1407
+ margin-top: -.4375rem;
1795
1408
  }
1796
- [type="range"]:active,
1797
- [type="range"]:focus-within {
1409
+
1410
+ [type="range"]:active, [type="range"]:focus-within {
1798
1411
  --pico-range-border-color: var(--pico-range-active-border-color);
1799
1412
  --pico-range-thumb-color: var(--pico-range-thumb-active-color);
1800
1413
  }
1414
+
1801
1415
  [type="range"]:active::-webkit-slider-thumb {
1802
1416
  transform: scale(1.25);
1803
1417
  }
1418
+
1804
1419
  [type="range"]:active::-moz-range-thumb {
1805
1420
  transform: scale(1.25);
1806
1421
  }
1422
+
1807
1423
  [type="range"]:active::-ms-thumb {
1808
1424
  transform: scale(1.25);
1809
1425
  }
1810
- /**
1811
- * Input type search
1812
- */
1813
- :where(:scope),
1814
- :host {
1426
+
1427
+ :where(:scope), :host {
1815
1428
  --pico-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, 145, 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");
1816
1429
  }
1817
1430
 
1818
1431
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
1819
- padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
1820
1432
  background-image: var(--pico-icon-search);
1821
- background-position: center left calc(var(--pico-form-element-spacing-horizontal) + 0.125rem);
1822
- background-size: 1rem auto;
1433
+ background-position: center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);
1823
1434
  background-repeat: no-repeat;
1435
+ background-size: 1rem;
1436
+ padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
1824
1437
  }
1825
- input:not(
1826
- [type="checkbox"],
1827
- [type="radio"],
1828
- [type="range"],
1829
- [type="file"]
1830
- )[type="search"][aria-invalid] {
1438
+
1439
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid] {
1440
+ background-position: 1.125rem, right .75rem center;
1831
1441
  padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem) !important;
1832
- background-position:
1833
- center left 1.125rem,
1834
- center right 0.75rem;
1835
- }
1836
- input:not(
1837
- [type="checkbox"],
1838
- [type="radio"],
1839
- [type="range"],
1840
- [type="file"]
1841
- )[type="search"][aria-invalid="false"] {
1442
+ }
1443
+
1444
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid="false"] {
1842
1445
  background-image: var(--pico-icon-search), var(--pico-icon-valid);
1843
1446
  }
1844
- input:not(
1845
- [type="checkbox"],
1846
- [type="radio"],
1847
- [type="range"],
1848
- [type="file"]
1849
- )[type="search"][aria-invalid="true"] {
1447
+
1448
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid="true"] {
1850
1449
  background-image: var(--pico-icon-search), var(--pico-icon-invalid);
1851
1450
  }
1852
1451
 
1853
- [dir="rtl"]
1854
- :where(input):not(
1855
- [type="checkbox"],
1856
- [type="radio"],
1857
- [type="range"],
1858
- [type="file"]
1859
- )[type="search"] {
1860
- background-position: center right 1.125rem;
1861
- }
1862
- [dir="rtl"]
1863
- :where(input):not(
1864
- [type="checkbox"],
1865
- [type="radio"],
1866
- [type="range"],
1867
- [type="file"]
1868
- )[type="search"][aria-invalid] {
1869
- background-position:
1870
- center right 1.125rem,
1871
- center left 0.75rem;
1872
- }
1873
- /**
1874
- * Accordion (<details>)
1875
- */
1876
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
1877
- :host {
1452
+ [dir="rtl"] :where(input):not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
1453
+ background-position: right 1.125rem center;
1454
+ }
1455
+
1456
+ [dir="rtl"] :where(input):not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"][aria-invalid] {
1457
+ background-position: right 1.125rem center, .75rem;
1458
+ }
1459
+
1460
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
1878
1461
  --pico-accordion-border-color: var(--pico-muted-border-color);
1879
1462
  --pico-accordion-active-summary-color: var(--pico-primary-hover);
1880
1463
  --pico-accordion-close-summary-color: var(--pico-color);
@@ -1882,91 +1465,97 @@ input:not(
1882
1465
  }
1883
1466
 
1884
1467
  details {
1885
- display: block;
1886
1468
  margin-bottom: var(--pico-spacing);
1469
+ display: block;
1887
1470
  }
1471
+
1888
1472
  details summary {
1889
- line-height: 1rem;
1890
- list-style-type: none;
1891
1473
  cursor: pointer;
1892
1474
  transition: color var(--pico-transition);
1475
+ line-height: 1rem;
1476
+ list-style-type: none;
1893
1477
  }
1478
+
1894
1479
  details summary:not([role]) {
1895
1480
  color: var(--pico-accordion-close-summary-color);
1896
1481
  }
1482
+
1897
1483
  details summary::-webkit-details-marker {
1898
1484
  display: none;
1899
1485
  }
1486
+
1900
1487
  details summary::marker {
1901
1488
  display: none;
1902
1489
  }
1490
+
1903
1491
  details summary::-moz-list-bullet {
1904
1492
  list-style-type: none;
1905
1493
  }
1906
- details summary::after {
1907
- display: block;
1494
+
1495
+ details summary:after {
1908
1496
  width: 1rem;
1909
1497
  height: 1rem;
1910
- margin-inline-start: calc(var(--pico-spacing, 1rem) * 0.5);
1911
1498
  float: right;
1912
- transform: rotate(-90deg);
1913
1499
  background-image: var(--pico-icon-chevron);
1914
- background-position: right center;
1915
- background-size: 1rem auto;
1916
- background-repeat: no-repeat;
1917
1500
  content: "";
1918
1501
  transition: transform var(--pico-transition);
1502
+ background-position: 100%;
1503
+ background-repeat: no-repeat;
1504
+ background-size: 1rem;
1505
+ margin-inline-start: calc(var(--pico-spacing, 1rem) * .5);
1506
+ display: block;
1507
+ transform: rotate(-90deg);
1919
1508
  }
1509
+
1920
1510
  details summary:focus {
1921
1511
  outline: none;
1922
1512
  }
1513
+
1923
1514
  details summary:focus:not([role]) {
1924
1515
  color: var(--pico-accordion-active-summary-color);
1925
1516
  }
1517
+
1926
1518
  details summary:focus-visible:not([role]) {
1927
1519
  outline: var(--pico-outline-width) solid var(--pico-primary-focus);
1928
- outline-offset: calc(var(--pico-spacing, 1rem) * 0.5);
1520
+ outline-offset: calc(var(--pico-spacing, 1rem) * .5);
1929
1521
  color: var(--pico-primary);
1930
1522
  }
1523
+
1931
1524
  details summary[role="button"] {
1932
- width: 100%;
1933
1525
  text-align: start;
1526
+ width: 100%;
1934
1527
  }
1935
- details summary[role="button"]::after {
1528
+
1529
+ details summary[role="button"]:after {
1936
1530
  height: calc(1rem * var(--pico-line-height, 1.5));
1937
1531
  }
1532
+
1938
1533
  details[open] > summary {
1939
1534
  margin-bottom: var(--pico-spacing);
1940
1535
  }
1536
+
1941
1537
  details[open] > summary:not([role]):not(:focus) {
1942
1538
  color: var(--pico-accordion-open-summary-color);
1943
1539
  }
1944
- details[open] > summary::after {
1540
+
1541
+ details[open] > summary:after {
1945
1542
  transform: rotate(0);
1946
1543
  }
1947
1544
 
1948
1545
  [dir="rtl"] details summary {
1949
1546
  text-align: end;
1950
1547
  }
1951
- [dir="rtl"] details summary::after {
1548
+
1549
+ [dir="rtl"] details summary:after {
1952
1550
  float: left;
1953
- background-position: left center;
1551
+ background-position: 0;
1954
1552
  }
1955
- /**
1956
- * Card (<article>)
1957
- */
1958
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
1959
- :host {
1553
+
1554
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
1960
1555
  --pico-card-background-color: light-dark(var(--pico-background-color), #181c25);
1961
- --pico-card-border-color: light-dark(
1962
- var(--pico-muted-border-color),
1963
- var(--pico-card-background-color)
1964
- );
1556
+ --pico-card-border-color: light-dark(var(--pico-muted-border-color), var(--pico-card-background-color));
1965
1557
  --pico-card-box-shadow: var(--pico-box-shadow);
1966
- --pico-card-sectioning-background-color: light-dark(
1967
- rgb(251, 251.5, 252.25),
1968
- rgb(26, 30.5, 40.25)
1969
- );
1558
+ --pico-card-sectioning-background-color: light-dark(#fbfcfc, #1a1f28);
1970
1559
  }
1971
1560
 
1972
1561
  article {
@@ -1976,13 +1565,14 @@ article {
1976
1565
  background: var(--pico-card-background-color);
1977
1566
  box-shadow: var(--pico-card-box-shadow);
1978
1567
  }
1979
- article > header,
1980
- article > footer {
1568
+
1569
+ article > header, article > footer {
1981
1570
  margin-right: calc(var(--pico-block-spacing-horizontal) * -1);
1982
1571
  margin-left: calc(var(--pico-block-spacing-horizontal) * -1);
1983
- padding: calc(var(--pico-block-spacing-vertical) * 0.66) var(--pico-block-spacing-horizontal);
1572
+ padding: calc(var(--pico-block-spacing-vertical) * .66) var(--pico-block-spacing-horizontal);
1984
1573
  background-color: var(--pico-card-sectioning-background-color);
1985
1574
  }
1575
+
1986
1576
  article > header {
1987
1577
  margin-top: calc(var(--pico-block-spacing-vertical) * -1);
1988
1578
  margin-bottom: var(--pico-block-spacing-vertical);
@@ -1990,6 +1580,7 @@ article > header {
1990
1580
  border-top-right-radius: var(--pico-border-radius);
1991
1581
  border-top-left-radius: var(--pico-border-radius);
1992
1582
  }
1583
+
1993
1584
  article > footer {
1994
1585
  margin-top: var(--pico-block-spacing-vertical);
1995
1586
  margin-bottom: calc(var(--pico-block-spacing-vertical) * -1);
@@ -1997,11 +1588,8 @@ article > footer {
1997
1588
  border-bottom-right-radius: var(--pico-border-radius);
1998
1589
  border-bottom-left-radius: var(--pico-border-radius);
1999
1590
  }
2000
- /**
2001
- * Dropdown (details.dropdown)
2002
- */
2003
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
2004
- :host {
1591
+
1592
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2005
1593
  --pico-dropdown-background-color: light-dark(#fff, #181c25);
2006
1594
  --pico-dropdown-border-color: light-dark(#eff1f4, #202632);
2007
1595
  --pico-dropdown-box-shadow: var(--pico-box-shadow);
@@ -2010,23 +1598,22 @@ article > footer {
2010
1598
  }
2011
1599
 
2012
1600
  details.dropdown {
2013
- position: relative;
2014
1601
  border-bottom: none;
1602
+ position: relative;
2015
1603
  }
2016
- details.dropdown > summary::after,
2017
- details.dropdown > button::after,
2018
- details.dropdown > a::after {
2019
- display: block;
1604
+
1605
+ details.dropdown > summary:after, details.dropdown > button:after, details.dropdown > a:after {
2020
1606
  width: 1rem;
2021
1607
  height: calc(1rem * var(--pico-line-height, 1.5));
2022
- margin-inline-start: 0.25rem;
2023
1608
  float: right;
2024
- transform: rotate(0deg) translateX(0.2rem);
2025
1609
  background-image: var(--pico-icon-chevron);
2026
- background-position: right center;
2027
- background-size: 1rem auto;
2028
- background-repeat: no-repeat;
2029
1610
  content: "";
1611
+ background-position: 100%;
1612
+ background-repeat: no-repeat;
1613
+ background-size: 1rem;
1614
+ margin-inline-start: .25rem;
1615
+ display: block;
1616
+ transform: rotate(0) translateX(.2rem);
2030
1617
  }
2031
1618
 
2032
1619
  nav details.dropdown {
@@ -2034,10 +1621,8 @@ nav details.dropdown {
2034
1621
  }
2035
1622
 
2036
1623
  details.dropdown > summary:not([role]) {
2037
- height: calc(
2038
- 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
2039
- var(--pico-border-width) * 2
2040
- );
1624
+ height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
1625
+ var(--pico-border-width) * 2);
2041
1626
  padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
2042
1627
  border: var(--pico-border-width) solid var(--pico-form-element-border-color);
2043
1628
  border-radius: var(--pico-border-radius);
@@ -2047,29 +1632,32 @@ details.dropdown > summary:not([role]) {
2047
1632
  cursor: pointer;
2048
1633
  -webkit-user-select: none;
2049
1634
  -moz-user-select: none;
2050
- transition:
2051
- background-color var(--pico-transition),
1635
+ user-select: none;
1636
+ transition: background-color var(--pico-transition),
2052
1637
  border-color var(--pico-transition),
2053
1638
  color var(--pico-transition),
2054
1639
  box-shadow var(--pico-transition);
2055
- user-select: none;
2056
1640
  }
2057
- details.dropdown > summary:not([role]):active,
2058
- details.dropdown > summary:not([role]):focus {
1641
+
1642
+ details.dropdown > summary:not([role]):active, details.dropdown > summary:not([role]):focus {
2059
1643
  border-color: var(--pico-form-element-active-border-color);
2060
1644
  background-color: var(--pico-form-element-active-background-color);
2061
1645
  }
1646
+
2062
1647
  details.dropdown > summary:not([role]):focus {
2063
1648
  box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
2064
1649
  }
1650
+
2065
1651
  details.dropdown > summary:not([role]):focus-visible {
2066
1652
  outline: none;
2067
1653
  }
1654
+
2068
1655
  details.dropdown > summary:not([role])[aria-invalid="false"] {
2069
1656
  --pico-form-element-border-color: var(--pico-form-element-valid-border-color);
2070
1657
  --pico-form-element-active-border-color: var(--pico-form-element-valid-focus-color);
2071
1658
  --pico-form-element-focus-color: var(--pico-form-element-valid-focus-color);
2072
1659
  }
1660
+
2073
1661
  details.dropdown > summary:not([role])[aria-invalid="true"] {
2074
1662
  --pico-form-element-border-color: var(--pico-form-element-invalid-border-color);
2075
1663
  --pico-form-element-active-border-color: var(--pico-form-element-invalid-focus-color);
@@ -2077,33 +1665,30 @@ details.dropdown > summary:not([role])[aria-invalid="true"] {
2077
1665
  }
2078
1666
 
2079
1667
  nav details.dropdown {
2080
- display: inline-block;
2081
1668
  margin: calc(var(--pico-nav-element-spacing-vertical) * -1) 0;
1669
+ display: inline-block;
2082
1670
  }
2083
- nav details.dropdown > summary::after {
2084
- transform: rotate(0deg) translateX(0rem);
1671
+
1672
+ nav details.dropdown > summary:after {
1673
+ transform: rotate(0) translateX(0);
2085
1674
  }
1675
+
2086
1676
  nav details.dropdown > summary:not([role]) {
2087
1677
  height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);
2088
1678
  padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
2089
1679
  var(--pico-nav-link-spacing-horizontal);
2090
1680
  }
1681
+
2091
1682
  nav details.dropdown > summary:not([role]):focus-visible {
2092
1683
  box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
2093
1684
  }
2094
1685
 
2095
1686
  details.dropdown > summary + ul {
2096
- display: flex;
2097
1687
  z-index: 99;
2098
- position: absolute;
2099
- left: 0;
2100
- flex-direction: column;
2101
1688
  width: 100%;
2102
- min-width: -moz-fit-content;
2103
1689
  min-width: fit-content;
2104
1690
  margin: 0;
2105
1691
  margin-top: var(--pico-outline-width);
2106
- padding: 0;
2107
1692
  border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
2108
1693
  border-radius: var(--pico-border-radius);
2109
1694
  background-color: var(--pico-dropdown-background-color);
@@ -2111,49 +1696,57 @@ details.dropdown > summary + ul {
2111
1696
  color: var(--pico-dropdown-color);
2112
1697
  white-space: nowrap;
2113
1698
  opacity: 0;
2114
- transition:
2115
- opacity var(--pico-transition),
1699
+ transition: opacity var(--pico-transition),
2116
1700
  transform 0s ease-in-out 1s;
1701
+ flex-direction: column;
1702
+ padding: 0;
1703
+ display: flex;
1704
+ position: absolute;
1705
+ left: 0;
2117
1706
  }
1707
+
2118
1708
  details.dropdown > summary + ul[dir="rtl"] {
2119
- right: 0;
2120
1709
  left: auto;
1710
+ right: 0;
2121
1711
  }
1712
+
2122
1713
  details.dropdown > summary + ul li {
2123
1714
  width: 100%;
2124
- margin-bottom: 0;
2125
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
1715
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
2126
1716
  var(--pico-form-element-spacing-horizontal);
1717
+ margin-bottom: 0;
2127
1718
  list-style: none;
2128
1719
  }
1720
+
2129
1721
  details.dropdown > summary + ul li:first-of-type {
2130
- margin-top: calc(var(--pico-form-element-spacing-vertical) * 0.5);
1722
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * .5);
2131
1723
  }
1724
+
2132
1725
  details.dropdown > summary + ul li:last-of-type {
2133
- margin-bottom: calc(var(--pico-form-element-spacing-vertical) * 0.5);
1726
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * .5);
2134
1727
  }
1728
+
2135
1729
  details.dropdown > summary + ul li a {
2136
- display: block;
2137
- margin: calc(var(--pico-form-element-spacing-vertical) * -0.5)
1730
+ margin: calc(var(--pico-form-element-spacing-vertical) * -.5)
2138
1731
  calc(var(--pico-form-element-spacing-horizontal) * -1);
2139
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
1732
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
2140
1733
  var(--pico-form-element-spacing-horizontal);
2141
- overflow: hidden;
2142
- border-radius: 0;
2143
1734
  color: var(--pico-dropdown-color);
2144
- text-decoration: none;
2145
1735
  text-overflow: ellipsis;
1736
+ border-radius: 0;
1737
+ text-decoration: none;
1738
+ display: block;
1739
+ overflow: hidden;
2146
1740
  }
2147
- details.dropdown > summary + ul li a:hover,
2148
- details.dropdown > summary + ul li a:focus,
2149
- details.dropdown > summary + ul li a:active,
2150
- details.dropdown > summary + ul li a:focus-visible,
2151
- details.dropdown > summary + ul li a[aria-current]:not([aria-current="false"]) {
1741
+
1742
+ details.dropdown > summary + ul li a:hover, details.dropdown > summary + ul li a:focus, details.dropdown > summary + ul li a:active, details.dropdown > summary + ul li a:focus-visible, details.dropdown > summary + ul li a[aria-current]:not([aria-current="false"]) {
2152
1743
  background-color: var(--pico-dropdown-hover-background-color);
2153
1744
  }
1745
+
2154
1746
  details.dropdown > summary + ul li label {
2155
1747
  width: 100%;
2156
1748
  }
1749
+
2157
1750
  details.dropdown > summary + ul li:has(label):hover {
2158
1751
  background-color: var(--pico-dropdown-hover-background-color);
2159
1752
  }
@@ -2163,463 +1756,326 @@ details.dropdown[open] > summary {
2163
1756
  }
2164
1757
 
2165
1758
  details.dropdown[open] > summary + ul {
2166
- transform: scaleY(1);
2167
1759
  opacity: 1;
2168
- transition:
2169
- opacity var(--pico-transition),
1760
+ transition: opacity var(--pico-transition),
2170
1761
  transform 0s ease-in-out 0s;
1762
+ transform: scaleY(1);
2171
1763
  }
2172
1764
 
2173
- details.dropdown[open] > summary::before {
2174
- display: block;
1765
+ details.dropdown[open] > summary:before {
2175
1766
  z-index: 1;
2176
- position: fixed;
1767
+ content: "";
1768
+ cursor: default;
1769
+ background: none;
2177
1770
  width: 100vw;
2178
1771
  height: 100vh;
1772
+ display: block;
1773
+ position: fixed;
2179
1774
  inset: 0;
2180
- background: none;
2181
- content: "";
2182
- cursor: default;
2183
1775
  }
2184
1776
 
2185
1777
  label > details.dropdown {
2186
- margin-top: calc(var(--pico-spacing) * 0.25);
1778
+ margin-top: calc(var(--pico-spacing) * .25);
2187
1779
  }
2188
1780
 
2189
- /**
2190
- * Group ([role="group"], [role="search"])
2191
- */
2192
- :where(:scope),
2193
- :host {
2194
- --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
1781
+ :where(:scope), :host {
1782
+ --pico-group-box-shadow: 0 0 0 #0000;
2195
1783
  --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
2196
1784
  var(--pico-primary-focus);
2197
- --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
2198
- }
2199
- [role="search"]:has(
2200
- button.secondary:focus,
2201
- [type="submit"].secondary:focus,
2202
- [type="button"].secondary:focus,
2203
- [role="button"].secondary:focus
2204
- ),
2205
- [role="group"]:has(
2206
- button.secondary:focus,
2207
- [type="submit"].secondary:focus,
2208
- [type="button"].secondary:focus,
2209
- [role="button"].secondary:focus
2210
- ) {
1785
+ --pico-group-box-shadow-focus-with-input: 0 0 0 .0625rem var(--pico-form-element-border-color);
1786
+ }
1787
+
1788
+ [role="search"]:has(button.secondary:focus, [type="submit"].secondary:focus, [type="button"].secondary:focus, [role="button"].secondary:focus), [role="group"]:has(button.secondary:focus, [type="submit"].secondary:focus, [type="button"].secondary:focus, [role="button"].secondary:focus) {
2211
1789
  --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
2212
1790
  var(--pico-secondary-focus);
2213
1791
  }
2214
- [role="search"]:has(
2215
- button.contrast:focus,
2216
- [type="submit"].contrast:focus,
2217
- [type="button"].contrast:focus,
2218
- [role="button"].contrast:focus
2219
- ),
2220
- [role="group"]:has(
2221
- button.contrast:focus,
2222
- [type="submit"].contrast:focus,
2223
- [type="button"].contrast:focus,
2224
- [role="button"].contrast:focus
2225
- ) {
1792
+
1793
+ [role="search"]:has(button.contrast:focus, [type="submit"].contrast:focus, [type="button"].contrast:focus, [role="button"].contrast:focus), [role="group"]:has(button.contrast:focus, [type="submit"].contrast:focus, [type="button"].contrast:focus, [role="button"].contrast:focus) {
2226
1794
  --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
2227
1795
  var(--pico-contrast-focus);
2228
1796
  }
2229
1797
 
2230
- [role="search"],
2231
- [role="group"] {
2232
- display: inline-flex;
2233
- position: relative;
1798
+ [role="search"], [role="group"] {
2234
1799
  width: 100%;
2235
1800
  margin-bottom: var(--pico-spacing);
2236
1801
  border-radius: var(--pico-border-radius);
2237
- box-shadow: var(--pico-group-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
1802
+ box-shadow: var(--pico-group-box-shadow, 0 0 0 #0000);
2238
1803
  vertical-align: middle;
2239
1804
  transition: box-shadow var(--pico-transition);
2240
- }
2241
- [role="search"] > *,
2242
- [role="search"] input:not([type="checkbox"], [type="radio"]),
2243
- [role="search"] select,
2244
- [role="group"] > *,
2245
- [role="group"] input:not([type="checkbox"], [type="radio"]),
2246
- [role="group"] select {
1805
+ display: inline-flex;
2247
1806
  position: relative;
2248
- flex: 1 1 auto;
1807
+ }
1808
+
1809
+ [role="search"] > *, [role="search"] input:not([type="checkbox"], [type="radio"]), [role="search"] select, [role="group"] > *, [role="group"] input:not([type="checkbox"], [type="radio"]), [role="group"] select {
1810
+ flex: auto;
2249
1811
  margin-bottom: 0;
1812
+ position: relative;
2250
1813
  }
2251
- [role="search"] > *:not(:first-child),
2252
- [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
2253
- [role="search"] select:not(:first-child),
2254
- [role="group"] > *:not(:first-child),
2255
- [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
2256
- [role="group"] select:not(:first-child) {
2257
- margin-left: 0;
1814
+
1815
+ [role="search"] > :not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] > :not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
2258
1816
  border-top-left-radius: 0;
2259
1817
  border-bottom-left-radius: 0;
1818
+ margin-left: 0;
2260
1819
  }
2261
- [role="search"] > *:not(:last-child),
2262
- [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child),
2263
- [role="search"] select:not(:last-child),
2264
- [role="group"] > *:not(:last-child),
2265
- [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child),
2266
- [role="group"] select:not(:last-child) {
1820
+
1821
+ [role="search"] > :not(:last-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="search"] select:not(:last-child), [role="group"] > :not(:last-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child), [role="group"] select:not(:last-child) {
2267
1822
  border-top-right-radius: 0;
2268
1823
  border-bottom-right-radius: 0;
2269
1824
  }
2270
- [role="search"] > *:focus,
2271
- [role="search"] input:not([type="checkbox"], [type="radio"]):focus,
2272
- [role="search"] select:focus,
2273
- [role="group"] > *:focus,
2274
- [role="group"] input:not([type="checkbox"], [type="radio"]):focus,
2275
- [role="group"] select:focus {
1825
+
1826
+ [role="search"] > :focus, [role="search"] input:not([type="checkbox"], [type="radio"]):focus, [role="search"] select:focus, [role="group"] > :focus, [role="group"] input:not([type="checkbox"], [type="radio"]):focus, [role="group"] select:focus {
2276
1827
  z-index: 2;
2277
1828
  }
2278
- [role="search"] button:not(:first-child),
2279
- [role="search"] [type="submit"]:not(:first-child),
2280
- [role="search"] [type="reset"]:not(:first-child),
2281
- [role="search"] [type="button"]:not(:first-child),
2282
- [role="search"] [role="button"]:not(:first-child),
2283
- [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
2284
- [role="search"] select:not(:first-child),
2285
- [role="group"] button:not(:first-child),
2286
- [role="group"] [type="submit"]:not(:first-child),
2287
- [role="group"] [type="reset"]:not(:first-child),
2288
- [role="group"] [type="button"]:not(:first-child),
2289
- [role="group"] [role="button"]:not(:first-child),
2290
- [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
2291
- [role="group"] select:not(:first-child) {
1829
+
1830
+ [role="search"] button:not(:first-child), [role="search"] [type="submit"]:not(:first-child), [role="search"] [type="reset"]:not(:first-child), [role="search"] [type="button"]:not(:first-child), [role="search"] [role="button"]:not(:first-child), [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="search"] select:not(:first-child), [role="group"] button:not(:first-child), [role="group"] [type="submit"]:not(:first-child), [role="group"] [type="reset"]:not(:first-child), [role="group"] [type="button"]:not(:first-child), [role="group"] [role="button"]:not(:first-child), [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child), [role="group"] select:not(:first-child) {
2292
1831
  margin-left: calc(var(--pico-border-width) * -1);
2293
1832
  }
2294
- [role="search"] button,
2295
- [role="search"] [type="submit"],
2296
- [role="search"] [type="reset"],
2297
- [role="search"] [type="button"],
2298
- [role="search"] [role="button"],
2299
- [role="group"] button,
2300
- [role="group"] [type="submit"],
2301
- [role="group"] [type="reset"],
2302
- [role="group"] [type="button"],
2303
- [role="group"] [role="button"] {
1833
+
1834
+ [role="search"] button, [role="search"] [type="submit"], [role="search"] [type="reset"], [role="search"] [type="button"], [role="search"] [role="button"], [role="group"] button, [role="group"] [type="submit"], [role="group"] [type="reset"], [role="group"] [type="button"], [role="group"] [role="button"] {
2304
1835
  width: auto;
2305
1836
  }
1837
+
2306
1838
  @supports selector(:has(*)) {
2307
- [role="search"]:has(
2308
- button:focus,
2309
- [type="submit"]:focus,
2310
- [type="button"]:focus,
2311
- [role="button"]:focus
2312
- ),
2313
- [role="group"]:has(
2314
- button:focus,
2315
- [type="submit"]:focus,
2316
- [type="button"]:focus,
2317
- [role="button"]:focus
2318
- ) {
1839
+ [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) {
2319
1840
  --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button);
2320
1841
  }
2321
- [role="search"]:has(
2322
- button:focus,
2323
- [type="submit"]:focus,
2324
- [type="button"]:focus,
2325
- [role="button"]:focus
2326
- )
2327
- input:not([type="checkbox"], [type="radio"]),
2328
- [role="search"]:has(
2329
- button:focus,
2330
- [type="submit"]:focus,
2331
- [type="button"]:focus,
2332
- [role="button"]:focus
2333
- )
2334
- select,
2335
- [role="group"]:has(
2336
- button:focus,
2337
- [type="submit"]:focus,
2338
- [type="button"]:focus,
2339
- [role="button"]:focus
2340
- )
2341
- input:not([type="checkbox"], [type="radio"]),
2342
- [role="group"]:has(
2343
- button:focus,
2344
- [type="submit"]:focus,
2345
- [type="button"]:focus,
2346
- [role="button"]:focus
2347
- )
2348
- select {
2349
- border-color: transparent;
2350
- }
2351
- [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus),
2352
- [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
1842
+
1843
+ [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]), [role="search"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select, [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) input:not([type="checkbox"], [type="radio"]), [role="group"]:has(button:focus, [type="submit"]:focus, [type="button"]:focus, [role="button"]:focus) select {
1844
+ border-color: #0000;
1845
+ }
1846
+
1847
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus), [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
2353
1848
  --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input);
2354
1849
  }
2355
- [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button,
2356
- [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
2357
- [type="submit"],
2358
- [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
2359
- [type="button"],
2360
- [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
2361
- [role="button"],
2362
- [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button,
2363
- [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
2364
- [type="submit"],
2365
- [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
2366
- [type="button"],
2367
- [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
2368
- [role="button"] {
1850
+
1851
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button, [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="submit"], [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="button"], [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [role="button"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button, [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="submit"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [type="button"], [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) [role="button"] {
2369
1852
  --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border);
2370
1853
  --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border);
2371
1854
  }
2372
- [role="search"] button:focus,
2373
- [role="search"] [type="submit"]:focus,
2374
- [role="search"] [type="reset"]:focus,
2375
- [role="search"] [type="button"]:focus,
2376
- [role="search"] [role="button"]:focus,
2377
- [role="group"] button:focus,
2378
- [role="group"] [type="submit"]:focus,
2379
- [role="group"] [type="reset"]:focus,
2380
- [role="group"] [type="button"]:focus,
2381
- [role="group"] [role="button"]:focus {
1855
+
1856
+ [role="search"] button:focus, [role="search"] [type="submit"]:focus, [role="search"] [type="reset"]:focus, [role="search"] [type="button"]:focus, [role="search"] [role="button"]:focus, [role="group"] button:focus, [role="group"] [type="submit"]:focus, [role="group"] [type="reset"]:focus, [role="group"] [type="button"]:focus, [role="group"] [role="button"]:focus {
2382
1857
  box-shadow: none;
2383
1858
  }
2384
1859
  }
2385
1860
 
2386
- [role="search"] > *:first-child {
1861
+ [role="search"] > :first-child {
2387
1862
  border-top-left-radius: 5rem;
2388
1863
  border-bottom-left-radius: 5rem;
2389
1864
  }
2390
- [role="search"] > *:last-child {
1865
+
1866
+ [role="search"] > :last-child {
2391
1867
  border-top-right-radius: 5rem;
2392
1868
  border-bottom-right-radius: 5rem;
2393
1869
  }
2394
- /**
2395
- * Loading ([aria-busy=true])
2396
- */
2397
- :where(:scope),
2398
- :host {
1870
+
1871
+ :where(:scope), :host {
2399
1872
  --pico-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, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E");
2400
1873
  }
2401
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
2402
- :host {
2403
- --pico-loading-spinner-opacity: 0.5;
1874
+
1875
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
1876
+ --pico-loading-spinner-opacity: .5;
2404
1877
  }
2405
1878
 
2406
- [aria-busy="true"]:not(input, select, textarea, html, form):not(
2407
- :where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])
2408
- ) {
2409
- /* :where() zeroes the specificity of the button list inside :not(), so this rule stays
2410
- * low-specificity and doesn't override the more specific button rules below */
1879
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])) {
2411
1880
  white-space: nowrap;
2412
1881
  }
2413
- [aria-busy="true"]:not(input, select, textarea, html, form)::before {
2414
- display: inline-block;
2415
- width: 1em;
2416
- height: 1em;
1882
+
1883
+ [aria-busy="true"]:not(input, select, textarea, html, form):before {
2417
1884
  background-image: var(--pico-icon-loading);
2418
- background-size: 1em auto;
2419
- background-repeat: no-repeat;
2420
1885
  content: "";
2421
- vertical-align: -0.125em;
1886
+ vertical-align: -.125em;
1887
+ background-repeat: no-repeat;
1888
+ background-size: 1em;
1889
+ width: 1em;
1890
+ height: 1em;
1891
+ display: inline-block;
2422
1892
  }
2423
- [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty)::before {
2424
- margin-inline-end: calc(var(--pico-spacing) * 0.5);
1893
+
1894
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty):before {
1895
+ margin-inline-end: calc(var(--pico-spacing) * .5);
2425
1896
  }
1897
+
2426
1898
  [aria-busy="true"]:not(input, select, textarea, html, form):empty {
2427
1899
  text-align: center;
2428
1900
  }
2429
1901
 
2430
- button[aria-busy="true"],
2431
- [type="submit"][aria-busy="true"],
2432
- [type="button"][aria-busy="true"],
2433
- [type="reset"][aria-busy="true"],
2434
- [role="button"][aria-busy="true"],
2435
- a[aria-busy="true"] {
1902
+ button[aria-busy="true"], [type="submit"][aria-busy="true"], [type="button"][aria-busy="true"], [type="reset"][aria-busy="true"], [role="button"][aria-busy="true"], a[aria-busy="true"] {
2436
1903
  pointer-events: none;
2437
1904
  }
2438
1905
 
2439
- /* Buttons keep their size: the label stays in place but hidden, the spinner sits on top */
2440
- button[aria-busy="true"]:not(:empty), [type="submit"][aria-busy="true"]:not(:empty), [type="button"][aria-busy="true"]:not(:empty), [type="reset"][aria-busy="true"]:not(:empty), [role="button"][aria-busy="true"]:not(:empty) {
1906
+ button, [type="submit"], [type="button"], [type="reset"], [role="button"] {
1907
+ &[aria-busy="true"]:not(:empty) {
1908
+ color: #0000;
2441
1909
  position: relative;
2442
- color: transparent;
2443
- }
2444
- button[aria-busy="true"]:not(:empty) > *, [type="submit"][aria-busy="true"]:not(:empty) > *, [type="button"][aria-busy="true"]:not(:empty) > *, [type="reset"][aria-busy="true"]:not(:empty) > *, [role="button"][aria-busy="true"]:not(:empty) > * {
1910
+
1911
+ & > * {
2445
1912
  opacity: 0;
2446
1913
  }
2447
- button[aria-busy="true"]:not(:empty)::before, [type="submit"][aria-busy="true"]:not(:empty)::before, [type="button"][aria-busy="true"]:not(:empty)::before, [type="reset"][aria-busy="true"]:not(:empty)::before, [role="button"][aria-busy="true"]:not(:empty)::before {
2448
- position: absolute;
1914
+
1915
+ &:before {
2449
1916
  margin: auto;
1917
+ position: absolute;
2450
1918
  inset: 0;
2451
1919
  }
2452
- /**
2453
- * Modal (<dialog>)
2454
- */
2455
- :where(:scope),
2456
- :host {
2457
- --pico-modal-overlay-backdrop-filter: blur(0.375rem);
1920
+ }
1921
+ }
1922
+
1923
+ :where(:scope), :host {
1924
+ --pico-modal-overlay-backdrop-filter: blur(.375rem);
2458
1925
  --pico-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, 145, 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");
2459
1926
  }
2460
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
2461
- :host {
2462
- --pico-modal-overlay-background-color: light-dark(
2463
- rgba(232, 234, 237, 0.75),
2464
- rgba(7.5, 8.5, 10, 0.75)
2465
- );
1927
+
1928
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
1929
+ --pico-modal-overlay-background-color: light-dark(#e8eaedbf, #08090abf);
2466
1930
  }
2467
1931
 
2468
- :scope,
2469
- :host {
1932
+ :scope, :host {
2470
1933
  --pico-scrollbar-width: 0px;
2471
1934
  }
2472
1935
 
2473
1936
  dialog {
2474
- display: flex;
2475
1937
  z-index: 999;
2476
- position: fixed;
2477
- top: 0;
2478
- right: 0;
2479
- bottom: 0;
2480
- left: 0;
2481
- align-items: center;
2482
- justify-content: center;
2483
1938
  width: inherit;
2484
1939
  min-width: 100%;
2485
1940
  height: inherit;
2486
1941
  min-height: 100%;
2487
- padding: 0;
2488
- border: 0;
2489
1942
  backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
2490
1943
  background-color: var(--pico-modal-overlay-background-color);
2491
1944
  color: var(--pico-color);
1945
+ border: 0;
1946
+ justify-content: center;
1947
+ align-items: center;
1948
+ padding: 0;
1949
+ display: flex;
1950
+ position: fixed;
1951
+ inset: 0;
2492
1952
  }
1953
+
2493
1954
  dialog > article {
2494
1955
  width: 100%;
2495
1956
  max-height: calc(100vh - var(--pico-spacing) * 2);
2496
1957
  margin: var(--pico-spacing);
2497
1958
  overflow: auto;
2498
1959
  }
2499
- @media (min-width: 576px) {
1960
+
1961
+ @media (width >= 576px) {
2500
1962
  dialog > article {
2501
1963
  max-width: 510px;
2502
1964
  }
2503
1965
  }
2504
- @media (min-width: 768px) {
1966
+
1967
+ @media (width >= 768px) {
2505
1968
  dialog > article {
2506
1969
  max-width: 700px;
2507
1970
  }
2508
1971
  }
1972
+
2509
1973
  dialog > article > header > * {
2510
1974
  margin-bottom: 0;
2511
1975
  }
2512
- dialog > article > header .close,
2513
- dialog > article > header :is(a, button)[rel="prev"] {
1976
+
1977
+ dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
2514
1978
  margin: 0;
2515
1979
  margin-left: var(--pico-spacing);
2516
- padding: 0;
2517
1980
  float: right;
1981
+ padding: 0;
2518
1982
  }
1983
+
2519
1984
  dialog > article > footer {
2520
1985
  text-align: end;
2521
1986
  }
2522
- dialog > article > footer button,
2523
- dialog > article > footer [role="button"] {
1987
+
1988
+ dialog > article > footer button, dialog > article > footer [role="button"] {
2524
1989
  margin-bottom: 0;
2525
1990
  }
2526
- dialog > article > footer button:not(:first-of-type),
2527
- dialog > article > footer [role="button"]:not(:first-of-type) {
2528
- margin-left: calc(var(--pico-spacing) * 0.5);
1991
+
1992
+ dialog > article > footer button:not(:first-of-type), dialog > article > footer [role="button"]:not(:first-of-type) {
1993
+ margin-left: calc(var(--pico-spacing) * .5);
2529
1994
  }
2530
- dialog > article .close,
2531
- dialog > article :is(a, button)[rel="prev"] {
2532
- display: block;
1995
+
1996
+ dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
2533
1997
  width: 1rem;
2534
1998
  height: 1rem;
2535
1999
  margin-top: calc(var(--pico-spacing) * -1);
2536
2000
  margin-bottom: var(--pico-spacing);
2537
- margin-left: auto;
2538
- border: none;
2539
2001
  background-image: var(--pico-icon-close);
2002
+ opacity: .5;
2003
+ transition: opacity var(--pico-transition);
2004
+ background-color: #0000;
2540
2005
  background-position: center;
2541
- background-size: auto 1rem;
2542
2006
  background-repeat: no-repeat;
2543
- background-color: transparent;
2544
- opacity: 0.5;
2545
- transition: opacity var(--pico-transition);
2007
+ background-size: auto 1rem;
2008
+ border: none;
2009
+ margin-left: auto;
2010
+ display: block;
2546
2011
  }
2547
- dialog > article .close:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus),
2548
- dialog
2549
- > article
2550
- :is(a, button)[rel="prev"]:is(
2551
- [aria-current]:not([aria-current="false"]),
2552
- :hover,
2553
- :active,
2554
- :focus
2555
- ) {
2012
+
2013
+ dialog > article .close:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), dialog > article :is(a, button)[rel="prev"]:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
2556
2014
  opacity: 1;
2557
2015
  }
2558
- dialog:not([open]),
2559
- dialog[open="false"] {
2016
+
2017
+ dialog:not([open]), dialog[open="false"] {
2560
2018
  display: none;
2561
2019
  }
2562
2020
 
2563
2021
  .modal-is-open {
2564
2022
  padding-right: var(--pico-scrollbar-width, 0px);
2565
- overflow: hidden;
2566
2023
  pointer-events: none;
2567
2024
  touch-action: none;
2025
+ overflow: hidden;
2568
2026
  }
2027
+
2569
2028
  .modal-is-open dialog {
2570
2029
  pointer-events: auto;
2571
2030
  touch-action: auto;
2572
2031
  }
2573
2032
 
2574
- :where(.modal-is-opening, .modal-is-closing) dialog,
2575
- :where(.modal-is-opening, .modal-is-closing) dialog > article {
2576
- animation-duration: 0.2s;
2033
+ :where(.modal-is-opening, .modal-is-closing) dialog, :where(.modal-is-opening, .modal-is-closing) dialog > article {
2034
+ animation-duration: .2s;
2577
2035
  animation-timing-function: ease-in-out;
2578
2036
  animation-fill-mode: both;
2579
2037
  }
2038
+
2580
2039
  :where(.modal-is-opening, .modal-is-closing) dialog {
2581
- animation-duration: 0.8s;
2582
2040
  animation-name: modal-overlay;
2041
+ animation-duration: .8s;
2583
2042
  }
2043
+
2584
2044
  :where(.modal-is-opening, .modal-is-closing) dialog > article {
2585
- animation-delay: 0.2s;
2586
2045
  animation-name: modal;
2046
+ animation-delay: .2s;
2587
2047
  }
2588
2048
 
2589
- .modal-is-closing dialog,
2590
- .modal-is-closing dialog > article {
2591
- animation-delay: 0s;
2049
+ .modal-is-closing dialog, .modal-is-closing dialog > article {
2592
2050
  animation-direction: reverse;
2051
+ animation-delay: 0s;
2593
2052
  }
2594
2053
 
2595
2054
  @keyframes modal-overlay {
2596
2055
  from {
2597
2056
  backdrop-filter: none;
2598
- background-color: transparent;
2057
+ background-color: #0000;
2599
2058
  }
2600
2059
  }
2060
+
2601
2061
  @keyframes modal {
2602
2062
  from {
2603
- transform: translateY(-100%);
2604
2063
  opacity: 0;
2064
+ transform: translateY(-100%);
2605
2065
  }
2606
2066
  }
2607
- /**
2608
- * Nav
2609
- */
2610
- :where(:scope),
2611
- :host {
2612
- --pico-nav-element-spacing-horizontal: 0.5rem;
2067
+
2068
+ :where(:scope), :host {
2069
+ --pico-nav-element-spacing-horizontal: .5rem;
2613
2070
  --pico-nav-breadcrumb-divider: ">";
2614
2071
  }
2615
2072
 
2616
- :where(nav li)::before {
2073
+ :where(nav li):before {
2617
2074
  float: left;
2618
2075
  content: "​";
2619
2076
  }
2620
2077
 
2621
- nav,
2622
- nav ul {
2078
+ nav, nav ul {
2623
2079
  display: flex;
2624
2080
  }
2625
2081
 
@@ -2627,41 +2083,41 @@ nav {
2627
2083
  justify-content: space-between;
2628
2084
  overflow: visible;
2629
2085
  }
2630
- nav ol,
2631
- nav ul {
2086
+
2087
+ nav ol, nav ul {
2632
2088
  align-items: center;
2633
2089
  margin-bottom: 0;
2634
2090
  padding: 0;
2635
2091
  list-style: none;
2636
2092
  }
2637
- nav ol:first-of-type,
2638
- nav ul:first-of-type {
2093
+
2094
+ nav ol:first-of-type, nav ul:first-of-type {
2639
2095
  margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
2640
2096
  }
2641
- nav ol:last-of-type,
2642
- nav ul:last-of-type {
2097
+
2098
+ nav ol:last-of-type, nav ul:last-of-type {
2643
2099
  margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
2644
2100
  }
2101
+
2645
2102
  nav li {
2646
- display: inline-block;
2647
- margin: 0;
2648
2103
  padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);
2104
+ margin: 0;
2105
+ display: inline-block;
2649
2106
  }
2107
+
2650
2108
  nav li :where(a, [role="link"]) {
2651
- display: inline-block;
2652
2109
  margin: calc(var(--pico-nav-link-spacing-vertical) * -1)
2653
2110
  calc(var(--pico-nav-link-spacing-horizontal) * -1);
2654
2111
  padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);
2655
2112
  border-radius: var(--pico-border-radius);
2113
+ display: inline-block;
2656
2114
  }
2115
+
2657
2116
  nav li :where(a, [role="link"]):not(:hover) {
2658
2117
  text-decoration: none;
2659
2118
  }
2660
- nav li button,
2661
- nav li [role="button"],
2662
- nav li [type="button"],
2663
- nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]),
2664
- nav li select {
2119
+
2120
+ 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 {
2665
2121
  height: auto;
2666
2122
  margin-right: inherit;
2667
2123
  margin-bottom: 0;
@@ -2669,116 +2125,115 @@ nav li select {
2669
2125
  padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
2670
2126
  var(--pico-nav-link-spacing-horizontal);
2671
2127
  }
2128
+
2672
2129
  nav[aria-label="breadcrumb"] {
2673
- align-items: center;
2674
2130
  justify-content: start;
2131
+ align-items: center;
2675
2132
  }
2133
+
2676
2134
  nav[aria-label="breadcrumb"] ul li:not(:first-child) {
2677
2135
  margin-inline-start: var(--pico-nav-link-spacing-horizontal);
2678
2136
  }
2137
+
2679
2138
  nav[aria-label="breadcrumb"] ul li a {
2680
2139
  margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0;
2681
2140
  margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1);
2682
2141
  }
2683
- nav[aria-label="breadcrumb"] ul li:not(:last-child)::after {
2684
- display: inline-block;
2685
- position: absolute;
2142
+
2143
+ nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
2686
2144
  width: calc(var(--pico-nav-link-spacing-horizontal) * 4);
2687
2145
  margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1);
2688
2146
  content: var(--pico-nav-breadcrumb-divider);
2689
2147
  color: var(--pico-muted-color);
2690
2148
  text-align: center;
2691
- text-decoration: none;
2692
2149
  white-space: nowrap;
2150
+ text-decoration: none;
2151
+ display: inline-block;
2152
+ position: absolute;
2693
2153
  }
2154
+
2694
2155
  nav[aria-label="breadcrumb"] a[aria-current]:not([aria-current="false"]) {
2695
- background-color: transparent;
2696
2156
  color: inherit;
2697
- text-decoration: none;
2698
2157
  pointer-events: none;
2158
+ background-color: #0000;
2159
+ text-decoration: none;
2699
2160
  }
2700
2161
 
2701
- aside nav,
2702
- aside ol,
2703
- aside ul,
2704
- aside li {
2162
+ aside nav, aside ol, aside ul, aside li {
2705
2163
  display: block;
2706
2164
  }
2165
+
2707
2166
  aside li {
2708
- padding: calc(var(--pico-nav-element-spacing-vertical) * 0.5)
2167
+ padding: calc(var(--pico-nav-element-spacing-vertical) * .5)
2709
2168
  var(--pico-nav-element-spacing-horizontal);
2710
2169
  }
2170
+
2711
2171
  aside li a {
2712
2172
  display: block;
2713
2173
  }
2174
+
2714
2175
  aside li [role="button"] {
2715
2176
  margin: inherit;
2716
2177
  }
2717
2178
 
2718
- [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child)::after {
2179
+ [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
2719
2180
  content: "\\";
2720
2181
  }
2721
2182
 
2722
- /**
2723
- * Progress
2724
- */
2725
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
2726
- :host {
2183
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2727
2184
  --pico-progress-background-color: light-dark(#dfe3eb, #202632);
2728
2185
  --pico-progress-color: var(--pico-primary-background);
2729
2186
  }
2730
2187
 
2731
2188
  progress {
2732
- display: inline-block;
2733
2189
  vertical-align: baseline;
2734
- }
2735
-
2736
- progress {
2737
2190
  -webkit-appearance: none;
2738
2191
  -moz-appearance: none;
2739
- display: inline-block;
2740
2192
  appearance: none;
2741
2193
  width: 100%;
2742
- height: 0.5rem;
2743
- margin-bottom: calc(var(--pico-spacing) * 0.5);
2744
- overflow: hidden;
2745
- border: 0;
2194
+ height: .5rem;
2195
+ margin-bottom: calc(var(--pico-spacing) * .5);
2746
2196
  border-radius: var(--pico-border-radius);
2747
2197
  background-color: var(--pico-progress-background-color);
2748
2198
  color: var(--pico-progress-color);
2199
+ border: 0;
2200
+ display: inline-block;
2201
+ overflow: hidden;
2749
2202
  }
2203
+
2750
2204
  progress::-webkit-progress-bar {
2751
2205
  border-radius: var(--pico-border-radius);
2752
2206
  background: none;
2753
2207
  }
2208
+
2754
2209
  progress[value]::-webkit-progress-value {
2755
2210
  background-color: var(--pico-progress-color);
2756
2211
  -webkit-transition: inline-size var(--pico-transition);
2757
2212
  transition: inline-size var(--pico-transition);
2758
2213
  }
2214
+
2759
2215
  progress::-moz-progress-bar {
2760
2216
  background-color: var(--pico-progress-color);
2761
2217
  }
2218
+
2762
2219
  @media (prefers-reduced-motion: no-preference) {
2763
2220
  progress:indeterminate {
2764
2221
  background: var(--pico-progress-background-color)
2765
- linear-gradient(
2766
- to right,
2222
+ linear-gradient(to right,
2767
2223
  var(--pico-progress-color) 30%,
2768
- var(--pico-progress-background-color) 30%
2769
- )
2224
+ var(--pico-progress-background-color) 30%)
2770
2225
  top left/150% 150% no-repeat;
2771
- animation: progress-indeterminate 1s linear infinite;
2226
+ animation: 1s linear infinite progress-indeterminate;
2772
2227
  }
2228
+
2773
2229
  progress:indeterminate[value]::-webkit-progress-value {
2774
- background-color: transparent;
2230
+ background-color: #0000;
2775
2231
  }
2232
+
2776
2233
  progress:indeterminate::-moz-progress-bar {
2777
- background-color: transparent;
2234
+ background-color: #0000;
2778
2235
  }
2779
- }
2780
2236
 
2781
- @media (prefers-reduced-motion: no-preference) {
2782
2237
  [dir="rtl"] progress:indeterminate {
2783
2238
  animation-direction: reverse;
2784
2239
  }
@@ -2788,16 +2243,13 @@ progress::-moz-progress-bar {
2788
2243
  0% {
2789
2244
  background-position: 200% 0;
2790
2245
  }
2246
+
2791
2247
  100% {
2792
2248
  background-position: -200% 0;
2793
2249
  }
2794
2250
  }
2795
2251
 
2796
- /**
2797
- * Tooltip ([data-tooltip])
2798
- */
2799
- :where(:scope, [data-theme="light"], [data-theme="dark"]),
2800
- :host {
2252
+ :where(:scope, [data-theme="light"], [data-theme="dark"]), :host {
2801
2253
  --pico-tooltip-background-color: var(--pico-contrast-background);
2802
2254
  --pico-tooltip-color: var(--pico-contrast-inverse);
2803
2255
  }
@@ -2805,176 +2257,162 @@ progress::-moz-progress-bar {
2805
2257
  [data-tooltip] {
2806
2258
  position: relative;
2807
2259
  }
2260
+
2808
2261
  [data-tooltip]:not(a, button, input, [role="button"]) {
2262
+ cursor: help;
2809
2263
  border-bottom: 1px dotted;
2810
2264
  text-decoration: none;
2811
- cursor: help;
2812
2265
  }
2813
- [data-tooltip][data-placement="top"]::before,
2814
- [data-tooltip][data-placement="top"]::after,
2815
- [data-tooltip]::before,
2816
- [data-tooltip]::after {
2817
- display: block;
2266
+
2267
+ [data-tooltip][data-placement="top"]:before, [data-tooltip][data-placement="top"]:after, [data-tooltip]:before, [data-tooltip]:after {
2818
2268
  z-index: 99;
2819
- position: absolute;
2820
- bottom: 100%;
2821
- left: 50%;
2822
- padding: 0.25rem 0.5rem;
2823
- overflow: hidden;
2824
- transform: translate(-50%, -0.25rem);
2825
2269
  border-radius: var(--pico-border-radius);
2826
2270
  background: var(--pico-tooltip-background-color);
2827
2271
  content: attr(data-tooltip);
2828
2272
  color: var(--pico-tooltip-color);
2829
2273
  font-style: normal;
2830
2274
  font-weight: var(--pico-font-weight);
2831
- font-size: 0.875rem;
2832
- text-decoration: none;
2833
2275
  text-overflow: ellipsis;
2834
2276
  white-space: nowrap;
2835
2277
  opacity: 0;
2836
2278
  pointer-events: none;
2279
+ padding: .25rem .5rem;
2280
+ font-size: .875rem;
2281
+ text-decoration: none;
2282
+ display: block;
2283
+ position: absolute;
2284
+ bottom: 100%;
2285
+ left: 50%;
2286
+ overflow: hidden;
2287
+ transform: translate(-50%, -.25rem);
2837
2288
  }
2838
- [data-tooltip][data-placement="top"]::after,
2839
- [data-tooltip]::after {
2840
- padding: 0;
2841
- transform: translate(-50%, 0rem);
2842
- border-top: 0.3rem solid;
2843
- border-right: 0.3rem solid transparent;
2844
- border-left: 0.3rem solid transparent;
2845
- border-radius: 0;
2846
- background-color: transparent;
2289
+
2290
+ [data-tooltip][data-placement="top"]:after, [data-tooltip]:after {
2847
2291
  content: "";
2848
2292
  color: var(--pico-tooltip-background-color);
2293
+ background-color: #0000;
2294
+ border-top: .3rem solid;
2295
+ border-left: .3rem solid #0000;
2296
+ border-right: .3rem solid #0000;
2297
+ border-radius: 0;
2298
+ padding: 0;
2299
+ transform: translate(-50%);
2849
2300
  }
2850
- [data-tooltip][data-placement="bottom"]::before,
2851
- [data-tooltip][data-placement="bottom"]::after {
2301
+
2302
+ [data-tooltip][data-placement="bottom"]:before, [data-tooltip][data-placement="bottom"]:after {
2852
2303
  top: 100%;
2853
2304
  bottom: auto;
2854
- transform: translate(-50%, 0.25rem);
2305
+ transform: translate(-50%, .25rem);
2855
2306
  }
2307
+
2856
2308
  [data-tooltip][data-placement="bottom"]:after {
2857
- transform: translate(-50%, -0.3rem);
2858
- border: 0.3rem solid transparent;
2859
- border-bottom: 0.3rem solid;
2860
- }
2861
- [data-tooltip][data-placement="left"]::before,
2862
- [data-tooltip][data-placement="left"]::after {
2863
- top: 50%;
2864
- right: 100%;
2865
- bottom: auto;
2866
- left: auto;
2867
- transform: translate(-0.25rem, -50%);
2309
+ border: .3rem solid #0000;
2310
+ border-bottom-color: currentColor;
2311
+ transform: translate(-50%, -.3rem);
2868
2312
  }
2313
+
2314
+ [data-tooltip][data-placement="left"]:before, [data-tooltip][data-placement="left"]:after {
2315
+ inset: 50% 100% auto auto;
2316
+ transform: translate(-.25rem, -50%);
2317
+ }
2318
+
2869
2319
  [data-tooltip][data-placement="left"]:after {
2870
- transform: translate(0.3rem, -50%);
2871
- border: 0.3rem solid transparent;
2872
- border-left: 0.3rem solid;
2873
- }
2874
- [data-tooltip][data-placement="right"]::before,
2875
- [data-tooltip][data-placement="right"]::after {
2876
- top: 50%;
2877
- right: auto;
2878
- bottom: auto;
2879
- left: 100%;
2880
- transform: translate(0.25rem, -50%);
2320
+ border: .3rem solid #0000;
2321
+ border-left-color: currentColor;
2322
+ transform: translate(.3rem, -50%);
2881
2323
  }
2324
+
2325
+ [data-tooltip][data-placement="right"]:before, [data-tooltip][data-placement="right"]:after {
2326
+ inset: 50% auto auto 100%;
2327
+ transform: translate(.25rem, -50%);
2328
+ }
2329
+
2882
2330
  [data-tooltip][data-placement="right"]:after {
2883
- transform: translate(-0.3rem, -50%);
2884
- border: 0.3rem solid transparent;
2885
- border-right: 0.3rem solid;
2886
- }
2887
- [data-tooltip]:focus::before,
2888
- [data-tooltip]:focus::after,
2889
- [data-tooltip]:hover::before,
2890
- [data-tooltip]:hover::after {
2331
+ border: .3rem solid #0000;
2332
+ border-right-color: currentColor;
2333
+ transform: translate(-.3rem, -50%);
2334
+ }
2335
+
2336
+ [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
2891
2337
  opacity: 1;
2892
2338
  }
2339
+
2893
2340
  @media (hover: hover) and (pointer: fine) {
2894
- [data-tooltip]:focus::before,
2895
- [data-tooltip]:focus::after,
2896
- [data-tooltip]:hover::before,
2897
- [data-tooltip]:hover::after {
2898
- --pico-tooltip-slide-to: translate(-50%, -0.25rem);
2899
- transform: translate(-50%, 0.75rem);
2900
- animation-duration: 0.2s;
2901
- animation-fill-mode: forwards;
2902
- animation-name: tooltip-slide;
2341
+ [data-tooltip]:focus:before, [data-tooltip]:focus:after, [data-tooltip]:hover:before, [data-tooltip]:hover:after {
2342
+ --pico-tooltip-slide-to: translate(-50%, -.25rem);
2903
2343
  opacity: 0;
2344
+ animation-name: tooltip-slide;
2345
+ animation-duration: .2s;
2346
+ animation-fill-mode: forwards;
2347
+ transform: translate(-50%, .75rem);
2904
2348
  }
2905
- [data-tooltip]:focus::after,
2906
- [data-tooltip]:hover::after {
2349
+
2350
+ [data-tooltip]:focus:after, [data-tooltip]:hover:after {
2907
2351
  --pico-tooltip-caret-slide-to: translate(-50%, 0rem);
2908
- transform: translate(-50%, -0.25rem);
2909
2352
  animation-name: tooltip-caret-slide;
2353
+ transform: translate(-50%, -.25rem);
2910
2354
  }
2911
- [data-tooltip][data-placement="bottom"]:focus::before,
2912
- [data-tooltip][data-placement="bottom"]:focus::after,
2913
- [data-tooltip][data-placement="bottom"]:hover::before,
2914
- [data-tooltip][data-placement="bottom"]:hover::after {
2915
- --pico-tooltip-slide-to: translate(-50%, 0.25rem);
2916
- transform: translate(-50%, -0.75rem);
2355
+
2356
+ [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 {
2357
+ --pico-tooltip-slide-to: translate(-50%, .25rem);
2917
2358
  animation-name: tooltip-slide;
2359
+ transform: translate(-50%, -.75rem);
2918
2360
  }
2919
- [data-tooltip][data-placement="bottom"]:focus::after,
2920
- [data-tooltip][data-placement="bottom"]:hover::after {
2921
- --pico-tooltip-caret-slide-to: translate(-50%, -0.3rem);
2922
- transform: translate(-50%, -0.5rem);
2361
+
2362
+ [data-tooltip][data-placement="bottom"]:focus:after, [data-tooltip][data-placement="bottom"]:hover:after {
2363
+ --pico-tooltip-caret-slide-to: translate(-50%, -.3rem);
2923
2364
  animation-name: tooltip-caret-slide;
2365
+ transform: translate(-50%, -.5rem);
2924
2366
  }
2925
- [data-tooltip][data-placement="left"]:focus::before,
2926
- [data-tooltip][data-placement="left"]:focus::after,
2927
- [data-tooltip][data-placement="left"]:hover::before,
2928
- [data-tooltip][data-placement="left"]:hover::after {
2929
- --pico-tooltip-slide-to: translate(-0.25rem, -50%);
2930
- transform: translate(0.75rem, -50%);
2367
+
2368
+ [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 {
2369
+ --pico-tooltip-slide-to: translate(-.25rem, -50%);
2931
2370
  animation-name: tooltip-slide;
2371
+ transform: translate(.75rem, -50%);
2932
2372
  }
2933
- [data-tooltip][data-placement="left"]:focus::after,
2934
- [data-tooltip][data-placement="left"]:hover::after {
2935
- --pico-tooltip-caret-slide-to: translate(0.3rem, -50%);
2936
- transform: translate(0.05rem, -50%);
2373
+
2374
+ [data-tooltip][data-placement="left"]:focus:after, [data-tooltip][data-placement="left"]:hover:after {
2375
+ --pico-tooltip-caret-slide-to: translate(.3rem, -50%);
2937
2376
  animation-name: tooltip-caret-slide;
2377
+ transform: translate(.05rem, -50%);
2938
2378
  }
2939
- [data-tooltip][data-placement="right"]:focus::before,
2940
- [data-tooltip][data-placement="right"]:focus::after,
2941
- [data-tooltip][data-placement="right"]:hover::before,
2942
- [data-tooltip][data-placement="right"]:hover::after {
2943
- --pico-tooltip-slide-to: translate(0.25rem, -50%);
2944
- transform: translate(-0.75rem, -50%);
2379
+
2380
+ [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 {
2381
+ --pico-tooltip-slide-to: translate(.25rem, -50%);
2945
2382
  animation-name: tooltip-slide;
2383
+ transform: translate(-.75rem, -50%);
2946
2384
  }
2947
- [data-tooltip][data-placement="right"]:focus::after,
2948
- [data-tooltip][data-placement="right"]:hover::after {
2949
- --pico-tooltip-caret-slide-to: translate(-0.3rem, -50%);
2950
- transform: translate(-0.05rem, -50%);
2385
+
2386
+ [data-tooltip][data-placement="right"]:focus:after, [data-tooltip][data-placement="right"]:hover:after {
2387
+ --pico-tooltip-caret-slide-to: translate(-.3rem, -50%);
2951
2388
  animation-name: tooltip-caret-slide;
2389
+ transform: translate(-.05rem, -50%);
2952
2390
  }
2953
2391
  }
2392
+
2954
2393
  @keyframes tooltip-slide {
2955
2394
  to {
2956
2395
  transform: var(--pico-tooltip-slide-to);
2957
2396
  opacity: 1;
2958
2397
  }
2959
2398
  }
2399
+
2960
2400
  @keyframes tooltip-caret-slide {
2961
2401
  50% {
2962
2402
  opacity: 0;
2963
2403
  }
2404
+
2964
2405
  to {
2965
2406
  transform: var(--pico-tooltip-caret-slide-to);
2966
2407
  opacity: 1;
2967
2408
  }
2968
2409
  }
2969
- /**
2970
- * Accessibility & User interaction
2971
- */
2410
+
2972
2411
  [aria-controls] {
2973
2412
  cursor: pointer;
2974
2413
  }
2975
2414
 
2976
- [aria-disabled="true"],
2977
- [disabled] {
2415
+ [aria-disabled="true"], [disabled] {
2978
2416
  cursor: not-allowed;
2979
2417
  }
2980
2418
 
@@ -2982,578 +2420,277 @@ progress::-moz-progress-bar {
2982
2420
  direction: rtl;
2983
2421
  }
2984
2422
 
2985
- /**
2986
- * Reduce Motion Features
2987
- */
2988
2423
  @media (prefers-reduced-motion: reduce) {
2989
- *:not([aria-busy="true"]):not(.unreduce-motion),
2990
- :not([aria-busy="true"])::before,
2991
- :not([aria-busy="true"])::after {
2424
+ :not([aria-busy="true"]):not(.unreduce-motion), :not([aria-busy="true"]):before, :not([aria-busy="true"]):after {
2992
2425
  background-attachment: initial !important;
2993
- animation-duration: 1ms !important;
2994
- animation-delay: -1ms !important;
2995
- animation-iteration-count: 1 !important;
2996
2426
  scroll-behavior: auto !important;
2997
- transition-delay: 0s !important;
2998
2427
  transition-duration: 0s !important;
2428
+ transition-delay: 0s !important;
2429
+ animation-duration: 1ms !important;
2430
+ animation-iteration-count: 1 !important;
2431
+ animation-delay: -1ms !important;
2999
2432
  }
3000
2433
  }
3001
- /*!
3002
- * Blades CSS standalone kit v3 🥷
3003
- * Copyright 2026 (https://blades.ninja/css/standalone/)
3004
- * Licensed under MIT
3005
- */
3006
- /*\3c !--section:code-->```css */
3007
2434
 
3008
- /* Follows https://github.com/picocss/pico/blob/main/scss/_index.scss */
3009
-
3010
- :scope,
3011
- :host {
3012
- /**
3013
- * Design Tokens !!! NAMING NOT FINALIZED YET !!!
3014
- * `--in-pico: *` props below are for reference only (not to be used)
3015
- */
2435
+ :scope, :host {
3016
2436
  --blades-token-primary: var(--pico-primary, dodgerblue);
3017
- --in-pico: #01aaff;
3018
- --blades-token-secondary: var(--pico-secondary, lightslategray);
3019
2437
  --in-pico: #969eaf;
3020
-
3021
- /**
3022
- * Inherited Variables
3023
- */
3024
- --blades-timeline-border-color: color-mix(
3025
- in srgb,
2438
+ --blades-token-secondary: var(--pico-secondary, lightslategray);
2439
+ --blades-timeline-border-color: color-mix(in srgb,
3026
2440
  var(--blades-token-secondary) 50%,
3027
- transparent
3028
- );
2441
+ transparent);
3029
2442
  }
3030
2443
 
3031
- /* Layout */
3032
-
3033
- /*\3c !--section:docs-->
3034
-
3035
- `.columns` automatically creates columns with at least 30 characters each:
3036
-
3037
- <article class="columns">
3038
- <p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p>
3039
- </article>
3040
-
3041
- The smaller the font size, the more columns will be created:
3042
-
3043
- <article class="columns" style="font-size: 65%">
3044
- <p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p>
3045
- </article>
3046
-
3047
- Useful for tables of contents and long lists.
3048
-
3049
- \3c !--section:code-->
3050
- ```css */
3051
2444
  .columns {
3052
- -moz-columns: 25ch auto;
3053
- columns: 25ch auto; /* common container 65ch / 25ch => 2 columns max, with a buffer for list paddings */
3054
- }
3055
- /* Avoid breaking inside elements, such as nested lists */
3056
- .columns > * {
3057
- -moz-column-break-inside: avoid;
2445
+ columns: 25ch auto;
2446
+
2447
+ & > * {
3058
2448
  break-inside: avoid;
3059
2449
  }
3060
- /* Content */
3061
- /*\3c !--section:docs-->
3062
-
3063
- The `<pre><code>` blocks are Prism-compatible and support captions via `data-caption="..."` attribute:
3064
-
3065
- ```treeview {data-caption="Blades CSS ships:"}
3066
- /css/
3067
- ├── blades.css (Pico CSS successor)
3068
- ├── blades.standalone.css (framework-agnostic)
3069
- ├── ninja.css (experimental add-ons)
3070
- └── pico.css (underlying fork)
3071
- ```
2450
+ }
3072
2451
 
3073
- \3c !--section:code-->
3074
- ```css */
3075
- @media (width < 768px) {
3076
2452
  pre {
3077
- border-radius: 0
3078
- }
2453
+ @media (width < 768px) {
2454
+ border-radius: 0;
3079
2455
  }
2456
+ }
3080
2457
 
3081
- /* Code block caption via data-attr (to display filename, etc.) */
3082
-
3083
- code[data-caption]::before {
3084
- display: block;
3085
- margin-bottom: 1rem;
2458
+ code {
2459
+ &[data-caption] {
2460
+ &:before {
3086
2461
  content: attr(data-caption);
2462
+ opacity: .5;
2463
+ margin-bottom: 1rem;
3087
2464
  font-style: italic;
3088
- opacity: 50%;
2465
+ display: block;
3089
2466
  }
2467
+ }
2468
+ }
3090
2469
 
3091
- /* Forms */
3092
-
3093
- /*!
3094
- * Float Label CSS v2 by Blades CSS 🥷🏷️
3095
- * Copyright 2016–2026 (https://blades.ninja/css/float-label/)
3096
- * Licensed under MIT
3097
- */
3098
- /*\3c !--section:docs-->
3099
-
3100
- First, we target either:
3101
- 1. `<label>` which `:has` inner form inputs (classless approach)
3102
- 2. or explicit `.has-float-label` class (explicit approach)
3103
-
3104
- ```css */
3105
- label:has(> span):has(
3106
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3107
- textarea,
3108
- select
3109
- ),
3110
- .has-float-label {
2470
+ label:has( > span):has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select), .has-float-label {
3111
2471
  display: block;
3112
2472
  position: relative;
3113
- /*```
3114
- Finally, we detect if placeholder is shown, but not in focus. That means we can safely hide it, and enlarge the float label instead:
3115
- ```css */
3116
- }
3117
- /*```
3118
- Then, we define the default/fallback state (when the float label should be minimized):
3119
- ```css */
3120
- label:has(> span):has(
3121
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3122
- textarea,
3123
- select
3124
- ) > span,
3125
- label:has(> span):has(
3126
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3127
- textarea,
3128
- select
3129
- ) label,
3130
- .has-float-label > span,
3131
- .has-float-label label {
2473
+
2474
+ & > span, & label {
2475
+ cursor: text;
2476
+ font-size: 75%;
3132
2477
  position: absolute;
3133
2478
  top: 0;
3134
2479
  left: 0;
3135
- font-size: 75%;
3136
- cursor: text;
3137
- }
3138
- label:has(> span):has(
3139
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3140
- textarea,
3141
- select
3142
- ) *:placeholder-shown:not(:focus)::-moz-placeholder, .has-float-label *:placeholder-shown:not(:focus)::-moz-placeholder {
3143
- opacity: 0;
3144
- }
3145
- label:has(> span):has(
3146
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3147
- textarea,
3148
- select
3149
- ) *:-moz-placeholder:not(:focus)::placeholder, .has-float-label *:-moz-placeholder:not(:focus)::placeholder {
3150
- opacity: 0;
3151
2480
  }
3152
- label:has(> span):has(
3153
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3154
- textarea,
3155
- select
3156
- ) *:placeholder-shown:not(:focus)::placeholder, .has-float-label *:placeholder-shown:not(:focus)::placeholder {
2481
+
2482
+ & :placeholder-shown:not(:focus)::placeholder {
3157
2483
  opacity: 0;
3158
2484
  }
3159
- label:has(> span):has(
3160
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3161
- textarea,
3162
- select
3163
- ):has(*:-moz-placeholder:not(:focus)) > span, label:has(> span):has(
3164
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3165
- textarea,
3166
- select
3167
- ):has(*:-moz-placeholder:not(:focus)) label, .has-float-label:has(*:-moz-placeholder:not(:focus)) > span, .has-float-label:has(*:-moz-placeholder:not(:focus)) label {
3168
- font-size: inherit;
3169
- opacity: 50%;
3170
- }
3171
- label:has(> span):has(
3172
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3173
- textarea,
3174
- select
3175
- ):has(*:placeholder-shown:not(:focus)) > span,
3176
- label:has(> span):has(
3177
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3178
- textarea,
3179
- select
3180
- ):has(*:placeholder-shown:not(:focus)) label,
3181
- .has-float-label:has(*:placeholder-shown:not(:focus)) > span,
3182
- .has-float-label:has(*:placeholder-shown:not(:focus)) label {
2485
+
2486
+ &:has(:placeholder-shown:not(:focus)) {
2487
+ & > span, & label {
3183
2488
  font-size: inherit;
3184
- opacity: 50%;
3185
- }
3186
- /*```
3187
-
3188
- The `:has(*:placeholder-shown:not(:focus))` trick allows this input state information to *propagate* to the parent level. This enables modern CSS to target inner float label (`<span>` or `<label>`) regardless of its position relative to the input field.
3189
-
3190
- Historically, this was not possible: the float label had to be placed after the input field to be targeted using the `input:focus + label` selector.
3191
-
3192
- */
3193
- label:has(> span):has(
3194
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3195
- textarea,
3196
- select
3197
- ),
3198
- .has-float-label {
3199
-
3200
- /* Enlarged state */
3201
- }
3202
- /* Default/fallback state */
3203
- label:has(> span):has(
3204
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3205
- textarea,
3206
- select
3207
- ) > span,
3208
- label:has(> span):has(
3209
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3210
- textarea,
3211
- select
3212
- ) label,
3213
- .has-float-label > span,
3214
- .has-float-label label {
3215
- padding-inline-start: calc(1rem + 1px); /* match Pico's padding + border */
3216
- padding-block-start: 0.25rem;
3217
- opacity: 75%;
3218
- transition: all 0.25s;
3219
- }
3220
- label:has(> span):has(
3221
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3222
- textarea,
3223
- select
3224
- ) input,
3225
- label:has(> span):has(
3226
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3227
- textarea,
3228
- select
3229
- ) textarea,
3230
- label:has(> span):has(
3231
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3232
- textarea,
3233
- select
3234
- ) select,
3235
- .has-float-label input,
3236
- .has-float-label textarea,
3237
- .has-float-label select {
3238
- margin-block-start: 0; /* reset Pico */
3239
- padding-inline-start: 1rem; /* match Pico */
3240
- padding-block: 1.125rem 0.375rem; /* match Pico's total: 2 x 0.75rem = 1.5rem */
3241
- }
3242
- label:has(> span):has(
3243
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3244
- textarea,
3245
- select
3246
- ) input::-moz-placeholder, label:has(> span):has(
3247
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3248
- textarea,
3249
- select
3250
- ) textarea::-moz-placeholder, label:has(> span):has(
3251
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3252
- textarea,
3253
- select
3254
- ) select::-moz-placeholder, .has-float-label input::-moz-placeholder, .has-float-label textarea::-moz-placeholder, .has-float-label select::-moz-placeholder {
3255
- opacity: 100%;
3256
- -moz-transition: all 0.25s;
3257
- transition: all 0.25s;
3258
- }
3259
- label:has(> span):has(
3260
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3261
- textarea,
3262
- select
3263
- ) input::placeholder, label:has(> span):has(
3264
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3265
- textarea,
3266
- select
3267
- ) textarea::placeholder, label:has(> span):has(
3268
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3269
- textarea,
3270
- select
3271
- ) select::placeholder, .has-float-label input::placeholder, .has-float-label textarea::placeholder, .has-float-label select::placeholder {
3272
- opacity: 100%;
3273
- transition: all 0.25s;
3274
- }
3275
- label:has(> span):has(
3276
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3277
- textarea,
3278
- select
3279
- ):has(*:-moz-placeholder:not(:focus)) > span, label:has(> span):has(
3280
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3281
- textarea,
3282
- select
3283
- ):has(*:-moz-placeholder:not(:focus)) label, .has-float-label:has(*:-moz-placeholder:not(:focus)) > span, .has-float-label:has(*:-moz-placeholder:not(:focus)) label {
3284
- padding-block: 0.75rem; /* match Pico */
3285
- }
3286
- label:has(> span):has(
3287
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3288
- textarea,
3289
- select
3290
- ):has(*:placeholder-shown:not(:focus)) > span,
3291
- label:has(> span):has(
3292
- input:not([type="checkbox"], [type="radio"], [type="range"]),
3293
- textarea,
3294
- select
3295
- ):has(*:placeholder-shown:not(:focus)) label,
3296
- .has-float-label:has(*:placeholder-shown:not(:focus)) > span,
3297
- .has-float-label:has(*:placeholder-shown:not(:focus)) label {
3298
- padding-block: 0.75rem; /* match Pico */
2489
+ opacity: .5;
3299
2490
  }
3300
- /* Components */
3301
- /*\3c !--section:docs-->
2491
+ }
2492
+ }
2493
+
2494
+ label:has( > span):has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select), .has-float-label {
2495
+ & > span, & label {
2496
+ opacity: .75;
2497
+ padding-block-start: .25rem;
2498
+ padding-inline-start: calc(1rem + 1px);
2499
+ transition: all .25s;
2500
+ }
3302
2501
 
3303
- A `<dialog>` opened with `dialog.showModal()` fades in and its `<article>` zooms in, without JS classes.
3304
- Pico's modal JS (`.modal-is-open`, `.modal-is-opening`, `.modal-is-closing`) still works on top of it.
2502
+ & input, & textarea, & select {
2503
+ margin-block-start: 0;
2504
+ padding-block: 1.125rem .375rem;
2505
+ padding-inline-start: 1rem;
3305
2506
 
3306
- - `dialog.close()` closes it at once, as before.
3307
- - `<dialog open>` in markup and non-modal `dialog.show()` aren't animated.
3308
- - Browsers without `@starting-style`, and reduced motion, open it at once.
2507
+ &::placeholder {
2508
+ opacity: 1;
2509
+ transition: all .25s;
2510
+ }
2511
+ }
2512
+
2513
+ &:has(:placeholder-shown:not(:focus)) {
2514
+ & > span, & label {
2515
+ padding-block: .75rem;
2516
+ }
2517
+ }
2518
+ }
3309
2519
 
3310
- \3c !--section:code-->```css */
3311
2520
  dialog:modal {
3312
2521
  transition: opacity var(--pico-transition);
3313
- }
3314
- dialog:modal > article {
2522
+
2523
+ & > article {
3315
2524
  transition: transform var(--pico-transition);
3316
2525
  }
2526
+ }
2527
+
3317
2528
  @starting-style {
3318
2529
  dialog:modal {
3319
2530
  opacity: 0;
3320
- }
3321
2531
 
3322
- dialog:modal > article {
3323
- transform: scale(0.96);
2532
+ & > article {
2533
+ transform: scale(.96);
3324
2534
  }
2535
+ }
3325
2536
  }
3326
- /* Extends https://github.com/picocss/pico/blob/main/scss/content/_link.scss
3327
- \3c !--section:code-->
3328
- ```css */
3329
- /* Use inline flex only if link contains an icon */
3330
- a:not(.does-not-exist):has(> i) {
3331
- display: inline-flex;
3332
- overflow-y: clip; /* to work in pair with text-underline-offset in Safari */
3333
- gap: 0.375ch; /* =3/8 */
2537
+
2538
+ a:not(.does-not-exist) {
2539
+ &:has( > i) {
3334
2540
  text-wrap: balance;
2541
+ gap: .375ch;
2542
+ display: inline-flex;
2543
+ overflow-y: clip;
3335
2544
  }
3336
- a:not(.does-not-exist) > i {
3337
- float: left; /* ✅ Chrome ❌ Safari */
2545
+
2546
+ & > i {
2547
+ float: left;
2548
+ text-underline-offset: -2em;
3338
2549
  font-style: normal;
3339
- text-underline-offset: -2em; /* ❌ Chrome ✅ Safari - to clip it with overflow-y */
3340
- }
3341
- /* Favicons */
3342
- a:not(.does-not-exist) > i > img {
3343
- display: inline-block; /* for Tailwind CSS Typography */
3344
- max-width: none; /* to keep ratio safe */
2550
+
2551
+ & > img {
2552
+ max-width: none;
3345
2553
  height: 1.25em;
3346
- margin-block-start: calc(-0.25em / 2);
2554
+ margin-block-start: -.125em;
2555
+ display: inline-block;
3347
2556
  }
3348
- a:not(.does-not-exist) > i[class^="fa-"],
3349
- a:not(.does-not-exist) > i[class*=" fa-"] {
2557
+
2558
+ &[class^="fa-"], &[class*=" fa-"] {
3350
2559
  line-height: inherit;
3351
2560
  --fa-width: auto;
3352
2561
  }
3353
- /* Font Awesome */
3354
- a:not(.does-not-exist) > i.fa-lg {
2562
+
2563
+ &.fa-lg {
3355
2564
  line-height: normal;
3356
2565
  }
3357
- /*```
3358
- \3c !--section:summary-->
3359
-
3360
- Use *Bl*ades `<i>`-helper to wrap emojis, favicons, or simply drop Font Awesome icons inside links.
3361
- It automatically handles sizing and alignment while preventing underline on icons.
3362
-
3363
- \3c !--section:docs-->
3364
-
3365
- <article class="breakout-item">
3366
-
3367
- | Use `<i>`-helper with | Clean HTML without `<span>ning` |
3368
- | ------------------------------------------------------------------------------------- | ------------------------------------ |
3369
- | [<i>🥷</i> Emojis](#) | `<a><i>🥷</i> Text</a>` |
3370
- | [<i>![](https://www.google.com/s2/favicons?domain=any.digital&sz=64)</i> Favicons](#) | `<a><i><img src="..."></i> Text</a>` |
3371
- | [<i class="fa-brands fa-github fa-lg"></i> Font Awesome icons](#) | `<a><i class="fa-..."></i> Text</a>` |
3372
- </article>
3373
-
3374
- Or even for:
3375
-
3376
- <article>
3377
- <a href="#" style="margin: 0 0 0 1rem"><i>🥷</i> very-very-very-very-very-<br>long-multiline-links</a>
3378
- </article>
3379
-
3380
- How we made it: https://codepen.io/editor/anydigital/pen/019d2b94-5616-75dc-a23e-e111869d5237
3381
-
3382
- \3c !--section--> */
3383
- /*\3c !--section:docs-->
3384
-
3385
- A `<ul>` or `<menu>` with the `popover` attribute is styled like a dropdown and opens next to the button
3386
- that toggles it, with no JS:
3387
-
3388
- ```html
3389
- <button popovertarget="actions">Actions</button>
3390
- <ul id="actions" popover>
3391
- <li><a href="#">Edit</a></li>
3392
- <li><a href="#">Duplicate</a></li>
3393
- </ul>
3394
- ```
3395
-
3396
- - Clicking outside or pressing Esc closes it, and it's drawn on top of everything (no `z-index`, no clipping by `overflow`).
3397
- - It opens below the button (on the reading side, also in RTL) and flips when there's no room.
3398
- Open it with `popovertarget`, `commandfor` or `showPopover({ source })`, so it knows its button.
3399
- - Browsers without CSS anchor positioning show it in the middle of the screen instead, like a plain popover.
3400
- - It uses the dropdown colours (`--pico-dropdown-*`, from `components/dropdown`).
2566
+ }
2567
+ }
3401
2568
 
3402
- \3c !--section:code-->```css */
3403
2569
  :is(ul, menu)[popover] {
3404
- min-width: -moz-fit-content;
3405
- min-width: fit-content;
3406
- margin: auto;
3407
- padding: 0;
3408
2570
  border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
3409
2571
  border-radius: var(--pico-border-radius);
3410
2572
  background-color: var(--pico-dropdown-background-color);
2573
+ min-width: fit-content;
3411
2574
  box-shadow: var(--pico-dropdown-box-shadow);
3412
2575
  color: var(--pico-dropdown-color);
3413
2576
  white-space: nowrap;
3414
2577
  opacity: 0;
3415
- transition:
3416
- opacity var(--pico-transition),
2578
+ transition: opacity var(--pico-transition),
3417
2579
  overlay var(--pico-transition) allow-discrete,
3418
2580
  display var(--pico-transition) allow-discrete;
3419
- }
3420
- /* Beats `nav ul` / `aside ul`, which would otherwise show the closed menu */
3421
- :is(ul, menu)[popover]:not(:popover-open) {
2581
+ margin: auto;
2582
+ padding: 0;
2583
+
2584
+ &:not(:popover-open) {
3422
2585
  display: none;
3423
2586
  }
3424
- :is(ul, menu)[popover]:popover-open {
3425
- display: block;
2587
+
2588
+ &:popover-open {
3426
2589
  opacity: 1;
3427
- }
3428
- :is(ul, menu)[popover] li {
3429
2590
  display: block;
3430
- margin-bottom: 0;
3431
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
2591
+ }
2592
+
2593
+ & li {
2594
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
3432
2595
  var(--pico-form-element-spacing-horizontal);
2596
+ margin-bottom: 0;
3433
2597
  list-style: none;
3434
- }
3435
- :is(ul, menu)[popover] li:first-of-type {
3436
- margin-top: calc(var(--pico-form-element-spacing-vertical) * 0.5);
2598
+ display: block;
2599
+
2600
+ &:first-of-type {
2601
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * .5);
3437
2602
  }
3438
- :is(ul, menu)[popover] li:last-of-type {
3439
- margin-bottom: calc(var(--pico-form-element-spacing-vertical) * 0.5);
2603
+
2604
+ &:last-of-type {
2605
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * .5);
3440
2606
  }
3441
- :is(ul, menu)[popover] li:has(label):hover {
2607
+
2608
+ &:has(label):hover {
3442
2609
  background-color: var(--pico-dropdown-hover-background-color);
3443
2610
  }
3444
- :is(ul, menu)[popover] li a {
3445
- display: block;
3446
- margin: calc(var(--pico-form-element-spacing-vertical) * -0.5)
2611
+ }
2612
+
2613
+ & li a {
2614
+ margin: calc(var(--pico-form-element-spacing-vertical) * -.5)
3447
2615
  calc(var(--pico-form-element-spacing-horizontal) * -1);
3448
- padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
2616
+ padding: calc(var(--pico-form-element-spacing-vertical) * .5)
3449
2617
  var(--pico-form-element-spacing-horizontal);
3450
- overflow: hidden;
3451
- border-radius: 0;
3452
2618
  color: var(--pico-dropdown-color);
3453
- text-decoration: none;
3454
2619
  text-overflow: ellipsis;
3455
- }
3456
- :is(ul, menu)[popover] li a:is(:hover, :focus, :active, :focus-visible, [aria-current]:not([aria-current="false"])) {
2620
+ border-radius: 0;
2621
+ text-decoration: none;
2622
+ display: block;
2623
+ overflow: hidden;
2624
+
2625
+ &:is(:hover, :focus, :active, :focus-visible, [aria-current]:not([aria-current="false"])) {
3457
2626
  background-color: var(--pico-dropdown-hover-background-color);
3458
2627
  }
3459
- :is(ul, menu)[popover] li label {
2628
+ }
2629
+
2630
+ & li label {
3460
2631
  width: 100%;
3461
2632
  }
3462
- /* Beats Pico's `nav ul:first-of-type` / `:last-of-type` margins whatever the load order (soft win via :not) */
2633
+ }
2634
+
3463
2635
  nav :is(ul, menu)[popover]:not(.does-not-exist) {
3464
2636
  margin: auto;
3465
2637
  }
2638
+
3466
2639
  @starting-style {
3467
2640
  :is(ul, menu)[popover]:popover-open {
3468
2641
  opacity: 0;
3469
2642
  }
3470
2643
  }
3471
2644
 
3472
- /* Next to the button that opened it (its implicit anchor) */
3473
2645
  @supports (position-area: bottom) {
3474
- :is(ul, menu)[popover],
3475
- nav :is(ul, menu)[popover]:not(.does-not-exist) {
3476
- position-area: bottom span-right;
3477
- position-try-fallbacks: flip-block, flip-inline;
2646
+ :is(ul, menu)[popover], nav :is(ul, menu)[popover]:not(.does-not-exist) {
3478
2647
  margin: 0;
3479
2648
  margin-top: var(--pico-outline-width);
2649
+ position-area: bottom span-right;
2650
+ position-try-fallbacks: flip-block, flip-inline;
3480
2651
  inset: auto;
3481
- }
3482
2652
 
3483
- :is(ul, menu)[popover]:dir(rtl), nav :is(ul, menu)[popover]:not(.does-not-exist):dir(rtl) {
2653
+ &:dir(rtl) {
3484
2654
  position-area: bottom span-left;
3485
2655
  }
2656
+ }
3486
2657
  }
3487
- /*\3c !--section:docs-->
3488
-
3489
- Use `dl.timeline` or wrap a `<dl>` with `.has-timeline` to style it as a
3490
- vertical timeline — each `<dd>` gets a left border strip acting as the track:
3491
-
3492
- <article class="has-timeline">
3493
2658
 
3494
- May 11, 2026
3495
- : First Blades CSS stable release (v2.2.0).
3496
-
3497
- Mar 15, 2025
3498
- : Last Pico CSS update (v2.1.1).
3499
-
3500
- </article>
3501
-
3502
- \3c !--section:code-->```css */
3503
- dl.timeline dd, .has-timeline > dl dd {
2659
+ dl.timeline, .has-timeline > dl {
2660
+ & dd {
2661
+ border-inline-start: .25rem solid var(--blades-timeline-border-color);
3504
2662
  margin-block: 0;
3505
- padding: 0.25rem 0 0.75rem 1rem;
3506
- border-inline-start: 0.25rem solid var(--blades-timeline-border-color);
3507
- }
3508
- /* Compact version (opt-in via `data-compact` attr anywhere) */
3509
- /*
3510
- * Compact: opt-in denser sizing and a more current look, applied under `data-compact` on
3511
- * <html> (whole page) or on any element such as a single <form>. Without the attribute it
3512
- * changes nothing. Part of blades.css (and blades.layered.css); with per-part imports, import it
3513
- * last (in the same layer as the other parts).
3514
- *
3515
- * The extra selectors keep the values winning where Pico re-declares them at the same
3516
- * specificity: nested [data-theme] sections, the `.pico` root when combined with the conditional build,
3517
- * and a shadow host.
3518
- */
3519
- [data-compact],
3520
- [data-compact] :is([data-theme], .pico),
3521
- .pico[data-compact],
3522
- :host([data-compact]),
3523
- :host([data-compact]) [data-theme] {
3524
- --pico-border-radius: 0.5rem;
3525
- --pico-outline-width: 0.1875rem;
2663
+ padding: .25rem 0 .75rem 1rem;
2664
+ }
2665
+ }
2666
+
2667
+ [data-compact], [data-compact] :is([data-theme], .pico), .pico[data-compact], :host([data-compact]), :host([data-compact]) [data-theme] {
2668
+ --pico-border-radius: .5rem;
2669
+ --pico-outline-width: .1875rem;
3526
2670
  --pico-block-spacing-vertical: 1.5rem;
3527
2671
  --pico-block-spacing-horizontal: 1.5rem;
3528
- --pico-form-element-spacing-vertical: 0.375rem;
3529
- --pico-form-element-spacing-horizontal: 0.75rem;
2672
+ --pico-form-element-spacing-vertical: .375rem;
2673
+ --pico-form-element-spacing-horizontal: .75rem;
3530
2674
  --pico-form-label-font-weight: 500;
3531
2675
  --pico-button-font-weight: 500;
3532
- --pico-form-element-background-color: light-dark(#fff, rgb(28, 33, 43.5));
2676
+ --pico-form-element-background-color: light-dark(#fff, #1c212c);
3533
2677
  --pico-card-border-color: var(--pico-muted-border-color);
3534
- --pico-card-box-shadow:
3535
- 0 0 0 var(--pico-border-width) var(--pico-card-border-color), 0 1px 2px rgba(0, 0, 0, 0.05);
2678
+ --pico-card-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-card-border-color), 0 1px 2px #0000000d;
3536
2679
  --pico-card-sectioning-background-color: var(--pico-card-background-color);
3537
2680
  }
3538
2681
 
3539
- /* Search fields keep their pill shape */
3540
2682
  [data-compact]:is([role="search"], [type="search"]) {
3541
2683
  --pico-border-radius: 5rem;
3542
2684
  }
3543
2685
 
3544
- /* Page-level only: everything is sized in rem, so the root size can't change per element */
3545
- :root[data-compact],
3546
- :host([data-compact]) {
2686
+ :root[data-compact], :host([data-compact]) {
3547
2687
  --pico-font-size: 100%;
3548
2688
  }
3549
2689
 
3550
- [data-compact] :is(h1, h2, h3, h4, h5, h6),
3551
- :host([data-compact]) :is(h1, h2, h3, h4, h5, h6) {
2690
+ [data-compact] :is(h1, h2, h3, h4, h5, h6), :host([data-compact]) :is(h1, h2, h3, h4, h5, h6) {
3552
2691
  --pico-font-weight: 600;
3553
2692
  }
3554
2693
 
3555
- /* Keep helper text at the normal weight under the 500-weight labels */
3556
- [data-compact] :where(input, select, textarea, fieldset, .grid) + small,
3557
- :host([data-compact]) :where(input, select, textarea, fieldset, .grid) + small {
2694
+ [data-compact] :where(input, select, textarea, fieldset, .grid) + small, :host([data-compact]) :where(input, select, textarea, fieldset, .grid) + small {
3558
2695
  font-weight: var(--pico-font-weight);
3559
2696
  }