@anyblades/blades 3.1.0-alpha.2 → 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 (87) hide show
  1. package/README.md +46 -15
  2. package/css/blades.css +158 -597
  3. package/css/blades.min.css +38 -12
  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} +441 -16
  9. package/css/{pico.layered.min.css → layered/blades.layered.min.css} +74 -8
  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 +16 -15
  48. package/css/pico.conditional.min.css +7 -7
  49. package/css/pico.css +16 -15
  50. package/css/pico.min.css +7 -7
  51. package/package.json +15 -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 +6 -5
  63. package/src/pico/content/_button.css +1 -1
  64. package/src/pico/layout/_document.css +9 -0
  65. package/src/pico/layout/_index.css +0 -1
  66. package/src/pico/layout/_landmarks.css +1 -9
  67. package/src/pico.css +1 -0
  68. package/css/blades.standalone.css +0 -860
  69. package/css/blades.standalone.min.css +0 -37
  70. package/css/ninja.css +0 -83
  71. package/css/ninja.min.css +0 -5
  72. package/src/blades.standalone.css +0 -2
  73. package/src/standalone/_core.css +0 -32
  74. package/src/standalone/_utilities.css +0 -55
  75. package/src/standalone/forms/_float-label.css +0 -2
  76. /package/src/{standalone/content → blades}/_code.css +0 -0
  77. /package/src/{standalone/layout → blades}/_columns.css +0 -0
  78. /package/src/{standalone/components/_icon-helper.css → blades/_icon.css} +0 -0
  79. /package/src/{standalone/components → blades}/_timeline.css +0 -0
  80. /package/src/{standalone → blades}/_variables.css +0 -0
  81. /package/src/{standalone/forms/_float-label.core.css → blades/float-label/_core.css} +0 -0
  82. /package/src/{standalone/layout/_breakout.css → ninja/_container-breakout.css} +0 -0
  83. /package/src/{standalone/content/_typography.css → ninja/_heading-anchor.css} +0 -0
  84. /package/src/{standalone/content/_list.css → ninja/_list-helpers.css} +0 -0
  85. /package/src/{standalone/layout/_scroller.css → ninja/_page-anchors.css} +0 -0
  86. /package/src/{standalone/content/_table.css → ninja/_table-helpers.css} +0 -0
  87. /package/src/{standalone/content → ninja}/_table-responsive.css +0 -0
