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

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