@anyblades/blades 3.1.0-alpha.1 → 3.1.0-beta.2

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 (108) hide show
  1. package/README.md +78 -3
  2. package/css/blades.css +371 -978
  3. package/css/blades.min.css +74 -37
  4. package/css/blades.ninja.css +4057 -0
  5. package/css/blades.ninja.min.css +190 -0
  6. package/css/float-label.css +207 -0
  7. package/css/float-label.min.css +55 -0
  8. package/css/{pico.layered.css → layered/blades.layered.css} +654 -397
  9. package/css/layered/blades.layered.min.css +184 -0
  10. package/css/layered/compact.css +54 -0
  11. package/css/layered/components/accordion.css +85 -0
  12. package/css/layered/components/card.css +48 -0
  13. package/css/layered/components/dropdown.css +191 -0
  14. package/css/layered/components/group.css +208 -0
  15. package/css/layered/components/loading.css +43 -0
  16. package/css/layered/components/modal.css +158 -0
  17. package/css/layered/components/nav.css +117 -0
  18. package/css/layered/components/progress.css +76 -0
  19. package/css/layered/components/tooltip.css +176 -0
  20. package/css/layered/components.css +1082 -0
  21. package/css/layered/content/button.css +208 -0
  22. package/css/layered/content/code.css +64 -0
  23. package/css/layered/content/embedded-content.css +41 -0
  24. package/css/layered/content/figure.css +15 -0
  25. package/css/layered/content/link.css +84 -0
  26. package/css/layered/content/misc.css +22 -0
  27. package/css/layered/content/table.css +33 -0
  28. package/css/layered/content/typography.css +159 -0
  29. package/css/layered/content.css +611 -0
  30. package/css/layered/forms/basics.css +338 -0
  31. package/css/layered/forms/checkbox-radio-switch.css +164 -0
  32. package/css/layered/forms/input-color.css +20 -0
  33. package/css/layered/forms/input-datetime.css +57 -0
  34. package/css/layered/forms/input-file.css +29 -0
  35. package/css/layered/forms/input-range.css +121 -0
  36. package/css/layered/forms/input-search.css +66 -0
  37. package/css/layered/forms.css +778 -0
  38. package/css/layered/layout/container.css +42 -0
  39. package/css/layered/layout/document.css +48 -0
  40. package/css/layered/layout/grid.css +22 -0
  41. package/css/layered/layout/landmarks.css +12 -0
  42. package/css/layered/layout/overflow-auto.css +9 -0
  43. package/css/layered/layout/section.css +9 -0
  44. package/css/layered/layout.css +119 -0
  45. package/css/layered/utilities.css +35 -0
  46. package/css/layered/variables.css +365 -0
  47. package/css/pico.conditional.css +229 -396
  48. package/css/pico.conditional.min.css +42 -31
  49. package/css/pico.css +229 -396
  50. package/css/pico.min.css +42 -31
  51. package/package.json +24 -11
  52. package/src/_compact.css +51 -0
  53. package/src/blades/_index.css +23 -0
  54. package/src/blades/float-label/_index.css +2 -0
  55. package/src/{standalone/forms/_float-label.theme.css → blades/float-label/_theme.css} +5 -1
  56. package/src/blades.css +3 -2
  57. package/src/blades.ninja.css +3 -0
  58. package/src/float-label.css +1 -0
  59. package/src/ninja/_index.css +19 -0
  60. package/src/{standalone → ninja}/_theme.css +0 -2
  61. package/src/{ninja.css → ninja/_utilities.css} +55 -6
  62. package/src/pico/_variables.css +77 -386
  63. package/src/pico/components/_accordion.css +8 -0
  64. package/src/pico/components/_card.css +14 -0
  65. package/src/pico/components/_dropdown.css +9 -0
  66. package/src/pico/components/_group.css +38 -0
  67. package/src/pico/components/_loading.css +9 -0
  68. package/src/pico/components/_modal.css +13 -0
  69. package/src/pico/components/_nav.css +6 -0
  70. package/src/pico/components/_progress.css +6 -0
  71. package/src/pico/components/_tooltip.css +6 -0
  72. package/src/pico/content/_button.css +1 -1
  73. package/src/pico/forms/_checkbox-radio-switch.css +13 -0
  74. package/src/pico/forms/_input-datetime.css +6 -0
  75. package/src/pico/forms/_input-range.css +9 -0
  76. package/src/pico/forms/_input-search.css +5 -0
  77. package/src/pico/layout/_document.css +9 -0
  78. package/src/pico/layout/_index.css +0 -1
  79. package/src/pico/layout/_landmarks.css +1 -9
  80. package/src/pico.css +1 -0
  81. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -25
  82. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  83. package/.prettierignore +0 -3
  84. package/CODE_OF_CONDUCT.md +0 -92
  85. package/context7.json +0 -4
  86. package/css/blades.standalone.css +0 -860
  87. package/css/blades.standalone.min.css +0 -37
  88. package/css/ninja.css +0 -83
  89. package/css/ninja.min.css +0 -5
  90. package/css/pico.layered.min.css +0 -107
  91. package/css/postcss.config.js +0 -23
  92. package/index.html +0 -63
  93. package/src/blades.standalone.css +0 -2
  94. package/src/standalone/_core.css +0 -32
  95. package/src/standalone/_utilities.css +0 -55
  96. package/src/standalone/forms/_float-label.css +0 -2
  97. /package/src/{standalone/content → blades}/_code.css +0 -0
  98. /package/src/{standalone/layout → blades}/_columns.css +0 -0
  99. /package/src/{standalone/components/_icon-helper.css → blades/_icon.css} +0 -0
  100. /package/src/{standalone/components → blades}/_timeline.css +0 -0
  101. /package/src/{standalone → blades}/_variables.css +0 -0
  102. /package/src/{standalone/forms/_float-label.core.css → blades/float-label/_core.css} +0 -0
  103. /package/src/{standalone/layout/_breakout.css → ninja/_container-breakout.css} +0 -0
  104. /package/src/{standalone/content/_typography.css → ninja/_heading-anchor.css} +0 -0
  105. /package/src/{standalone/content/_list.css → ninja/_list-helpers.css} +0 -0
  106. /package/src/{standalone/layout/_scroller.css → ninja/_page-anchors.css} +0 -0
  107. /package/src/{standalone/content/_table.css → ninja/_table-helpers.css} +0 -0
  108. /package/src/{standalone/content → ninja}/_table-responsive.css +0 -0