@@ -0,0 +1,778 @@
1
+ @layer blades {
2
+ /**
3
+ * Basics form elements
4
+ */
5
+ input,
6
+ optgroup,
7
+ select,
8
+ textarea {
9
+ margin: 0;
10
+ font-size: 1rem;
11
+ line-height: var(--pico-line-height);
12
+ font-family: inherit;
13
+ letter-spacing: inherit;
14
+ }
15
+
16
+ input {
17
+ overflow: visible;
18
+ }
19
+
20
+ select {
21
+ text-transform: none;
22
+ }
23
+
24
+ legend {
25
+ max-width: 100%;
26
+ padding: 0;
27
+ color: inherit;
28
+ white-space: normal;
29
+ }
30
+
31
+ textarea {
32
+ overflow: auto;
33
+ }
34
+
35
+ [type="checkbox"],
36
+ [type="radio"] {
37
+ padding: 0;
38
+ }
39
+
40
+ ::-webkit-inner-spin-button,
41
+ ::-webkit-outer-spin-button {
42
+ height: auto;
43
+ }
44
+
45
+ [type="search"] {
46
+ -webkit-appearance: textfield;
47
+ outline-offset: -2px;
48
+ }
49
+
50
+ [type="search"]::-webkit-search-decoration {
51
+ -webkit-appearance: none;
52
+ }
53
+
54
+ ::-webkit-file-upload-button {
55
+ -webkit-appearance: button;
56
+ font: inherit;
57
+ }
58
+
59
+ ::-moz-focus-inner {
60
+ padding: 0;
61
+ border-style: none;
62
+ }
63
+
64
+ :-moz-focusring {
65
+ outline: none;
66
+ }
67
+
68
+ :-moz-ui-invalid {
69
+ box-shadow: none;
70
+ }
71
+
72
+ ::-ms-expand {
73
+ display: none;
74
+ }
75
+
76
+ [type="file"],
77
+ [type="range"] {
78
+ padding: 0;
79
+ border-width: 0;
80
+ }
81
+
82
+ input:not([type="checkbox"], [type="radio"], [type="range"]) {
83
+ height: calc(
84
+ 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
85
+ var(--pico-border-width) * 2
86
+ );
87
+ }
88
+
89
+ fieldset {
90
+ width: 100%;
91
+ min-width: 0;
92
+ margin: 0;
93
+ margin-bottom: var(--pico-spacing);
94
+ padding: 0;
95
+ border: 0;
96
+ }
97
+
98
+ label,
99
+ fieldset legend {
100
+ display: block;
101
+ margin-bottom: calc(var(--pico-spacing) * 0.375);
102
+ color: var(--pico-color);
103
+ font-weight: var(--pico-form-label-font-weight, var(--pico-font-weight));
104
+ }
105
+
106
+ fieldset legend {
107
+ margin-bottom: calc(var(--pico-spacing) * 0.5);
108
+ }
109
+
110
+ input:not([type="checkbox"], [type="radio"]),
111
+ button[type="submit"],
112
+ select,
113
+ textarea {
114
+ width: 100%;
115
+ }
116
+
117
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]),
118
+ select,
119
+ textarea {
120
+ -webkit-appearance: none;
121
+ -moz-appearance: none;
122
+ appearance: none;
123
+ padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
124
+ }
125
+
126
+ input,
127
+ select,
128
+ textarea {
129
+ --pico-background-color: var(--pico-form-element-background-color);
130
+ --pico-border-color: var(--pico-form-element-border-color);
131
+ --pico-color: var(--pico-form-element-color);
132
+ --pico-box-shadow: none;
133
+ border: var(--pico-border-width) solid var(--pico-border-color);
134
+ border-radius: var(--pico-border-radius);
135
+ outline: none;
136
+ background-color: var(--pico-background-color);
137
+ box-shadow: var(--pico-box-shadow);
138
+ color: var(--pico-color);
139
+ font-weight: var(--pico-font-weight);
140
+ transition:
141
+ background-color var(--pico-transition),
142
+ border-color var(--pico-transition),
143
+ color var(--pico-transition),
144
+ box-shadow var(--pico-transition);
145
+ }
146
+
147
+ input:not(
148
+ [type="submit"],
149
+ [type="button"],
150
+ [type="reset"],
151
+ [type="checkbox"],
152
+ [type="radio"],
153
+ [readonly]
154
+ ):is(:active, :focus),
155
+ :where(select, textarea):not([readonly]):is(:active, :focus) {
156
+ --pico-background-color: var(--pico-form-element-active-background-color);
157
+ }
158
+
159
+ input:not([type="submit"], [type="button"], [type="reset"], [role="switch"], [readonly]):is(
160
+ :active,
161
+ :focus
162
+ ),
163
+ :where(select, textarea):not([readonly]):is(:active, :focus) {
164
+ --pico-border-color: var(--pico-form-element-active-border-color);
165
+ }
166
+
167
+ input:not(
168
+ [type="submit"],
169
+ [type="button"],
170
+ [type="reset"],
171
+ [type="range"],
172
+ [type="file"],
173
+ [readonly]
174
+ ):focus,
175
+ :where(select, textarea):not([readonly]):focus {
176
+ --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
177
+ }
178
+
179
+ input:not([type="submit"], [type="button"], [type="reset"])[disabled],
180
+ select[disabled],
181
+ textarea[disabled],
182
+ label[aria-disabled="true"],
183
+ :where(fieldset[disabled])
184
+ :is(input:not([type="submit"], [type="button"], [type="reset"]), select, textarea) {
185
+ opacity: var(--pico-form-element-disabled-opacity);
186
+ pointer-events: none;
187
+ }
188
+
189
+ label[aria-disabled="true"] input[disabled] {
190
+ opacity: 1;
191
+ }
192
+
193
+ :where(input, select, textarea):not(
194
+ [type="checkbox"],
195
+ [type="radio"],
196
+ [type="date"],
197
+ [type="datetime-local"],
198
+ [type="month"],
199
+ [type="time"],
200
+ [type="week"],
201
+ [type="range"]
202
+ )[aria-invalid] {
203
+ padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
204
+ padding-left: var(--pico-form-element-spacing-horizontal);
205
+ padding-inline-start: var(--pico-form-element-spacing-horizontal) !important;
206
+ padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem) !important;
207
+ background-position: center right 0.75rem;
208
+ background-size: 1rem auto;
209
+ background-repeat: no-repeat;
210
+ }
211
+ :where(input, select, textarea):not(
212
+ [type="checkbox"],
213
+ [type="radio"],
214
+ [type="date"],
215
+ [type="datetime-local"],
216
+ [type="month"],
217
+ [type="time"],
218
+ [type="week"],
219
+ [type="range"]
220
+ )[aria-invalid="false"]:not(select) {
221
+ background-image: var(--pico-icon-valid);
222
+ }
223
+ :where(input, select, textarea):not(
224
+ [type="checkbox"],
225
+ [type="radio"],
226
+ [type="date"],
227
+ [type="datetime-local"],
228
+ [type="month"],
229
+ [type="time"],
230
+ [type="week"],
231
+ [type="range"]
232
+ )[aria-invalid="true"]:not(select) {
233
+ background-image: var(--pico-icon-invalid);
234
+ }
235
+ :where(input, select, textarea)[aria-invalid="false"] {
236
+ --pico-border-color: var(--pico-form-element-valid-border-color);
237
+ }
238
+ :where(input, select, textarea)[aria-invalid="false"]:is(:active, :focus) {
239
+ --pico-border-color: var(--pico-form-element-valid-active-border-color) !important;
240
+ }
241
+ :where(input, select, textarea)[aria-invalid="false"]:is(:active, :focus):not(
242
+ [type="checkbox"],
243
+ [type="radio"]
244
+ ) {
245
+ --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color) !important;
246
+ }
247
+ :where(input, select, textarea)[aria-invalid="true"] {
248
+ --pico-border-color: var(--pico-form-element-invalid-border-color);
249
+ }
250
+ :where(input, select, textarea)[aria-invalid="true"]:is(:active, :focus) {
251
+ --pico-border-color: var(--pico-form-element-invalid-active-border-color) !important;
252
+ }
253
+ :where(input, select, textarea)[aria-invalid="true"]:is(:active, :focus):not(
254
+ [type="checkbox"],
255
+ [type="radio"]
256
+ ) {
257
+ --pico-box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color) !important;
258
+ }
259
+
260
+ [dir="rtl"]
261
+ :where(input, select, textarea):not([type="checkbox"], [type="radio"]):is(
262
+ [aria-invalid],
263
+ [aria-invalid="true"],
264
+ [aria-invalid="false"]
265
+ ) {
266
+ background-position: center left 0.75rem;
267
+ }
268
+
269
+ input::placeholder,
270
+ input::-webkit-input-placeholder,
271
+ textarea::placeholder,
272
+ textarea::-webkit-input-placeholder,
273
+ select:invalid {
274
+ color: var(--pico-form-element-placeholder-color);
275
+ opacity: 1;
276
+ }
277
+
278
+ input:not([type="checkbox"], [type="radio"]),
279
+ select,
280
+ textarea {
281
+ margin-bottom: var(--pico-spacing);
282
+ }
283
+
284
+ select::-ms-expand {
285
+ border: 0;
286
+ background-color: transparent;
287
+ }
288
+ select:not([multiple], [size]) {
289
+ padding-right: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
290
+ padding-left: var(--pico-form-element-spacing-horizontal);
291
+ padding-inline-start: var(--pico-form-element-spacing-horizontal);
292
+ padding-inline-end: calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);
293
+ background-image: var(--pico-icon-chevron);
294
+ background-position: center right 0.75rem;
295
+ background-size: 1rem auto;
296
+ background-repeat: no-repeat;
297
+ }
298
+ select[multiple] option:checked {
299
+ background: var(--pico-form-element-selected-background-color);
300
+ color: var(--pico-form-element-color);
301
+ }
302
+
303
+ [dir="rtl"] select:not([multiple], [size]) {
304
+ background-position: center left 0.75rem;
305
+ }
306
+
307
+ textarea {
308
+ display: block;
309
+ resize: vertical;
310
+ }
311
+ textarea[aria-invalid] {
312
+ --pico-icon-height: calc(
313
+ 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
314
+ var(--pico-border-width) * 2
315
+ );
316
+ background-position: top right 0.75rem !important;
317
+ background-size: 1rem var(--pico-icon-height) !important;
318
+ }
319
+
320
+ :where(input, select, textarea, fieldset, .grid) + small {
321
+ display: block;
322
+ width: 100%;
323
+ margin-top: calc(var(--pico-spacing) * -0.75);
324
+ margin-bottom: var(--pico-spacing);
325
+ color: var(--pico-muted-color);
326
+ }
327
+ :where(input, select, textarea, fieldset, .grid)[aria-invalid="false"] + small {
328
+ color: var(--pico-ins-color);
329
+ }
330
+ :where(input, select, textarea, fieldset, .grid)[aria-invalid="true"] + small {
331
+ color: var(--pico-del-color);
332
+ }
333
+
334
+ label > :where(input, select, textarea) {
335
+ margin-top: calc(var(--pico-spacing) * 0.25);
336
+ }
337
+
338
+ /**
339
+ * Checkboxes, Radios and Switches
340
+ */
341
+ :where(:scope),
342
+ :host {
343
+ --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");
344
+ --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");
345
+ }
346
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
347
+ :host {
348
+ --pico-switch-background-color: light-dark(#bfc7d9, #333c4e);
349
+ --pico-switch-checked-background-color: var(--pico-primary-background);
350
+ --pico-switch-color: #fff;
351
+ --pico-switch-thumb-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
352
+ }
353
+
354
+ label:has([type="checkbox"], [type="radio"]) {
355
+ width: -moz-fit-content;
356
+ width: fit-content;
357
+ cursor: pointer;
358
+ }
359
+
360
+ [type="checkbox"],
361
+ [type="radio"] {
362
+ -webkit-appearance: none;
363
+ -moz-appearance: none;
364
+ appearance: none;
365
+ width: 1.25em;
366
+ height: 1.25em;
367
+ margin-top: -0.125em;
368
+ margin-inline-end: 0.5em;
369
+ border-width: var(--pico-border-width);
370
+ vertical-align: middle;
371
+ cursor: pointer;
372
+ }
373
+ [type="checkbox"]::-ms-check,
374
+ [type="radio"]::-ms-check {
375
+ display: none;
376
+ }
377
+ [type="checkbox"]:checked,
378
+ [type="checkbox"]:checked:active,
379
+ [type="checkbox"]:checked:focus,
380
+ [type="radio"]:checked,
381
+ [type="radio"]:checked:active,
382
+ [type="radio"]:checked:focus {
383
+ --pico-background-color: var(--pico-primary-background);
384
+ --pico-border-color: var(--pico-primary-border);
385
+ background-image: var(--pico-icon-checkbox);
386
+ background-position: center;
387
+ background-size: 0.75em auto;
388
+ background-repeat: no-repeat;
389
+ }
390
+ [type="checkbox"] ~ label,
391
+ [type="radio"] ~ label {
392
+ display: inline-block;
393
+ margin-bottom: 0;
394
+ cursor: pointer;
395
+ }
396
+ [type="checkbox"] ~ label:not(:last-of-type),
397
+ [type="radio"] ~ label:not(:last-of-type) {
398
+ margin-inline-end: 1em;
399
+ }
400
+
401
+ [type="checkbox"]:indeterminate {
402
+ --pico-background-color: var(--pico-primary-background);
403
+ --pico-border-color: var(--pico-primary-border);
404
+ background-image: var(--pico-icon-minus);
405
+ background-position: center;
406
+ background-size: 0.75em auto;
407
+ background-repeat: no-repeat;
408
+ }
409
+
410
+ [type="radio"] {
411
+ border-radius: 50%;
412
+ }
413
+ [type="radio"]:checked,
414
+ [type="radio"]:checked:active,
415
+ [type="radio"]:checked:focus {
416
+ --pico-background-color: var(--pico-primary-inverse);
417
+ border-width: 0.35em;
418
+ background-image: none;
419
+ }
420
+
421
+ [type="checkbox"][role="switch"] {
422
+ --pico-background-color: var(--pico-switch-background-color);
423
+ --pico-color: var(--pico-switch-color);
424
+ width: 2.25em;
425
+ height: 1.25em;
426
+ border: var(--pico-border-width) solid var(--pico-border-color);
427
+ border-radius: 1.25em;
428
+ background-color: var(--pico-background-color);
429
+ line-height: 1.25em;
430
+ }
431
+ [type="checkbox"][role="switch"]:not([aria-invalid]) {
432
+ --pico-border-color: var(--pico-switch-background-color);
433
+ }
434
+ [type="checkbox"][role="switch"]:before {
435
+ display: block;
436
+ aspect-ratio: 1;
437
+ height: 100%;
438
+ border-radius: 50%;
439
+ background-color: var(--pico-color);
440
+ box-shadow: var(--pico-switch-thumb-box-shadow);
441
+ content: "";
442
+ transition: margin 0.1s ease-in-out;
443
+ }
444
+ [type="checkbox"][role="switch"]:focus {
445
+ --pico-background-color: var(--pico-switch-background-color);
446
+ --pico-border-color: var(--pico-switch-background-color);
447
+ }
448
+ [type="checkbox"][role="switch"]:checked {
449
+ --pico-background-color: var(--pico-switch-checked-background-color);
450
+ --pico-border-color: var(--pico-switch-checked-background-color);
451
+ background-image: none;
452
+ }
453
+ [type="checkbox"][role="switch"]:checked::before {
454
+ margin-inline-start: calc(2.25em - 1.25em);
455
+ }
456
+ [type="checkbox"][role="switch"][disabled] {
457
+ --pico-background-color: var(--pico-border-color);
458
+ }
459
+
460
+ [type="checkbox"][aria-invalid="false"]:checked,
461
+ [type="checkbox"][aria-invalid="false"]:checked:active,
462
+ [type="checkbox"][aria-invalid="false"]:checked:focus,
463
+ [type="checkbox"][role="switch"][aria-invalid="false"]:checked,
464
+ [type="checkbox"][role="switch"][aria-invalid="false"]:checked:active,
465
+ [type="checkbox"][role="switch"][aria-invalid="false"]:checked:focus {
466
+ --pico-background-color: var(--pico-form-element-valid-border-color);
467
+ }
468
+ [type="checkbox"]:checked[aria-invalid="true"],
469
+ [type="checkbox"]:checked:active[aria-invalid="true"],
470
+ [type="checkbox"]:checked:focus[aria-invalid="true"],
471
+ [type="checkbox"][role="switch"]:checked[aria-invalid="true"],
472
+ [type="checkbox"][role="switch"]:checked:active[aria-invalid="true"],
473
+ [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
474
+ --pico-background-color: var(--pico-form-element-invalid-border-color);
475
+ }
476
+
477
+ [type="checkbox"][aria-invalid="false"]:checked,
478
+ [type="checkbox"][aria-invalid="false"]:checked:active,
479
+ [type="checkbox"][aria-invalid="false"]:checked:focus,
480
+ [type="radio"][aria-invalid="false"]:checked,
481
+ [type="radio"][aria-invalid="false"]:checked:active,
482
+ [type="radio"][aria-invalid="false"]:checked:focus,
483
+ [type="checkbox"][role="switch"][aria-invalid="false"]:checked,
484
+ [type="checkbox"][role="switch"][aria-invalid="false"]:checked:active,
485
+ [type="checkbox"][role="switch"][aria-invalid="false"]:checked:focus {
486
+ --pico-border-color: var(--pico-form-element-valid-border-color);
487
+ }
488
+ [type="checkbox"]:checked[aria-invalid="true"],
489
+ [type="checkbox"]:checked:active[aria-invalid="true"],
490
+ [type="checkbox"]:checked:focus[aria-invalid="true"],
491
+ [type="radio"]:checked[aria-invalid="true"],
492
+ [type="radio"]:checked:active[aria-invalid="true"],
493
+ [type="radio"]:checked:focus[aria-invalid="true"],
494
+ [type="checkbox"][role="switch"]:checked[aria-invalid="true"],
495
+ [type="checkbox"][role="switch"]:checked:active[aria-invalid="true"],
496
+ [type="checkbox"][role="switch"]:checked:focus[aria-invalid="true"] {
497
+ --pico-border-color: var(--pico-form-element-invalid-border-color);
498
+ }
499
+ /**
500
+ * Input type color
501
+ */
502
+ [type="color"]::-webkit-color-swatch-wrapper {
503
+ padding: 0;
504
+ }
505
+ [type="color"]::-moz-focus-inner {
506
+ padding: 0;
507
+ }
508
+ [type="color"]::-webkit-color-swatch {
509
+ border: 0;
510
+ border-radius: calc(var(--pico-border-radius) * 0.5);
511
+ }
512
+ [type="color"]::-moz-color-swatch {
513
+ border: 0;
514
+ border-radius: calc(var(--pico-border-radius) * 0.5);
515
+ }
516
+ /**
517
+ * Input type datetime
518
+ */
519
+ :where(:scope),
520
+ :host {
521
+ --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");
522
+ --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");
523
+ }
524
+
525
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]):is(
526
+ [type="date"],
527
+ [type="datetime-local"],
528
+ [type="month"],
529
+ [type="time"],
530
+ [type="week"]
531
+ ) {
532
+ --pico-icon-position: 0.75rem;
533
+ --pico-icon-width: 1rem;
534
+ min-width: 0;
535
+ padding-right: calc(var(--pico-icon-width) + var(--pico-icon-position));
536
+ background-image: var(--pico-icon-date);
537
+ background-position: center right var(--pico-icon-position);
538
+ background-size: var(--pico-icon-width) auto;
539
+ background-repeat: no-repeat;
540
+ }
541
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="time"] {
542
+ background-image: var(--pico-icon-time);
543
+ }
544
+
545
+ [type="date"]::-webkit-calendar-picker-indicator,
546
+ [type="datetime-local"]::-webkit-calendar-picker-indicator,
547
+ [type="month"]::-webkit-calendar-picker-indicator,
548
+ [type="time"]::-webkit-calendar-picker-indicator,
549
+ [type="week"]::-webkit-calendar-picker-indicator {
550
+ width: var(--pico-icon-width);
551
+ margin-right: calc(var(--pico-icon-width) * -1);
552
+ margin-left: var(--pico-icon-position);
553
+ opacity: 0;
554
+ }
555
+
556
+ @-moz-document url-prefix() {
557
+ [type="date"],
558
+ [type="datetime-local"],
559
+ [type="month"],
560
+ [type="time"],
561
+ [type="week"] {
562
+ padding-right: var(--pico-form-element-spacing-horizontal) !important;
563
+ background-image: none !important;
564
+ }
565
+ }
566
+ [dir="rtl"]
567
+ :is([type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"]) {
568
+ text-align: end;
569
+ }
570
+ /**
571
+ * Input type file
572
+ */
573
+ [type="file"] {
574
+ --pico-color: var(--pico-muted-color);
575
+ margin-left: calc(var(--pico-outline-width) * -1);
576
+ padding: calc(var(--pico-form-element-spacing-vertical) * 0.5) 0;
577
+ padding-left: var(--pico-outline-width);
578
+ border: 0;
579
+ border-radius: 0;
580
+ background: none;
581
+ }
582
+ [type="file"]::file-selector-button {
583
+ margin-right: calc(var(--pico-spacing) / 2);
584
+ padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
585
+ var(--pico-form-element-spacing-horizontal);
586
+ }
587
+ [type="file"]:is(:hover, :active, :focus)::file-selector-button {
588
+ --pico-background-color: var(--pico-secondary-hover-background);
589
+ --pico-border-color: var(--pico-secondary-hover-border);
590
+ }
591
+ [type="file"]:focus::file-selector-button {
592
+ --pico-box-shadow:
593
+ var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
594
+ 0 0 0 var(--pico-outline-width) var(--pico-secondary-focus);
595
+ }
596
+ /**
597
+ * Input type range
598
+ */
599
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
600
+ :host {
601
+ --pico-range-border-color: light-dark(#dfe3eb, #202632);
602
+ --pico-range-active-border-color: light-dark(#bfc7d9, #2a3140);
603
+ --pico-range-thumb-border-color: var(--pico-background-color);
604
+ --pico-range-thumb-color: var(--pico-secondary-background);
605
+ --pico-range-thumb-active-color: var(--pico-primary-background);
606
+ }
607
+
608
+ [type="range"] {
609
+ -webkit-appearance: none;
610
+ -moz-appearance: none;
611
+ appearance: none;
612
+ width: 100%;
613
+ height: 1.25rem;
614
+ background: none;
615
+ }
616
+ [type="range"]::-webkit-slider-runnable-track {
617
+ width: 100%;
618
+ height: 0.375rem;
619
+ border-radius: var(--pico-border-radius);
620
+ background-color: var(--pico-range-border-color);
621
+ -webkit-transition:
622
+ background-color var(--pico-transition),
623
+ box-shadow var(--pico-transition);
624
+ transition:
625
+ background-color var(--pico-transition),
626
+ box-shadow var(--pico-transition);
627
+ }
628
+ [type="range"]::-moz-range-track {
629
+ width: 100%;
630
+ height: 0.375rem;
631
+ border-radius: var(--pico-border-radius);
632
+ background-color: var(--pico-range-border-color);
633
+ -moz-transition:
634
+ background-color var(--pico-transition),
635
+ box-shadow var(--pico-transition);
636
+ transition:
637
+ background-color var(--pico-transition),
638
+ box-shadow var(--pico-transition);
639
+ }
640
+ [type="range"]::-ms-track {
641
+ width: 100%;
642
+ height: 0.375rem;
643
+ border-radius: var(--pico-border-radius);
644
+ background-color: var(--pico-range-border-color);
645
+ -ms-transition:
646
+ background-color var(--pico-transition),
647
+ box-shadow var(--pico-transition);
648
+ transition:
649
+ background-color var(--pico-transition),
650
+ box-shadow var(--pico-transition);
651
+ }
652
+ [type="range"]::-webkit-slider-thumb {
653
+ -webkit-appearance: none;
654
+ width: 1.25rem;
655
+ height: 1.25rem;
656
+ margin-top: -0.4375rem;
657
+ border: 2px solid var(--pico-range-thumb-border-color);
658
+ border-radius: 50%;
659
+ background-color: var(--pico-range-thumb-color);
660
+ cursor: pointer;
661
+ -webkit-transition:
662
+ background-color var(--pico-transition),
663
+ transform var(--pico-transition);
664
+ transition:
665
+ background-color var(--pico-transition),
666
+ transform var(--pico-transition);
667
+ }
668
+ [type="range"]::-moz-range-thumb {
669
+ -webkit-appearance: none;
670
+ width: 1.25rem;
671
+ height: 1.25rem;
672
+ margin-top: -0.4375rem;
673
+ border: 2px solid var(--pico-range-thumb-border-color);
674
+ border-radius: 50%;
675
+ background-color: var(--pico-range-thumb-color);
676
+ cursor: pointer;
677
+ -moz-transition:
678
+ background-color var(--pico-transition),
679
+ transform var(--pico-transition);
680
+ transition:
681
+ background-color var(--pico-transition),
682
+ transform var(--pico-transition);
683
+ }
684
+ [type="range"]::-ms-thumb {
685
+ -webkit-appearance: none;
686
+ width: 1.25rem;
687
+ height: 1.25rem;
688
+ margin-top: -0.4375rem;
689
+ border: 2px solid var(--pico-range-thumb-border-color);
690
+ border-radius: 50%;
691
+ background-color: var(--pico-range-thumb-color);
692
+ cursor: pointer;
693
+ -ms-transition:
694
+ background-color var(--pico-transition),
695
+ transform var(--pico-transition);
696
+ transition:
697
+ background-color var(--pico-transition),
698
+ transform var(--pico-transition);
699
+ }
700
+ [type="range"]:active,
701
+ [type="range"]:focus-within {
702
+ --pico-range-border-color: var(--pico-range-active-border-color);
703
+ --pico-range-thumb-color: var(--pico-range-thumb-active-color);
704
+ }
705
+ [type="range"]:active::-webkit-slider-thumb {
706
+ transform: scale(1.25);
707
+ }
708
+ [type="range"]:active::-moz-range-thumb {
709
+ transform: scale(1.25);
710
+ }
711
+ [type="range"]:active::-ms-thumb {
712
+ transform: scale(1.25);
713
+ }
714
+ /**
715
+ * Input type search
716
+ */
717
+ :where(:scope),
718
+ :host {
719
+ --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");
720
+ }
721
+
722
+ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type="search"] {
723
+ padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);
724
+ background-image: var(--pico-icon-search);
725
+ background-position: center left calc(var(--pico-form-element-spacing-horizontal) + 0.125rem);
726
+ background-size: 1rem auto;
727
+ background-repeat: no-repeat;
728
+ }
729
+ input:not(
730
+ [type="checkbox"],
731
+ [type="radio"],
732
+ [type="range"],
733
+ [type="file"]
734
+ )[type="search"][aria-invalid] {
735
+ padding-inline-start: calc(var(--pico-form-element-spacing-horizontal) + 1.75rem) !important;
736
+ background-position:
737
+ center left 1.125rem,
738
+ center right 0.75rem;
739
+ }
740
+ input:not(
741
+ [type="checkbox"],
742
+ [type="radio"],
743
+ [type="range"],
744
+ [type="file"]
745
+ )[type="search"][aria-invalid="false"] {
746
+ background-image: var(--pico-icon-search), var(--pico-icon-valid);
747
+ }
748
+ input:not(
749
+ [type="checkbox"],
750
+ [type="radio"],
751
+ [type="range"],
752
+ [type="file"]
753
+ )[type="search"][aria-invalid="true"] {
754
+ background-image: var(--pico-icon-search), var(--pico-icon-invalid);
755
+ }
756
+
757
+ [dir="rtl"]
758
+ :where(input):not(
759
+ [type="checkbox"],
760
+ [type="radio"],
761
+ [type="range"],
762
+ [type="file"]
763
+ )[type="search"] {
764
+ background-position: center right 1.125rem;
765
+ }
766
+ [dir="rtl"]
767
+ :where(input):not(
768
+ [type="checkbox"],
769
+ [type="radio"],
770
+ [type="range"],
771
+ [type="file"]
772
+ )[type="search"][aria-invalid] {
773
+ background-position:
774
+ center right 1.125rem,
775
+ center left 0.75rem;
776
+ }
777
+
778
+ }