@anyblades/blades 2.4.8 → 3.0.0-alpha.1

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