package/css/pico.css CHANGED
@@ -33,24 +33,10 @@
33
33
  --pico-grid-row-gap: var(--pico-spacing);
34
34
  --pico-form-element-spacing-vertical: 0.75rem;
35
35
  --pico-form-element-spacing-horizontal: 1rem;
36
- --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
37
- --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
38
- var(--pico-primary-focus);
39
- --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
40
- --pico-modal-overlay-backdrop-filter: blur(0.375rem);
41
36
  --pico-nav-element-spacing-vertical: 1rem;
42
- --pico-nav-element-spacing-horizontal: 0.5rem;
43
37
  --pico-nav-link-spacing-vertical: 0.5rem;
44
38
  --pico-nav-link-spacing-horizontal: 0.5rem;
45
- --pico-nav-breadcrumb-divider: ">";
46
- --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");
47
- --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");
48
39
  --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");
49
- --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");
50
- --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");
51
- --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");
52
- --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");
53
- --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");
54
40
  }
55
41
  @media (min-width: 576px) {
56
42
  :scope,
@@ -196,36 +182,6 @@ nav details.dropdown summary:focus-visible {
196
182
  --pico-border-radius: 5rem;
197
183
  }
198
184
 
199
- [role="search"]:has(
200
- button.secondary:focus,
201
- [type="submit"].secondary:focus,
202
- [type="button"].secondary:focus,
203
- [role="button"].secondary:focus
204
- ),
205
- [role="group"]:has(
206
- button.secondary:focus,
207
- [type="submit"].secondary:focus,
208
- [type="button"].secondary:focus,
209
- [role="button"].secondary:focus
210
- ) {
211
- --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
212
- var(--pico-secondary-focus);
213
- }
214
- [role="search"]:has(
215
- button.contrast:focus,
216
- [type="submit"].contrast:focus,
217
- [type="button"].contrast:focus,
218
- [role="button"].contrast:focus
219
- ),
220
- [role="group"]:has(
221
- button.contrast:focus,
222
- [type="submit"].contrast:focus,
223
- [type="button"].contrast:focus,
224
- [role="button"].contrast:focus
225
- ) {
226
- --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
227
- var(--pico-contrast-focus);
228
- }
229
185
  [role="search"] button,
230
186
  [role="search"] [type="submit"],
231
187
  [role="search"] [type="button"],
@@ -253,273 +209,122 @@ details summary[role="button"]:not(.outline)::after {
253
209
 
254
210
  /**
255
211
  * Color schemes
212
+ * One palette for both schemes: light-dark() picks the value from the used color-scheme,
213
+ * so the dark scheme only has to switch color-scheme (same selectors as before).
256
214
  */
215
+ :scope,
216
+ :host,
257
217
  [data-theme="light"],
258
- :scope:not([data-theme="dark"]),
259
- :host(:not([data-theme="dark"])) {
218
+ [data-theme="dark"] {
260
219
  color-scheme: light;
261
- --pico-background-color: #fff;
262
- --pico-color: #373c44;
263
- --pico-text-selection-color: rgba(2, 154, 232, 0.25);
264
- --pico-muted-color: #646b79;
265
- --pico-muted-border-color: rgb(231, 234, 239.5);
266
- --pico-primary: #0172ad;
220
+ --pico-background-color: light-dark(#fff, rgb(19, 22.5, 30.5));
221
+ --pico-color: light-dark(#373c44, #c2c7d0);
222
+ --pico-text-selection-color: light-dark(rgba(2, 154, 232, 0.25), rgba(1, 170, 255, 0.1875));
223
+ --pico-muted-color: light-dark(#646b79, #7b8495);
224
+ --pico-muted-border-color: light-dark(rgb(231, 234, 239.5), #202632);
225
+ --pico-primary: light-dark(#0172ad, #01aaff);
267
226
  --pico-primary-background: #0172ad;
268
227
  --pico-primary-border: var(--pico-primary-background);
269
- --pico-primary-underline: rgba(1, 114, 173, 0.5);
270
- --pico-primary-hover: #015887;
271
- --pico-primary-hover-background: #02659a;
228
+ --pico-primary-underline: light-dark(rgba(1, 114, 173, 0.5), rgba(1, 170, 255, 0.5));
229
+ --pico-primary-hover: light-dark(#015887, #79c0ff);
230
+ --pico-primary-hover-background: light-dark(#02659a, #017fc0);
272
231
  --pico-primary-hover-border: var(--pico-primary-hover-background);
273
232
  --pico-primary-hover-underline: var(--pico-primary-hover);
274
- --pico-primary-focus: rgba(2, 154, 232, 0.5);
233
+ /* Focus rings are opaque: at 25–50% alpha they composite below 3:1 (SC 1.4.11), see #167 */
234
+ --pico-primary-focus: light-dark(rgb(2, 138, 212), rgb(1, 170, 255));
275
235
  --pico-primary-inverse: #fff;
276
- --pico-secondary: #5d6b89;
236
+ --pico-secondary: light-dark(#5d6b89, #969eaf);
277
237
  --pico-secondary-background: #525f7a;
278
238
  --pico-secondary-border: var(--pico-secondary-background);
279
- --pico-secondary-underline: rgba(93, 107, 137, 0.5);
280
- --pico-secondary-hover: #48536b;
281
- --pico-secondary-hover-background: #48536b;
239
+ --pico-secondary-underline: light-dark(rgba(93, 107, 137, 0.5), rgba(150, 158, 175, 0.5));
240
+ --pico-secondary-hover: light-dark(#48536b, #b3b9c5);
241
+ --pico-secondary-hover-background: light-dark(#48536b, #5d6b89);
282
242
  --pico-secondary-hover-border: var(--pico-secondary-hover-background);
283
243
  --pico-secondary-hover-underline: var(--pico-secondary-hover);
284
- --pico-secondary-focus: rgba(93, 107, 137, 0.25);
244
+ --pico-secondary-focus: light-dark(rgb(93, 107, 137), rgb(144, 158, 190));
285
245
  --pico-secondary-inverse: #fff;
286
- --pico-contrast: #181c25;
287
- --pico-contrast-background: #181c25;
246
+ --pico-contrast: light-dark(#181c25, #dfe3eb);
247
+ --pico-contrast-background: light-dark(#181c25, #eff1f4);
288
248
  --pico-contrast-border: var(--pico-contrast-background);
289
- --pico-contrast-underline: rgba(24, 28, 37, 0.5);
290
- --pico-contrast-hover: #000;
291
- --pico-contrast-hover-background: #000;
249
+ --pico-contrast-underline: light-dark(rgba(24, 28, 37, 0.5), rgba(223, 227, 235, 0.5));
250
+ --pico-contrast-hover: light-dark(#000, #fff);
251
+ --pico-contrast-hover-background: light-dark(#000, #fff);
292
252
  --pico-contrast-hover-border: var(--pico-contrast-hover-background);
293
- --pico-contrast-hover-underline: var(--pico-secondary-hover);
294
- --pico-contrast-focus: rgba(93, 107, 137, 0.25);
295
- --pico-contrast-inverse: #fff;
296
- --pico-box-shadow: 0 0.5rem 2.5rem rgba(129, 145, 181, 0.2);
297
- --pico-h1-color: #2d3138;
298
- --pico-h2-color: #373c44;
299
- --pico-h3-color: #424751;
300
- --pico-h4-color: #4d535e;
301
- --pico-h5-color: #5c6370;
302
- --pico-h6-color: #646b79;
303
- --pico-mark-background-color: rgb(252.5, 230.5, 191.5);
304
- --pico-mark-color: #0f1114;
305
- --pico-ins-color: rgb(28.5, 105.5, 84);
306
- --pico-del-color: rgb(136, 56.5, 53);
253
+ --pico-contrast-hover-underline: light-dark(
254
+ var(--pico-secondary-hover),
255
+ var(--pico-contrast-hover)
256
+ );
257
+ --pico-contrast-focus: light-dark(rgb(93, 107, 137), rgb(207, 213, 226));
258
+ --pico-contrast-inverse: light-dark(#fff, #000);
259
+ --pico-box-shadow: 0 0.5rem 2.5rem light-dark(rgba(129, 145, 181, 0.2), rgba(7, 8.5, 12, 0.2));
260
+ --pico-h1-color: light-dark(#2d3138, #f0f1f3);
261
+ --pico-h2-color: light-dark(#373c44, #e0e3e7);
262
+ --pico-h3-color: light-dark(#424751, #c2c7d0);
263
+ --pico-h4-color: light-dark(#4d535e, #b3b9c5);
264
+ --pico-h5-color: light-dark(#5c6370, #a4acba);
265
+ --pico-h6-color: light-dark(#646b79, #8891a4);
266
+ --pico-mark-background-color: light-dark(rgb(252.5, 230.5, 191.5), #014063);
267
+ --pico-mark-color: light-dark(#0f1114, #fff);
268
+ --pico-ins-color: light-dark(rgb(28.5, 105.5, 84), #62af9a);
269
+ --pico-del-color: light-dark(rgb(136, 56.5, 53), rgb(205.5, 126, 123));
307
270
  --pico-blockquote-border-color: var(--pico-muted-border-color);
308
271
  --pico-blockquote-footer-color: var(--pico-muted-color);
309
272
  --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
310
273
  --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
311
274
  --pico-table-border-color: var(--pico-muted-border-color);
312
275
  --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
313
- --pico-code-background-color: rgb(243, 244.5, 246.75);
314
- --pico-code-color: #646b79;
276
+ --pico-code-background-color: light-dark(rgb(243, 244.5, 246.75), rgb(26, 30.5, 40.25));
277
+ --pico-code-color: light-dark(#646b79, #8891a4);
315
278
  --pico-code-kbd-background-color: var(--pico-color);
316
279
  --pico-code-kbd-color: var(--pico-background-color);
317
- --pico-form-element-background-color: rgb(251, 251.5, 252.25);
318
- --pico-form-element-selected-background-color: #dfe3eb;
319
- --pico-form-element-border-color: #cfd5e2;
320
- --pico-form-element-color: #23262c;
321
- --pico-form-element-placeholder-color: var(--pico-muted-color);
322
- --pico-form-element-active-background-color: #fff;
280
+ --pico-form-element-background-color: light-dark(rgb(251, 251.5, 252.25), rgb(28, 33, 43.5));
281
+ --pico-form-element-selected-background-color: light-dark(#dfe3eb, #2a3140);
282
+ --pico-form-element-border-color: light-dark(#cfd5e2, #2a3140);
283
+ --pico-form-element-color: light-dark(#23262c, #e0e3e7);
284
+ --pico-form-element-placeholder-color: light-dark(var(--pico-muted-color), #8891a4);
285
+ --pico-form-element-active-background-color: light-dark(#fff, rgb(26, 30.5, 40.25));
323
286
  --pico-form-element-active-border-color: var(--pico-primary-border);
324
287
  --pico-form-element-focus-color: var(--pico-primary-border);
325
288
  --pico-form-element-disabled-opacity: 0.5;
326
- --pico-form-element-invalid-border-color: rgb(183.5, 105.5, 106.5);
327
- --pico-form-element-invalid-active-border-color: rgb(200.25, 79.25, 72.25);
289
+ --pico-form-element-invalid-border-color: light-dark(
290
+ rgb(183.5, 105.5, 106.5),
291
+ rgb(200.25, 79.25, 72.25)
292
+ );
293
+ --pico-form-element-invalid-active-border-color: light-dark(
294
+ rgb(200.25, 79.25, 72.25),
295
+ rgb(214, 92, 86)
296
+ );
328
297
  --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
329
- --pico-form-element-valid-border-color: rgb(76, 154.5, 137.5);
330
- --pico-form-element-valid-active-border-color: rgb(39, 152.75, 118.75);
298
+ --pico-form-element-valid-border-color: light-dark(rgb(76, 154.5, 137.5), #2a7b6f);
299
+ --pico-form-element-valid-active-border-color: light-dark(
300
+ rgb(39, 152.75, 118.75),
301
+ rgb(22, 137, 105.5)
302
+ );
331
303
  --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
332
- --pico-switch-background-color: #bfc7d9;
333
- --pico-switch-checked-background-color: var(--pico-primary-background);
334
- --pico-switch-color: #fff;
335
- --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
336
- --pico-range-border-color: #dfe3eb;
337
- --pico-range-active-border-color: #bfc7d9;
338
- --pico-range-thumb-border-color: var(--pico-background-color);
339
- --pico-range-thumb-color: var(--pico-secondary-background);
340
- --pico-range-thumb-active-color: var(--pico-primary-background);
341
- --pico-accordion-border-color: var(--pico-muted-border-color);
342
- --pico-accordion-active-summary-color: var(--pico-primary-hover);
343
- --pico-accordion-close-summary-color: var(--pico-color);
344
- --pico-accordion-open-summary-color: var(--pico-muted-color);
345
- --pico-card-background-color: var(--pico-background-color);
346
- --pico-card-border-color: var(--pico-muted-border-color);
347
- --pico-card-box-shadow: var(--pico-box-shadow);
348
- --pico-card-sectioning-background-color: rgb(251, 251.5, 252.25);
349
- --pico-dropdown-background-color: #fff;
350
- --pico-dropdown-border-color: #eff1f4;
351
- --pico-dropdown-box-shadow: var(--pico-box-shadow);
352
- --pico-dropdown-color: var(--pico-color);
353
- --pico-dropdown-hover-background-color: #eff1f4;
354
- --pico-loading-spinner-opacity: 0.5;
355
- --pico-modal-overlay-background-color: rgba(232, 234, 237, 0.75);
356
- --pico-progress-background-color: #dfe3eb;
357
- --pico-progress-color: var(--pico-primary-background);
358
- --pico-tooltip-background-color: var(--pico-contrast-background);
359
- --pico-tooltip-color: var(--pico-contrast-inverse);
304
+ /* One stroke color for both schemes, at least 3:1 on light and dark form backgrounds */
360
305
  --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");
361
306
  --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");
362
307
  }
363
- [data-theme="light"]
364
- input:is(
365
- [type="submit"],
366
- [type="button"],
367
- [type="reset"],
368
- [type="checkbox"],
369
- [type="radio"],
370
- [type="file"]
371
- ),
372
- :scope:not([data-theme="dark"])
373
- input:is(
374
- [type="submit"],
375
- [type="button"],
376
- [type="reset"],
377
- [type="checkbox"],
378
- [type="radio"],
379
- [type="file"]
380
- ),
381
- :host(:not([data-theme="dark"]))
382
- input:is(
383
- [type="submit"],
384
- [type="button"],
385
- [type="reset"],
386
- [type="checkbox"],
387
- [type="radio"],
388
- [type="file"]
389
- ) {
308
+
309
+ input:is(
310
+ [type="submit"],
311
+ [type="button"],
312
+ [type="reset"],
313
+ [type="checkbox"],
314
+ [type="radio"],
315
+ [type="file"]
316
+ ) {
390
317
  --pico-form-element-focus-color: var(--pico-primary-focus);
391
318
  }
392
319
 
320
+ /* Dark scheme: switch color-scheme, plus filters that light-dark() can't pick */
393
321
  @media only screen and (prefers-color-scheme: dark) {
394
322
  :scope:not([data-theme]),
395
323
  :host(:not([data-theme])) {
396
324
  color-scheme: dark;
397
- --pico-background-color: rgb(19, 22.5, 30.5);
398
- --pico-color: #c2c7d0;
399
- --pico-text-selection-color: rgba(1, 170, 255, 0.1875);
400
- --pico-muted-color: #7b8495;
401
- --pico-muted-border-color: #202632;
402
- --pico-primary: #01aaff;
403
- --pico-primary-background: #0172ad;
404
- --pico-primary-border: var(--pico-primary-background);
405
- --pico-primary-underline: rgba(1, 170, 255, 0.5);
406
- --pico-primary-hover: #79c0ff;
407
- --pico-primary-hover-background: #017fc0;
408
- --pico-primary-hover-border: var(--pico-primary-hover-background);
409
- --pico-primary-hover-underline: var(--pico-primary-hover);
410
- --pico-primary-focus: rgba(1, 170, 255, 0.375);
411
- --pico-primary-inverse: #fff;
412
- --pico-secondary: #969eaf;
413
- --pico-secondary-background: #525f7a;
414
- --pico-secondary-border: var(--pico-secondary-background);
415
- --pico-secondary-underline: rgba(150, 158, 175, 0.5);
416
- --pico-secondary-hover: #b3b9c5;
417
- --pico-secondary-hover-background: #5d6b89;
418
- --pico-secondary-hover-border: var(--pico-secondary-hover-background);
419
- --pico-secondary-hover-underline: var(--pico-secondary-hover);
420
- --pico-secondary-focus: rgba(144, 158, 190, 0.25);
421
- --pico-secondary-inverse: #fff;
422
- --pico-contrast: #dfe3eb;
423
- --pico-contrast-background: #eff1f4;
424
- --pico-contrast-border: var(--pico-contrast-background);
425
- --pico-contrast-underline: rgba(223, 227, 235, 0.5);
426
- --pico-contrast-hover: #fff;
427
- --pico-contrast-hover-background: #fff;
428
- --pico-contrast-hover-border: var(--pico-contrast-hover-background);
429
- --pico-contrast-hover-underline: var(--pico-contrast-hover);
430
- --pico-contrast-focus: rgba(207, 213, 226, 0.25);
431
- --pico-contrast-inverse: #000;
432
- --pico-box-shadow: 0 0.5rem 2.5rem rgba(7, 8.5, 12, 0.2);
433
- --pico-h1-color: #f0f1f3;
434
- --pico-h2-color: #e0e3e7;
435
- --pico-h3-color: #c2c7d0;
436
- --pico-h4-color: #b3b9c5;
437
- --pico-h5-color: #a4acba;
438
- --pico-h6-color: #8891a4;
439
- --pico-mark-background-color: #014063;
440
- --pico-mark-color: #fff;
441
- --pico-ins-color: #62af9a;
442
- --pico-del-color: rgb(205.5, 126, 123);
443
- --pico-blockquote-border-color: var(--pico-muted-border-color);
444
- --pico-blockquote-footer-color: var(--pico-muted-color);
445
- --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
446
- --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
447
- --pico-table-border-color: var(--pico-muted-border-color);
448
- --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
449
- --pico-code-background-color: rgb(26, 30.5, 40.25);
450
- --pico-code-color: #8891a4;
451
- --pico-code-kbd-background-color: var(--pico-color);
452
- --pico-code-kbd-color: var(--pico-background-color);
453
- --pico-form-element-background-color: rgb(28, 33, 43.5);
454
- --pico-form-element-selected-background-color: #2a3140;
455
- --pico-form-element-border-color: #2a3140;
456
- --pico-form-element-color: #e0e3e7;
457
- --pico-form-element-placeholder-color: #8891a4;
458
- --pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
459
- --pico-form-element-active-border-color: var(--pico-primary-border);
460
- --pico-form-element-focus-color: var(--pico-primary-border);
461
- --pico-form-element-disabled-opacity: 0.5;
462
- --pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
463
- --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
464
- --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
465
- --pico-form-element-valid-border-color: #2a7b6f;
466
- --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
467
- --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
468
- --pico-switch-background-color: #333c4e;
469
- --pico-switch-checked-background-color: var(--pico-primary-background);
470
- --pico-switch-color: #fff;
471
- --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
472
- --pico-range-border-color: #202632;
473
- --pico-range-active-border-color: #2a3140;
474
- --pico-range-thumb-border-color: var(--pico-background-color);
475
- --pico-range-thumb-color: var(--pico-secondary-background);
476
- --pico-range-thumb-active-color: var(--pico-primary-background);
477
- --pico-accordion-border-color: var(--pico-muted-border-color);
478
- --pico-accordion-active-summary-color: var(--pico-primary-hover);
479
- --pico-accordion-close-summary-color: var(--pico-color);
480
- --pico-accordion-open-summary-color: var(--pico-muted-color);
481
- --pico-card-background-color: #181c25;
482
- --pico-card-border-color: var(--pico-card-background-color);
483
- --pico-card-box-shadow: var(--pico-box-shadow);
484
- --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
485
- --pico-dropdown-background-color: #181c25;
486
- --pico-dropdown-border-color: #202632;
487
- --pico-dropdown-box-shadow: var(--pico-box-shadow);
488
- --pico-dropdown-color: var(--pico-color);
489
- --pico-dropdown-hover-background-color: #202632;
490
- --pico-loading-spinner-opacity: 0.5;
491
- --pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75);
492
- --pico-progress-background-color: #202632;
493
- --pico-progress-color: var(--pico-primary-background);
494
- --pico-tooltip-background-color: var(--pico-contrast-background);
495
- --pico-tooltip-color: var(--pico-contrast-inverse);
496
- --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(42, 123, 111)' 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");
497
- --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(149.5, 74, 80)' 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");
498
- }
499
- :scope:not([data-theme])
500
- input:is(
501
- [type="submit"],
502
- [type="button"],
503
- [type="reset"],
504
- [type="checkbox"],
505
- [type="radio"],
506
- [type="file"]
507
- ),
508
- :host(:not([data-theme]))
509
- input:is(
510
- [type="submit"],
511
- [type="button"],
512
- [type="reset"],
513
- [type="checkbox"],
514
- [type="radio"],
515
- [type="file"]
516
- ) {
517
- --pico-form-element-focus-color: var(--pico-primary-focus);
518
325
  }
519
326
  :scope:not([data-theme]) details summary[role="button"].contrast:not(.outline)::after,
520
- :host(:not([data-theme])) details summary[role="button"].contrast:not(.outline)::after {
521
- filter: brightness(0);
522
- }
327
+ :host(:not([data-theme])) details summary[role="button"].contrast:not(.outline)::after,
523
328
  :scope:not([data-theme])
524
329
  [aria-busy="true"]:not(input, select, textarea).contrast:is(
525
330
  button,
@@ -541,122 +346,8 @@ details summary[role="button"]:not(.outline)::after {
541
346
  }
542
347
  [data-theme="dark"] {
543
348
  color-scheme: dark;
544
- --pico-background-color: rgb(19, 22.5, 30.5);
545
- --pico-color: #c2c7d0;
546
- --pico-text-selection-color: rgba(1, 170, 255, 0.1875);
547
- --pico-muted-color: #7b8495;
548
- --pico-muted-border-color: #202632;
549
- --pico-primary: #01aaff;
550
- --pico-primary-background: #0172ad;
551
- --pico-primary-border: var(--pico-primary-background);
552
- --pico-primary-underline: rgba(1, 170, 255, 0.5);
553
- --pico-primary-hover: #79c0ff;
554
- --pico-primary-hover-background: #017fc0;
555
- --pico-primary-hover-border: var(--pico-primary-hover-background);
556
- --pico-primary-hover-underline: var(--pico-primary-hover);
557
- --pico-primary-focus: rgba(1, 170, 255, 0.375);
558
- --pico-primary-inverse: #fff;
559
- --pico-secondary: #969eaf;
560
- --pico-secondary-background: #525f7a;
561
- --pico-secondary-border: var(--pico-secondary-background);
562
- --pico-secondary-underline: rgba(150, 158, 175, 0.5);
563
- --pico-secondary-hover: #b3b9c5;
564
- --pico-secondary-hover-background: #5d6b89;
565
- --pico-secondary-hover-border: var(--pico-secondary-hover-background);
566
- --pico-secondary-hover-underline: var(--pico-secondary-hover);
567
- --pico-secondary-focus: rgba(144, 158, 190, 0.25);
568
- --pico-secondary-inverse: #fff;
569
- --pico-contrast: #dfe3eb;
570
- --pico-contrast-background: #eff1f4;
571
- --pico-contrast-border: var(--pico-contrast-background);
572
- --pico-contrast-underline: rgba(223, 227, 235, 0.5);
573
- --pico-contrast-hover: #fff;
574
- --pico-contrast-hover-background: #fff;
575
- --pico-contrast-hover-border: var(--pico-contrast-hover-background);
576
- --pico-contrast-hover-underline: var(--pico-contrast-hover);
577
- --pico-contrast-focus: rgba(207, 213, 226, 0.25);
578
- --pico-contrast-inverse: #000;
579
- --pico-box-shadow: 0 0.5rem 2.5rem rgba(7, 8.5, 12, 0.2);
580
- --pico-h1-color: #f0f1f3;
581
- --pico-h2-color: #e0e3e7;
582
- --pico-h3-color: #c2c7d0;
583
- --pico-h4-color: #b3b9c5;
584
- --pico-h5-color: #a4acba;
585
- --pico-h6-color: #8891a4;
586
- --pico-mark-background-color: #014063;
587
- --pico-mark-color: #fff;
588
- --pico-ins-color: #62af9a;
589
- --pico-del-color: rgb(205.5, 126, 123);
590
- --pico-blockquote-border-color: var(--pico-muted-border-color);
591
- --pico-blockquote-footer-color: var(--pico-muted-color);
592
- --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
593
- --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
594
- --pico-table-border-color: var(--pico-muted-border-color);
595
- --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);
596
- --pico-code-background-color: rgb(26, 30.5, 40.25);
597
- --pico-code-color: #8891a4;
598
- --pico-code-kbd-background-color: var(--pico-color);
599
- --pico-code-kbd-color: var(--pico-background-color);
600
- --pico-form-element-background-color: rgb(28, 33, 43.5);
601
- --pico-form-element-selected-background-color: #2a3140;
602
- --pico-form-element-border-color: #2a3140;
603
- --pico-form-element-color: #e0e3e7;
604
- --pico-form-element-placeholder-color: #8891a4;
605
- --pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
606
- --pico-form-element-active-border-color: var(--pico-primary-border);
607
- --pico-form-element-focus-color: var(--pico-primary-border);
608
- --pico-form-element-disabled-opacity: 0.5;
609
- --pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
610
- --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
611
- --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
612
- --pico-form-element-valid-border-color: #2a7b6f;
613
- --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
614
- --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);
615
- --pico-switch-background-color: #333c4e;
616
- --pico-switch-checked-background-color: var(--pico-primary-background);
617
- --pico-switch-color: #fff;
618
- --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
619
- --pico-range-border-color: #202632;
620
- --pico-range-active-border-color: #2a3140;
621
- --pico-range-thumb-border-color: var(--pico-background-color);
622
- --pico-range-thumb-color: var(--pico-secondary-background);
623
- --pico-range-thumb-active-color: var(--pico-primary-background);
624
- --pico-accordion-border-color: var(--pico-muted-border-color);
625
- --pico-accordion-active-summary-color: var(--pico-primary-hover);
626
- --pico-accordion-close-summary-color: var(--pico-color);
627
- --pico-accordion-open-summary-color: var(--pico-muted-color);
628
- --pico-card-background-color: #181c25;
629
- --pico-card-border-color: var(--pico-card-background-color);
630
- --pico-card-box-shadow: var(--pico-box-shadow);
631
- --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
632
- --pico-dropdown-background-color: #181c25;
633
- --pico-dropdown-border-color: #202632;
634
- --pico-dropdown-box-shadow: var(--pico-box-shadow);
635
- --pico-dropdown-color: var(--pico-color);
636
- --pico-dropdown-hover-background-color: #202632;
637
- --pico-loading-spinner-opacity: 0.5;
638
- --pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75);
639
- --pico-progress-background-color: #202632;
640
- --pico-progress-color: var(--pico-primary-background);
641
- --pico-tooltip-background-color: var(--pico-contrast-background);
642
- --pico-tooltip-color: var(--pico-contrast-inverse);
643
- --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(42, 123, 111)' 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");
644
- --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(149.5, 74, 80)' 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");
645
- }
646
- [data-theme="dark"]
647
- input:is(
648
- [type="submit"],
649
- [type="button"],
650
- [type="reset"],
651
- [type="checkbox"],
652
- [type="radio"],
653
- [type="file"]
654
- ) {
655
- --pico-form-element-focus-color: var(--pico-primary-focus);
656
- }
657
- [data-theme="dark"] details summary[role="button"].contrast:not(.outline)::after {
658
- filter: brightness(0);
659
349
  }
350
+ [data-theme="dark"] details summary[role="button"].contrast:not(.outline)::after,
660
351
  [data-theme="dark"]
661
352
  [aria-busy="true"]:not(input, select, textarea).contrast:is(
662
353
  button,
@@ -712,9 +403,6 @@ progress,
712
403
  tab-size: 4;
713
404
  }
714
405
 
715
- /**
716
- * Landmarks
717
- */
718
406
  body {
719
407
  width: 100%;
720
408
  margin: 0;
@@ -724,12 +412,6 @@ main {
724
412
  display: block;
725
413
  }
726
414
 
727
- body > header,
728
- body > main,
729
- body > footer {
730
- padding-block: var(--pico-block-spacing-vertical);
731
- }
732
-
733
415
  /**
734
416
  * Section
735
417
  */
@@ -1073,7 +755,7 @@ button,
1073
755
  background-color: var(--pico-background-color);
1074
756
  box-shadow: var(--pico-box-shadow);
1075
757
  color: var(--pico-color);
1076
- font-weight: var(--pico-font-weight);
758
+ font-weight: var(--pico-button-font-weight, var(--pico-font-weight));
1077
759
  font-size: 1rem;
1078
760
  line-height: var(--pico-line-height);
1079
761
  text-align: center;
@@ -1748,6 +1430,19 @@ label > :where(input, select, textarea) {
1748
1430
  /**
1749
1431
  * Checkboxes, Radios and Switches
1750
1432
  */
1433
+ :where(:scope),
1434
+ :host {
1435
+ --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");
1436
+ --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");
1437
+ }
1438
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
1439
+ :host {
1440
+ --pico-switch-background-color: light-dark(#bfc7d9, #333c4e);
1441
+ --pico-switch-checked-background-color: var(--pico-primary-background);
1442
+ --pico-switch-color: #fff;
1443
+ --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
1444
+ }
1445
+
1751
1446
  label:has([type="checkbox"], [type="radio"]) {
1752
1447
  width: -moz-fit-content;
1753
1448
  width: fit-content;
@@ -1913,6 +1608,12 @@ label:has([type="checkbox"], [type="radio"]) {
1913
1608
  /**
1914
1609
  * Input type datetime
1915
1610
  */
1611
+ :where(:scope),
1612
+ :host {
1613
+ --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");
1614
+ --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");
1615
+ }
1616
+
1916
1617
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is(
1917
1618
  [type="date"],
1918
1619
  [type="datetime-local"],
@@ -1987,6 +1688,15 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1987
1688
  /**
1988
1689
  * Input type range
1989
1690
  */
1691
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
1692
+ :host {
1693
+ --pico-range-border-color: light-dark(#dfe3eb, #202632);
1694
+ --pico-range-active-border-color: light-dark(#bfc7d9, #2a3140);
1695
+ --pico-range-thumb-border-color: var(--pico-background-color);
1696
+ --pico-range-thumb-color: var(--pico-secondary-background);
1697
+ --pico-range-thumb-active-color: var(--pico-primary-background);
1698
+ }
1699
+
1990
1700
  [type="range"] {
1991
1701
  -webkit-appearance: none;
1992
1702
  -moz-appearance: none;
@@ -2096,6 +1806,11 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
2096
1806
  /**
2097
1807
  * Input type search
2098
1808
  */
1809
+ :where(:scope),
1810
+ :host {
1811
+ --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");
1812
+ }
1813
+
2099
1814
  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
2100
1815
  padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
2101
1816
  background-image: var(--pico-icon-search);
@@ -2154,6 +1869,14 @@ input:not(
2154
1869
  /**
2155
1870
  * Accordion (<details>)
2156
1871
  */
1872
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
1873
+ :host {
1874
+ --pico-accordion-border-color: var(--pico-muted-border-color);
1875
+ --pico-accordion-active-summary-color: var(--pico-primary-hover);
1876
+ --pico-accordion-close-summary-color: var(--pico-color);
1877
+ --pico-accordion-open-summary-color: var(--pico-muted-color);
1878
+ }
1879
+
2157
1880
  details {
2158
1881
  display: block;
2159
1882
  margin-bottom: var(--pico-spacing);
@@ -2228,6 +1951,20 @@ details[open] > summary::after {
2228
1951
  /**
2229
1952
  * Card (<article>)
2230
1953
  */
1954
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
1955
+ :host {
1956
+ --pico-card-background-color: light-dark(var(--pico-background-color), #181c25);
1957
+ --pico-card-border-color: light-dark(
1958
+ var(--pico-muted-border-color),
1959
+ var(--pico-card-background-color)
1960
+ );
1961
+ --pico-card-box-shadow: var(--pico-box-shadow);
1962
+ --pico-card-sectioning-background-color: light-dark(
1963
+ rgb(251, 251.5, 252.25),
1964
+ rgb(26, 30.5, 40.25)
1965
+ );
1966
+ }
1967
+
2231
1968
  article {
2232
1969
  margin-bottom: var(--pico-block-spacing-vertical);
2233
1970
  padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);
@@ -2259,6 +1996,15 @@ article > footer {
2259
1996
  /**
2260
1997
  * Dropdown (details.dropdown)
2261
1998
  */
1999
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
2000
+ :host {
2001
+ --pico-dropdown-background-color: light-dark(#fff, #181c25);
2002
+ --pico-dropdown-border-color: light-dark(#eff1f4, #202632);
2003
+ --pico-dropdown-box-shadow: var(--pico-box-shadow);
2004
+ --pico-dropdown-color: var(--pico-color);
2005
+ --pico-dropdown-hover-background-color: light-dark(#eff1f4, #202632);
2006
+ }
2007
+
2262
2008
  details.dropdown {
2263
2009
  position: relative;
2264
2010
  border-bottom: none;
@@ -2439,6 +2185,44 @@ label > details.dropdown {
2439
2185
  /**
2440
2186
  * Group ([role="group"], [role="search"])
2441
2187
  */
2188
+ :where(:scope),
2189
+ :host {
2190
+ --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
2191
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
2192
+ var(--pico-primary-focus);
2193
+ --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
2194
+ }
2195
+ [role="search"]:has(
2196
+ button.secondary:focus,
2197
+ [type="submit"].secondary:focus,
2198
+ [type="button"].secondary:focus,
2199
+ [role="button"].secondary:focus
2200
+ ),
2201
+ [role="group"]:has(
2202
+ button.secondary:focus,
2203
+ [type="submit"].secondary:focus,
2204
+ [type="button"].secondary:focus,
2205
+ [role="button"].secondary:focus
2206
+ ) {
2207
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
2208
+ var(--pico-secondary-focus);
2209
+ }
2210
+ [role="search"]:has(
2211
+ button.contrast:focus,
2212
+ [type="submit"].contrast:focus,
2213
+ [type="button"].contrast:focus,
2214
+ [role="button"].contrast:focus
2215
+ ),
2216
+ [role="group"]:has(
2217
+ button.contrast:focus,
2218
+ [type="submit"].contrast:focus,
2219
+ [type="button"].contrast:focus,
2220
+ [role="button"].contrast:focus
2221
+ ) {
2222
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
2223
+ var(--pico-contrast-focus);
2224
+ }
2225
+
2442
2226
  [role="search"],
2443
2227
  [role="group"] {
2444
2228
  display: inline-flex;
@@ -2606,6 +2390,15 @@ label > details.dropdown {
2606
2390
  /**
2607
2391
  * Loading ([aria-busy=true])
2608
2392
  */
2393
+ :where(:scope),
2394
+ :host {
2395
+ --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");
2396
+ }
2397
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
2398
+ :host {
2399
+ --pico-loading-spinner-opacity: 0.5;
2400
+ }
2401
+
2609
2402
  [aria-busy="true"]:not(input, select, textarea, html, form) {
2610
2403
  white-space: nowrap;
2611
2404
  }
@@ -2638,6 +2431,19 @@ a[aria-busy="true"] {
2638
2431
  /**
2639
2432
  * Modal (<dialog>)
2640
2433
  */
2434
+ :where(:scope),
2435
+ :host {
2436
+ --pico-modal-overlay-backdrop-filter: blur(0.375rem);
2437
+ --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");
2438
+ }
2439
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
2440
+ :host {
2441
+ --pico-modal-overlay-background-color: light-dark(
2442
+ rgba(232, 234, 237, 0.75),
2443
+ rgba(7.5, 8.5, 10, 0.75)
2444
+ );
2445
+ }
2446
+
2641
2447
  :scope,
2642
2448
  :host {
2643
2449
  --pico-scrollbar-width: 0px;
@@ -2780,6 +2586,12 @@ dialog[open="false"] {
2780
2586
  /**
2781
2587
  * Nav
2782
2588
  */
2589
+ :where(:scope),
2590
+ :host {
2591
+ --pico-nav-element-spacing-horizontal: 0.5rem;
2592
+ --pico-nav-breadcrumb-divider: ">";
2593
+ }
2594
+
2783
2595
  :where(nav li)::before {
2784
2596
  float: left;
2785
2597
  content: "​";
@@ -2889,6 +2701,12 @@ aside li [role="button"] {
2889
2701
  /**
2890
2702
  * Progress
2891
2703
  */
2704
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
2705
+ :host {
2706
+ --pico-progress-background-color: light-dark(#dfe3eb, #202632);
2707
+ --pico-progress-color: var(--pico-primary-background);
2708
+ }
2709
+
2892
2710
  progress {
2893
2711
  display: inline-block;
2894
2712
  vertical-align: baseline;
@@ -2957,6 +2775,12 @@ progress::-moz-progress-bar {
2957
2775
  /**
2958
2776
  * Tooltip ([data-tooltip])
2959
2777
  */
2778
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
2779
+ :host {
2780
+ --pico-tooltip-background-color: var(--pico-contrast-background);
2781
+ --pico-tooltip-color: var(--pico-contrast-inverse);
2782
+ }
2783
+
2960
2784
  [data-tooltip] {
2961
2785
  position: relative;
2962
2786
  }
@@ -3153,3 +2977,12 @@ progress::-moz-progress-bar {
3153
2977
  transition-duration: 0s !important;
3154
2978
  }
3155
2979
  }
2980
+ /**
2981
+ * Landmarks
2982
+ * Included in pico.css and blades.ninja.css; not in blades.css
2983
+ */
2984
+ body > header,
2985
+ body > main,
2986
+ body > footer {
2987
+ padding-block: var(--pico-block-spacing-vertical);
2988
+ }