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