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

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 (93) hide show
  1. package/README.md +48 -23
  2. package/css/blades.css +301 -593
  3. package/css/blades.min.css +4 -148
  4. package/css/blades.ninja.css +4204 -0
  5. package/css/blades.ninja.min.css +12 -0
  6. package/css/float-label.css +207 -0
  7. package/css/float-label.min.css +6 -0
  8. package/css/{pico.layered.css → layered/blades.layered.css} +589 -17
  9. package/css/layered/blades.layered.min.css +14 -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 +61 -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 +1099 -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 +34 -16
  48. package/css/pico.conditional.min.css +2 -111
  49. package/css/pico.css +34 -16
  50. package/css/pico.min.css +2 -111
  51. package/package.json +16 -12
  52. package/src/blades/_compact.css +51 -0
  53. package/src/blades/_dropdown-popover.css +107 -0
  54. package/src/blades/_index.css +28 -0
  55. package/src/blades/_modal.css +26 -0
  56. package/src/blades/float-label/_index.css +2 -0
  57. package/src/{standalone/forms/_float-label.theme.css → blades/float-label/_theme.css} +5 -1
  58. package/src/blades.css +2 -2
  59. package/src/blades.ninja.css +3 -0
  60. package/src/float-label.css +1 -0
  61. package/src/ninja/LICENSE +22 -0
  62. package/src/ninja/README.md +1 -0
  63. package/src/ninja/_index.css +19 -0
  64. package/src/{standalone → ninja}/_theme.css +0 -2
  65. package/src/{ninja.css → ninja/_utilities.css} +55 -6
  66. package/src/pico/_variables.css +6 -5
  67. package/src/pico/components/_loading.css +27 -1
  68. package/src/pico/content/_button.css +1 -1
  69. package/src/pico/layout/_document.css +9 -0
  70. package/src/pico/layout/_index.css +0 -1
  71. package/src/pico/layout/_landmarks.css +1 -9
  72. package/src/pico.css +1 -0
  73. package/css/blades.standalone.css +0 -860
  74. package/css/blades.standalone.min.css +0 -37
  75. package/css/ninja.css +0 -83
  76. package/css/ninja.min.css +0 -5
  77. package/css/pico.layered.min.css +0 -118
  78. package/src/blades.standalone.css +0 -2
  79. package/src/standalone/_core.css +0 -32
  80. package/src/standalone/_utilities.css +0 -55
  81. package/src/standalone/forms/_float-label.css +0 -2
  82. /package/src/{standalone/content → blades}/_code.css +0 -0
  83. /package/src/{standalone/layout → blades}/_columns.css +0 -0
  84. /package/src/{standalone/components/_icon-helper.css → blades/_icon.css} +0 -0
  85. /package/src/{standalone/components → blades}/_timeline.css +0 -0
  86. /package/src/{standalone → blades}/_variables.css +0 -0
  87. /package/src/{standalone/forms/_float-label.core.css → blades/float-label/_core.css} +0 -0
  88. /package/src/{standalone/layout/_breakout.css → ninja/_container-breakout.css} +0 -0
  89. /package/src/{standalone/content/_typography.css → ninja/_heading-anchor.css} +0 -0
  90. /package/src/{standalone/content/_list.css → ninja/_list-helpers.css} +0 -0
  91. /package/src/{standalone/layout/_scroller.css → ninja/_page-anchors.css} +0 -0
  92. /package/src/{standalone/content/_table.css → ninja/_table-helpers.css} +0 -0
  93. /package/src/{standalone/content → ninja}/_table-responsive.css +0 -0
@@ -0,0 +1,1099 @@
1
+ @layer blades {
2
+ /**
3
+ * Accordion (<details>)
4
+ */
5
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
6
+ :host {
7
+ --pico-accordion-border-color: var(--pico-muted-border-color);
8
+ --pico-accordion-active-summary-color: var(--pico-primary-hover);
9
+ --pico-accordion-close-summary-color: var(--pico-color);
10
+ --pico-accordion-open-summary-color: var(--pico-muted-color);
11
+ }
12
+
13
+ details {
14
+ display: block;
15
+ margin-bottom: var(--pico-spacing);
16
+ }
17
+ details summary {
18
+ line-height: 1rem;
19
+ list-style-type: none;
20
+ cursor: pointer;
21
+ transition: color var(--pico-transition);
22
+ }
23
+ details summary:not([role]) {
24
+ color: var(--pico-accordion-close-summary-color);
25
+ }
26
+ details summary::-webkit-details-marker {
27
+ display: none;
28
+ }
29
+ details summary::marker {
30
+ display: none;
31
+ }
32
+ details summary::-moz-list-bullet {
33
+ list-style-type: none;
34
+ }
35
+ details summary::after {
36
+ display: block;
37
+ width: 1rem;
38
+ height: 1rem;
39
+ margin-inline-start: calc(var(--pico-spacing, 1rem) * 0.5);
40
+ float: right;
41
+ transform: rotate(-90deg);
42
+ background-image: var(--pico-icon-chevron);
43
+ background-position: right center;
44
+ background-size: 1rem auto;
45
+ background-repeat: no-repeat;
46
+ content: "";
47
+ transition: transform var(--pico-transition);
48
+ }
49
+ details summary:focus {
50
+ outline: none;
51
+ }
52
+ details summary:focus:not([role]) {
53
+ color: var(--pico-accordion-active-summary-color);
54
+ }
55
+ details summary:focus-visible:not([role]) {
56
+ outline: var(--pico-outline-width) solid var(--pico-primary-focus);
57
+ outline-offset: calc(var(--pico-spacing, 1rem) * 0.5);
58
+ color: var(--pico-primary);
59
+ }
60
+ details summary[role="button"] {
61
+ width: 100%;
62
+ text-align: start;
63
+ }
64
+ details summary[role="button"]::after {
65
+ height: calc(1rem * var(--pico-line-height, 1.5));
66
+ }
67
+ details[open] > summary {
68
+ margin-bottom: var(--pico-spacing);
69
+ }
70
+ details[open] > summary:not([role]):not(:focus) {
71
+ color: var(--pico-accordion-open-summary-color);
72
+ }
73
+ details[open] > summary::after {
74
+ transform: rotate(0);
75
+ }
76
+
77
+ [dir="rtl"] details summary {
78
+ text-align: end;
79
+ }
80
+ [dir="rtl"] details summary::after {
81
+ float: left;
82
+ background-position: left center;
83
+ }
84
+ /**
85
+ * Card (<article>)
86
+ */
87
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
88
+ :host {
89
+ --pico-card-background-color: light-dark(var(--pico-background-color), #181c25);
90
+ --pico-card-border-color: light-dark(
91
+ var(--pico-muted-border-color),
92
+ var(--pico-card-background-color)
93
+ );
94
+ --pico-card-box-shadow: var(--pico-box-shadow);
95
+ --pico-card-sectioning-background-color: light-dark(
96
+ rgb(251, 251.5, 252.25),
97
+ rgb(26, 30.5, 40.25)
98
+ );
99
+ }
100
+
101
+ article {
102
+ margin-bottom: var(--pico-block-spacing-vertical);
103
+ padding: var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);
104
+ border-radius: var(--pico-border-radius);
105
+ background: var(--pico-card-background-color);
106
+ box-shadow: var(--pico-card-box-shadow);
107
+ }
108
+ article > header,
109
+ article > footer {
110
+ margin-right: calc(var(--pico-block-spacing-horizontal) * -1);
111
+ margin-left: calc(var(--pico-block-spacing-horizontal) * -1);
112
+ padding: calc(var(--pico-block-spacing-vertical) * 0.66) var(--pico-block-spacing-horizontal);
113
+ background-color: var(--pico-card-sectioning-background-color);
114
+ }
115
+ article > header {
116
+ margin-top: calc(var(--pico-block-spacing-vertical) * -1);
117
+ margin-bottom: var(--pico-block-spacing-vertical);
118
+ border-bottom: var(--pico-border-width) solid var(--pico-card-border-color);
119
+ border-top-right-radius: var(--pico-border-radius);
120
+ border-top-left-radius: var(--pico-border-radius);
121
+ }
122
+ article > footer {
123
+ margin-top: var(--pico-block-spacing-vertical);
124
+ margin-bottom: calc(var(--pico-block-spacing-vertical) * -1);
125
+ border-top: var(--pico-border-width) solid var(--pico-card-border-color);
126
+ border-bottom-right-radius: var(--pico-border-radius);
127
+ border-bottom-left-radius: var(--pico-border-radius);
128
+ }
129
+ /**
130
+ * Dropdown (details.dropdown)
131
+ */
132
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
133
+ :host {
134
+ --pico-dropdown-background-color: light-dark(#fff, #181c25);
135
+ --pico-dropdown-border-color: light-dark(#eff1f4, #202632);
136
+ --pico-dropdown-box-shadow: var(--pico-box-shadow);
137
+ --pico-dropdown-color: var(--pico-color);
138
+ --pico-dropdown-hover-background-color: light-dark(#eff1f4, #202632);
139
+ }
140
+
141
+ details.dropdown {
142
+ position: relative;
143
+ border-bottom: none;
144
+ }
145
+ details.dropdown > summary::after,
146
+ details.dropdown > button::after,
147
+ details.dropdown > a::after {
148
+ display: block;
149
+ width: 1rem;
150
+ height: calc(1rem * var(--pico-line-height, 1.5));
151
+ margin-inline-start: 0.25rem;
152
+ float: right;
153
+ transform: rotate(0deg) translateX(0.2rem);
154
+ background-image: var(--pico-icon-chevron);
155
+ background-position: right center;
156
+ background-size: 1rem auto;
157
+ background-repeat: no-repeat;
158
+ content: "";
159
+ }
160
+
161
+ nav details.dropdown {
162
+ margin-bottom: 0;
163
+ }
164
+
165
+ details.dropdown > summary:not([role]) {
166
+ height: calc(
167
+ 1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 +
168
+ var(--pico-border-width) * 2
169
+ );
170
+ padding: var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);
171
+ border: var(--pico-border-width) solid var(--pico-form-element-border-color);
172
+ border-radius: var(--pico-border-radius);
173
+ background-color: var(--pico-form-element-background-color);
174
+ color: var(--pico-form-element-placeholder-color);
175
+ line-height: inherit;
176
+ cursor: pointer;
177
+ -webkit-user-select: none;
178
+ -moz-user-select: none;
179
+ transition:
180
+ background-color var(--pico-transition),
181
+ border-color var(--pico-transition),
182
+ color var(--pico-transition),
183
+ box-shadow var(--pico-transition);
184
+ user-select: none;
185
+ }
186
+ details.dropdown > summary:not([role]):active,
187
+ details.dropdown > summary:not([role]):focus {
188
+ border-color: var(--pico-form-element-active-border-color);
189
+ background-color: var(--pico-form-element-active-background-color);
190
+ }
191
+ details.dropdown > summary:not([role]):focus {
192
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color);
193
+ }
194
+ details.dropdown > summary:not([role]):focus-visible {
195
+ outline: none;
196
+ }
197
+ details.dropdown > summary:not([role])[aria-invalid="false"] {
198
+ --pico-form-element-border-color: var(--pico-form-element-valid-border-color);
199
+ --pico-form-element-active-border-color: var(--pico-form-element-valid-focus-color);
200
+ --pico-form-element-focus-color: var(--pico-form-element-valid-focus-color);
201
+ }
202
+ details.dropdown > summary:not([role])[aria-invalid="true"] {
203
+ --pico-form-element-border-color: var(--pico-form-element-invalid-border-color);
204
+ --pico-form-element-active-border-color: var(--pico-form-element-invalid-focus-color);
205
+ --pico-form-element-focus-color: var(--pico-form-element-invalid-focus-color);
206
+ }
207
+
208
+ nav details.dropdown {
209
+ display: inline-block;
210
+ margin: calc(var(--pico-nav-element-spacing-vertical) * -1) 0;
211
+ }
212
+ nav details.dropdown > summary::after {
213
+ transform: rotate(0deg) translateX(0rem);
214
+ }
215
+ nav details.dropdown > summary:not([role]) {
216
+ height: calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);
217
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
218
+ var(--pico-nav-link-spacing-horizontal);
219
+ }
220
+ nav details.dropdown > summary:not([role]):focus-visible {
221
+ box-shadow: 0 0 0 var(--pico-outline-width) var(--pico-primary-focus);
222
+ }
223
+
224
+ details.dropdown > summary + ul {
225
+ display: flex;
226
+ z-index: 99;
227
+ position: absolute;
228
+ left: 0;
229
+ flex-direction: column;
230
+ width: 100%;
231
+ min-width: -moz-fit-content;
232
+ min-width: fit-content;
233
+ margin: 0;
234
+ margin-top: var(--pico-outline-width);
235
+ padding: 0;
236
+ border: var(--pico-border-width) solid var(--pico-dropdown-border-color);
237
+ border-radius: var(--pico-border-radius);
238
+ background-color: var(--pico-dropdown-background-color);
239
+ box-shadow: var(--pico-dropdown-box-shadow);
240
+ color: var(--pico-dropdown-color);
241
+ white-space: nowrap;
242
+ opacity: 0;
243
+ transition:
244
+ opacity var(--pico-transition),
245
+ transform 0s ease-in-out 1s;
246
+ }
247
+ details.dropdown > summary + ul[dir="rtl"] {
248
+ right: 0;
249
+ left: auto;
250
+ }
251
+ details.dropdown > summary + ul li {
252
+ width: 100%;
253
+ margin-bottom: 0;
254
+ padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
255
+ var(--pico-form-element-spacing-horizontal);
256
+ list-style: none;
257
+ }
258
+ details.dropdown > summary + ul li:first-of-type {
259
+ margin-top: calc(var(--pico-form-element-spacing-vertical) * 0.5);
260
+ }
261
+ details.dropdown > summary + ul li:last-of-type {
262
+ margin-bottom: calc(var(--pico-form-element-spacing-vertical) * 0.5);
263
+ }
264
+ details.dropdown > summary + ul li a {
265
+ display: block;
266
+ margin: calc(var(--pico-form-element-spacing-vertical) * -0.5)
267
+ calc(var(--pico-form-element-spacing-horizontal) * -1);
268
+ padding: calc(var(--pico-form-element-spacing-vertical) * 0.5)
269
+ var(--pico-form-element-spacing-horizontal);
270
+ overflow: hidden;
271
+ border-radius: 0;
272
+ color: var(--pico-dropdown-color);
273
+ text-decoration: none;
274
+ text-overflow: ellipsis;
275
+ }
276
+ details.dropdown > summary + ul li a:hover,
277
+ details.dropdown > summary + ul li a:focus,
278
+ details.dropdown > summary + ul li a:active,
279
+ details.dropdown > summary + ul li a:focus-visible,
280
+ details.dropdown > summary + ul li a[aria-current]:not([aria-current="false"]) {
281
+ background-color: var(--pico-dropdown-hover-background-color);
282
+ }
283
+ details.dropdown > summary + ul li label {
284
+ width: 100%;
285
+ }
286
+ details.dropdown > summary + ul li:has(label):hover {
287
+ background-color: var(--pico-dropdown-hover-background-color);
288
+ }
289
+
290
+ details.dropdown[open] > summary {
291
+ margin-bottom: 0;
292
+ }
293
+
294
+ details.dropdown[open] > summary + ul {
295
+ transform: scaleY(1);
296
+ opacity: 1;
297
+ transition:
298
+ opacity var(--pico-transition),
299
+ transform 0s ease-in-out 0s;
300
+ }
301
+
302
+ details.dropdown[open] > summary::before {
303
+ display: block;
304
+ z-index: 1;
305
+ position: fixed;
306
+ width: 100vw;
307
+ height: 100vh;
308
+ inset: 0;
309
+ background: none;
310
+ content: "";
311
+ cursor: default;
312
+ }
313
+
314
+ label > details.dropdown {
315
+ margin-top: calc(var(--pico-spacing) * 0.25);
316
+ }
317
+
318
+ /**
319
+ * Group ([role="group"], [role="search"])
320
+ */
321
+ :where(:scope),
322
+ :host {
323
+ --pico-group-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
324
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
325
+ var(--pico-primary-focus);
326
+ --pico-group-box-shadow-focus-with-input: 0 0 0 0.0625rem var(--pico-form-element-border-color);
327
+ }
328
+ [role="search"]:has(
329
+ button.secondary:focus,
330
+ [type="submit"].secondary:focus,
331
+ [type="button"].secondary:focus,
332
+ [role="button"].secondary:focus
333
+ ),
334
+ [role="group"]:has(
335
+ button.secondary:focus,
336
+ [type="submit"].secondary:focus,
337
+ [type="button"].secondary:focus,
338
+ [role="button"].secondary:focus
339
+ ) {
340
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
341
+ var(--pico-secondary-focus);
342
+ }
343
+ [role="search"]:has(
344
+ button.contrast:focus,
345
+ [type="submit"].contrast:focus,
346
+ [type="button"].contrast:focus,
347
+ [role="button"].contrast:focus
348
+ ),
349
+ [role="group"]:has(
350
+ button.contrast:focus,
351
+ [type="submit"].contrast:focus,
352
+ [type="button"].contrast:focus,
353
+ [role="button"].contrast:focus
354
+ ) {
355
+ --pico-group-box-shadow-focus-with-button: 0 0 0 var(--pico-outline-width)
356
+ var(--pico-contrast-focus);
357
+ }
358
+
359
+ [role="search"],
360
+ [role="group"] {
361
+ display: inline-flex;
362
+ position: relative;
363
+ width: 100%;
364
+ margin-bottom: var(--pico-spacing);
365
+ border-radius: var(--pico-border-radius);
366
+ box-shadow: var(--pico-group-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
367
+ vertical-align: middle;
368
+ transition: box-shadow var(--pico-transition);
369
+ }
370
+ [role="search"] > *,
371
+ [role="search"] input:not([type="checkbox"], [type="radio"]),
372
+ [role="search"] select,
373
+ [role="group"] > *,
374
+ [role="group"] input:not([type="checkbox"], [type="radio"]),
375
+ [role="group"] select {
376
+ position: relative;
377
+ flex: 1 1 auto;
378
+ margin-bottom: 0;
379
+ }
380
+ [role="search"] > *:not(:first-child),
381
+ [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
382
+ [role="search"] select:not(:first-child),
383
+ [role="group"] > *:not(:first-child),
384
+ [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
385
+ [role="group"] select:not(:first-child) {
386
+ margin-left: 0;
387
+ border-top-left-radius: 0;
388
+ border-bottom-left-radius: 0;
389
+ }
390
+ [role="search"] > *:not(:last-child),
391
+ [role="search"] input:not([type="checkbox"], [type="radio"]):not(:last-child),
392
+ [role="search"] select:not(:last-child),
393
+ [role="group"] > *:not(:last-child),
394
+ [role="group"] input:not([type="checkbox"], [type="radio"]):not(:last-child),
395
+ [role="group"] select:not(:last-child) {
396
+ border-top-right-radius: 0;
397
+ border-bottom-right-radius: 0;
398
+ }
399
+ [role="search"] > *:focus,
400
+ [role="search"] input:not([type="checkbox"], [type="radio"]):focus,
401
+ [role="search"] select:focus,
402
+ [role="group"] > *:focus,
403
+ [role="group"] input:not([type="checkbox"], [type="radio"]):focus,
404
+ [role="group"] select:focus {
405
+ z-index: 2;
406
+ }
407
+ [role="search"] button:not(:first-child),
408
+ [role="search"] [type="submit"]:not(:first-child),
409
+ [role="search"] [type="reset"]:not(:first-child),
410
+ [role="search"] [type="button"]:not(:first-child),
411
+ [role="search"] [role="button"]:not(:first-child),
412
+ [role="search"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
413
+ [role="search"] select:not(:first-child),
414
+ [role="group"] button:not(:first-child),
415
+ [role="group"] [type="submit"]:not(:first-child),
416
+ [role="group"] [type="reset"]:not(:first-child),
417
+ [role="group"] [type="button"]:not(:first-child),
418
+ [role="group"] [role="button"]:not(:first-child),
419
+ [role="group"] input:not([type="checkbox"], [type="radio"]):not(:first-child),
420
+ [role="group"] select:not(:first-child) {
421
+ margin-left: calc(var(--pico-border-width) * -1);
422
+ }
423
+ [role="search"] button,
424
+ [role="search"] [type="submit"],
425
+ [role="search"] [type="reset"],
426
+ [role="search"] [type="button"],
427
+ [role="search"] [role="button"],
428
+ [role="group"] button,
429
+ [role="group"] [type="submit"],
430
+ [role="group"] [type="reset"],
431
+ [role="group"] [type="button"],
432
+ [role="group"] [role="button"] {
433
+ width: auto;
434
+ }
435
+ @supports selector(:has(*)) {
436
+ [role="search"]:has(
437
+ button:focus,
438
+ [type="submit"]:focus,
439
+ [type="button"]:focus,
440
+ [role="button"]:focus
441
+ ),
442
+ [role="group"]:has(
443
+ button:focus,
444
+ [type="submit"]:focus,
445
+ [type="button"]:focus,
446
+ [role="button"]:focus
447
+ ) {
448
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-button);
449
+ }
450
+ [role="search"]:has(
451
+ button:focus,
452
+ [type="submit"]:focus,
453
+ [type="button"]:focus,
454
+ [role="button"]:focus
455
+ )
456
+ input:not([type="checkbox"], [type="radio"]),
457
+ [role="search"]:has(
458
+ button:focus,
459
+ [type="submit"]:focus,
460
+ [type="button"]:focus,
461
+ [role="button"]:focus
462
+ )
463
+ select,
464
+ [role="group"]:has(
465
+ button:focus,
466
+ [type="submit"]:focus,
467
+ [type="button"]:focus,
468
+ [role="button"]:focus
469
+ )
470
+ input:not([type="checkbox"], [type="radio"]),
471
+ [role="group"]:has(
472
+ button:focus,
473
+ [type="submit"]:focus,
474
+ [type="button"]:focus,
475
+ [role="button"]:focus
476
+ )
477
+ select {
478
+ border-color: transparent;
479
+ }
480
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus),
481
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) {
482
+ --pico-group-box-shadow: var(--pico-group-box-shadow-focus-with-input);
483
+ }
484
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button,
485
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
486
+ [type="submit"],
487
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
488
+ [type="button"],
489
+ [role="search"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
490
+ [role="button"],
491
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus) button,
492
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
493
+ [type="submit"],
494
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
495
+ [type="button"],
496
+ [role="group"]:has(input:not([type="submit"], [type="button"]):focus, select:focus)
497
+ [role="button"] {
498
+ --pico-button-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-border);
499
+ --pico-button-hover-box-shadow: 0 0 0 var(--pico-border-width) var(--pico-primary-hover-border);
500
+ }
501
+ [role="search"] button:focus,
502
+ [role="search"] [type="submit"]:focus,
503
+ [role="search"] [type="reset"]:focus,
504
+ [role="search"] [type="button"]:focus,
505
+ [role="search"] [role="button"]:focus,
506
+ [role="group"] button:focus,
507
+ [role="group"] [type="submit"]:focus,
508
+ [role="group"] [type="reset"]:focus,
509
+ [role="group"] [type="button"]:focus,
510
+ [role="group"] [role="button"]:focus {
511
+ box-shadow: none;
512
+ }
513
+ }
514
+
515
+ [role="search"] > *:first-child {
516
+ border-top-left-radius: 5rem;
517
+ border-bottom-left-radius: 5rem;
518
+ }
519
+ [role="search"] > *:last-child {
520
+ border-top-right-radius: 5rem;
521
+ border-bottom-right-radius: 5rem;
522
+ }
523
+ /**
524
+ * Loading ([aria-busy=true])
525
+ */
526
+ :where(:scope),
527
+ :host {
528
+ --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");
529
+ }
530
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
531
+ :host {
532
+ --pico-loading-spinner-opacity: 0.5;
533
+ }
534
+
535
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(
536
+ :where(button, [type="submit"], [type="button"], [type="reset"], [role="button"])
537
+ ) {
538
+ /* :where() zeroes the specificity of the button list inside :not(), so this rule stays
539
+ * low-specificity and doesn't override the more specific button rules below */
540
+ white-space: nowrap;
541
+ }
542
+ [aria-busy="true"]:not(input, select, textarea, html, form)::before {
543
+ display: inline-block;
544
+ width: 1em;
545
+ height: 1em;
546
+ background-image: var(--pico-icon-loading);
547
+ background-size: 1em auto;
548
+ background-repeat: no-repeat;
549
+ content: "";
550
+ vertical-align: -0.125em;
551
+ }
552
+ [aria-busy="true"]:not(input, select, textarea, html, form):not(:empty)::before {
553
+ margin-inline-end: calc(var(--pico-spacing) * 0.5);
554
+ }
555
+ [aria-busy="true"]:not(input, select, textarea, html, form):empty {
556
+ text-align: center;
557
+ }
558
+
559
+ button[aria-busy="true"],
560
+ [type="submit"][aria-busy="true"],
561
+ [type="button"][aria-busy="true"],
562
+ [type="reset"][aria-busy="true"],
563
+ [role="button"][aria-busy="true"],
564
+ a[aria-busy="true"] {
565
+ pointer-events: none;
566
+ }
567
+
568
+ /* Buttons keep their size: the label stays in place but hidden, the spinner sits on top */
569
+ button[aria-busy="true"]:not(:empty), [type="submit"][aria-busy="true"]:not(:empty), [type="button"][aria-busy="true"]:not(:empty), [type="reset"][aria-busy="true"]:not(:empty), [role="button"][aria-busy="true"]:not(:empty) {
570
+ position: relative;
571
+ color: transparent;
572
+ }
573
+ button[aria-busy="true"]:not(:empty) > *, [type="submit"][aria-busy="true"]:not(:empty) > *, [type="button"][aria-busy="true"]:not(:empty) > *, [type="reset"][aria-busy="true"]:not(:empty) > *, [role="button"][aria-busy="true"]:not(:empty) > * {
574
+ opacity: 0;
575
+ }
576
+ button[aria-busy="true"]:not(:empty)::before, [type="submit"][aria-busy="true"]:not(:empty)::before, [type="button"][aria-busy="true"]:not(:empty)::before, [type="reset"][aria-busy="true"]:not(:empty)::before, [role="button"][aria-busy="true"]:not(:empty)::before {
577
+ position: absolute;
578
+ margin: auto;
579
+ inset: 0;
580
+ }
581
+ /**
582
+ * Modal (<dialog>)
583
+ */
584
+ :where(:scope),
585
+ :host {
586
+ --pico-modal-overlay-backdrop-filter: blur(0.375rem);
587
+ --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");
588
+ }
589
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
590
+ :host {
591
+ --pico-modal-overlay-background-color: light-dark(
592
+ rgba(232, 234, 237, 0.75),
593
+ rgba(7.5, 8.5, 10, 0.75)
594
+ );
595
+ }
596
+
597
+ :scope,
598
+ :host {
599
+ --pico-scrollbar-width: 0px;
600
+ }
601
+
602
+ dialog {
603
+ display: flex;
604
+ z-index: 999;
605
+ position: fixed;
606
+ top: 0;
607
+ right: 0;
608
+ bottom: 0;
609
+ left: 0;
610
+ align-items: center;
611
+ justify-content: center;
612
+ width: inherit;
613
+ min-width: 100%;
614
+ height: inherit;
615
+ min-height: 100%;
616
+ padding: 0;
617
+ border: 0;
618
+ backdrop-filter: var(--pico-modal-overlay-backdrop-filter);
619
+ background-color: var(--pico-modal-overlay-background-color);
620
+ color: var(--pico-color);
621
+ }
622
+ dialog > article {
623
+ width: 100%;
624
+ max-height: calc(100vh - var(--pico-spacing) * 2);
625
+ margin: var(--pico-spacing);
626
+ overflow: auto;
627
+ }
628
+ @media (min-width: 576px) {
629
+ dialog > article {
630
+ max-width: 510px;
631
+ }
632
+ }
633
+ @media (min-width: 768px) {
634
+ dialog > article {
635
+ max-width: 700px;
636
+ }
637
+ }
638
+ dialog > article > header > * {
639
+ margin-bottom: 0;
640
+ }
641
+ dialog > article > header .close,
642
+ dialog > article > header :is(a, button)[rel="prev"] {
643
+ margin: 0;
644
+ margin-left: var(--pico-spacing);
645
+ padding: 0;
646
+ float: right;
647
+ }
648
+ dialog > article > footer {
649
+ text-align: end;
650
+ }
651
+ dialog > article > footer button,
652
+ dialog > article > footer [role="button"] {
653
+ margin-bottom: 0;
654
+ }
655
+ dialog > article > footer button:not(:first-of-type),
656
+ dialog > article > footer [role="button"]:not(:first-of-type) {
657
+ margin-left: calc(var(--pico-spacing) * 0.5);
658
+ }
659
+ dialog > article .close,
660
+ dialog > article :is(a, button)[rel="prev"] {
661
+ display: block;
662
+ width: 1rem;
663
+ height: 1rem;
664
+ margin-top: calc(var(--pico-spacing) * -1);
665
+ margin-bottom: var(--pico-spacing);
666
+ margin-left: auto;
667
+ border: none;
668
+ background-image: var(--pico-icon-close);
669
+ background-position: center;
670
+ background-size: auto 1rem;
671
+ background-repeat: no-repeat;
672
+ background-color: transparent;
673
+ opacity: 0.5;
674
+ transition: opacity var(--pico-transition);
675
+ }
676
+ dialog > article .close:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus),
677
+ dialog
678
+ > article
679
+ :is(a, button)[rel="prev"]:is(
680
+ [aria-current]:not([aria-current="false"]),
681
+ :hover,
682
+ :active,
683
+ :focus
684
+ ) {
685
+ opacity: 1;
686
+ }
687
+ dialog:not([open]),
688
+ dialog[open="false"] {
689
+ display: none;
690
+ }
691
+
692
+ .modal-is-open {
693
+ padding-right: var(--pico-scrollbar-width, 0px);
694
+ overflow: hidden;
695
+ pointer-events: none;
696
+ touch-action: none;
697
+ }
698
+ .modal-is-open dialog {
699
+ pointer-events: auto;
700
+ touch-action: auto;
701
+ }
702
+
703
+ :where(.modal-is-opening, .modal-is-closing) dialog,
704
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
705
+ animation-duration: 0.2s;
706
+ animation-timing-function: ease-in-out;
707
+ animation-fill-mode: both;
708
+ }
709
+ :where(.modal-is-opening, .modal-is-closing) dialog {
710
+ animation-duration: 0.8s;
711
+ animation-name: modal-overlay;
712
+ }
713
+ :where(.modal-is-opening, .modal-is-closing) dialog > article {
714
+ animation-delay: 0.2s;
715
+ animation-name: modal;
716
+ }
717
+
718
+ .modal-is-closing dialog,
719
+ .modal-is-closing dialog > article {
720
+ animation-delay: 0s;
721
+ animation-direction: reverse;
722
+ }
723
+
724
+ @keyframes modal-overlay {
725
+ from {
726
+ backdrop-filter: none;
727
+ background-color: transparent;
728
+ }
729
+ }
730
+ @keyframes modal {
731
+ from {
732
+ transform: translateY(-100%);
733
+ opacity: 0;
734
+ }
735
+ }
736
+ /**
737
+ * Nav
738
+ */
739
+ :where(:scope),
740
+ :host {
741
+ --pico-nav-element-spacing-horizontal: 0.5rem;
742
+ --pico-nav-breadcrumb-divider: ">";
743
+ }
744
+
745
+ :where(nav li)::before {
746
+ float: left;
747
+ content: "​";
748
+ }
749
+
750
+ nav,
751
+ nav ul {
752
+ display: flex;
753
+ }
754
+
755
+ nav {
756
+ justify-content: space-between;
757
+ overflow: visible;
758
+ }
759
+ nav ol,
760
+ nav ul {
761
+ align-items: center;
762
+ margin-bottom: 0;
763
+ padding: 0;
764
+ list-style: none;
765
+ }
766
+ nav ol:first-of-type,
767
+ nav ul:first-of-type {
768
+ margin-left: calc(var(--pico-nav-element-spacing-horizontal) * -1);
769
+ }
770
+ nav ol:last-of-type,
771
+ nav ul:last-of-type {
772
+ margin-right: calc(var(--pico-nav-element-spacing-horizontal) * -1);
773
+ }
774
+ nav li {
775
+ display: inline-block;
776
+ margin: 0;
777
+ padding: var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal);
778
+ }
779
+ nav li :where(a, [role="link"]) {
780
+ display: inline-block;
781
+ margin: calc(var(--pico-nav-link-spacing-vertical) * -1)
782
+ calc(var(--pico-nav-link-spacing-horizontal) * -1);
783
+ padding: var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);
784
+ border-radius: var(--pico-border-radius);
785
+ }
786
+ nav li :where(a, [role="link"]):not(:hover) {
787
+ text-decoration: none;
788
+ }
789
+ nav li button,
790
+ nav li [role="button"],
791
+ nav li [type="button"],
792
+ nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]),
793
+ nav li select {
794
+ height: auto;
795
+ margin-right: inherit;
796
+ margin-bottom: 0;
797
+ margin-left: inherit;
798
+ padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2)
799
+ var(--pico-nav-link-spacing-horizontal);
800
+ }
801
+ nav[aria-label="breadcrumb"] {
802
+ align-items: center;
803
+ justify-content: start;
804
+ }
805
+ nav[aria-label="breadcrumb"] ul li:not(:first-child) {
806
+ margin-inline-start: var(--pico-nav-link-spacing-horizontal);
807
+ }
808
+ nav[aria-label="breadcrumb"] ul li a {
809
+ margin: calc(var(--pico-nav-link-spacing-vertical) * -1) 0;
810
+ margin-inline-start: calc(var(--pico-nav-link-spacing-horizontal) * -1);
811
+ }
812
+ nav[aria-label="breadcrumb"] ul li:not(:last-child)::after {
813
+ display: inline-block;
814
+ position: absolute;
815
+ width: calc(var(--pico-nav-link-spacing-horizontal) * 4);
816
+ margin: 0 calc(var(--pico-nav-link-spacing-horizontal) * -1);
817
+ content: var(--pico-nav-breadcrumb-divider);
818
+ color: var(--pico-muted-color);
819
+ text-align: center;
820
+ text-decoration: none;
821
+ white-space: nowrap;
822
+ }
823
+ nav[aria-label="breadcrumb"] a[aria-current]:not([aria-current="false"]) {
824
+ background-color: transparent;
825
+ color: inherit;
826
+ text-decoration: none;
827
+ pointer-events: none;
828
+ }
829
+
830
+ aside nav,
831
+ aside ol,
832
+ aside ul,
833
+ aside li {
834
+ display: block;
835
+ }
836
+ aside li {
837
+ padding: calc(var(--pico-nav-element-spacing-vertical) * 0.5)
838
+ var(--pico-nav-element-spacing-horizontal);
839
+ }
840
+ aside li a {
841
+ display: block;
842
+ }
843
+ aside li [role="button"] {
844
+ margin: inherit;
845
+ }
846
+
847
+ [dir="rtl"] nav[aria-label="breadcrumb"] ul li:not(:last-child)::after {
848
+ content: "\\";
849
+ }
850
+
851
+ /**
852
+ * Progress
853
+ */
854
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
855
+ :host {
856
+ --pico-progress-background-color: light-dark(#dfe3eb, #202632);
857
+ --pico-progress-color: var(--pico-primary-background);
858
+ }
859
+
860
+ progress {
861
+ display: inline-block;
862
+ vertical-align: baseline;
863
+ }
864
+
865
+ progress {
866
+ -webkit-appearance: none;
867
+ -moz-appearance: none;
868
+ display: inline-block;
869
+ appearance: none;
870
+ width: 100%;
871
+ height: 0.5rem;
872
+ margin-bottom: calc(var(--pico-spacing) * 0.5);
873
+ overflow: hidden;
874
+ border: 0;
875
+ border-radius: var(--pico-border-radius);
876
+ background-color: var(--pico-progress-background-color);
877
+ color: var(--pico-progress-color);
878
+ }
879
+ progress::-webkit-progress-bar {
880
+ border-radius: var(--pico-border-radius);
881
+ background: none;
882
+ }
883
+ progress[value]::-webkit-progress-value {
884
+ background-color: var(--pico-progress-color);
885
+ -webkit-transition: inline-size var(--pico-transition);
886
+ transition: inline-size var(--pico-transition);
887
+ }
888
+ progress::-moz-progress-bar {
889
+ background-color: var(--pico-progress-color);
890
+ }
891
+ @media (prefers-reduced-motion: no-preference) {
892
+ progress:indeterminate {
893
+ background: var(--pico-progress-background-color)
894
+ linear-gradient(
895
+ to right,
896
+ var(--pico-progress-color) 30%,
897
+ var(--pico-progress-background-color) 30%
898
+ )
899
+ top left/150% 150% no-repeat;
900
+ animation: progress-indeterminate 1s linear infinite;
901
+ }
902
+ progress:indeterminate[value]::-webkit-progress-value {
903
+ background-color: transparent;
904
+ }
905
+ progress:indeterminate::-moz-progress-bar {
906
+ background-color: transparent;
907
+ }
908
+ }
909
+
910
+ @media (prefers-reduced-motion: no-preference) {
911
+ [dir="rtl"] progress:indeterminate {
912
+ animation-direction: reverse;
913
+ }
914
+ }
915
+
916
+ @keyframes progress-indeterminate {
917
+ 0% {
918
+ background-position: 200% 0;
919
+ }
920
+ 100% {
921
+ background-position: -200% 0;
922
+ }
923
+ }
924
+
925
+ /**
926
+ * Tooltip ([data-tooltip])
927
+ */
928
+ :where(:scope, [data-theme="light"], [data-theme="dark"]),
929
+ :host {
930
+ --pico-tooltip-background-color: var(--pico-contrast-background);
931
+ --pico-tooltip-color: var(--pico-contrast-inverse);
932
+ }
933
+
934
+ [data-tooltip] {
935
+ position: relative;
936
+ }
937
+ [data-tooltip]:not(a, button, input, [role="button"]) {
938
+ border-bottom: 1px dotted;
939
+ text-decoration: none;
940
+ cursor: help;
941
+ }
942
+ [data-tooltip][data-placement="top"]::before,
943
+ [data-tooltip][data-placement="top"]::after,
944
+ [data-tooltip]::before,
945
+ [data-tooltip]::after {
946
+ display: block;
947
+ z-index: 99;
948
+ position: absolute;
949
+ bottom: 100%;
950
+ left: 50%;
951
+ padding: 0.25rem 0.5rem;
952
+ overflow: hidden;
953
+ transform: translate(-50%, -0.25rem);
954
+ border-radius: var(--pico-border-radius);
955
+ background: var(--pico-tooltip-background-color);
956
+ content: attr(data-tooltip);
957
+ color: var(--pico-tooltip-color);
958
+ font-style: normal;
959
+ font-weight: var(--pico-font-weight);
960
+ font-size: 0.875rem;
961
+ text-decoration: none;
962
+ text-overflow: ellipsis;
963
+ white-space: nowrap;
964
+ opacity: 0;
965
+ pointer-events: none;
966
+ }
967
+ [data-tooltip][data-placement="top"]::after,
968
+ [data-tooltip]::after {
969
+ padding: 0;
970
+ transform: translate(-50%, 0rem);
971
+ border-top: 0.3rem solid;
972
+ border-right: 0.3rem solid transparent;
973
+ border-left: 0.3rem solid transparent;
974
+ border-radius: 0;
975
+ background-color: transparent;
976
+ content: "";
977
+ color: var(--pico-tooltip-background-color);
978
+ }
979
+ [data-tooltip][data-placement="bottom"]::before,
980
+ [data-tooltip][data-placement="bottom"]::after {
981
+ top: 100%;
982
+ bottom: auto;
983
+ transform: translate(-50%, 0.25rem);
984
+ }
985
+ [data-tooltip][data-placement="bottom"]:after {
986
+ transform: translate(-50%, -0.3rem);
987
+ border: 0.3rem solid transparent;
988
+ border-bottom: 0.3rem solid;
989
+ }
990
+ [data-tooltip][data-placement="left"]::before,
991
+ [data-tooltip][data-placement="left"]::after {
992
+ top: 50%;
993
+ right: 100%;
994
+ bottom: auto;
995
+ left: auto;
996
+ transform: translate(-0.25rem, -50%);
997
+ }
998
+ [data-tooltip][data-placement="left"]:after {
999
+ transform: translate(0.3rem, -50%);
1000
+ border: 0.3rem solid transparent;
1001
+ border-left: 0.3rem solid;
1002
+ }
1003
+ [data-tooltip][data-placement="right"]::before,
1004
+ [data-tooltip][data-placement="right"]::after {
1005
+ top: 50%;
1006
+ right: auto;
1007
+ bottom: auto;
1008
+ left: 100%;
1009
+ transform: translate(0.25rem, -50%);
1010
+ }
1011
+ [data-tooltip][data-placement="right"]:after {
1012
+ transform: translate(-0.3rem, -50%);
1013
+ border: 0.3rem solid transparent;
1014
+ border-right: 0.3rem solid;
1015
+ }
1016
+ [data-tooltip]:focus::before,
1017
+ [data-tooltip]:focus::after,
1018
+ [data-tooltip]:hover::before,
1019
+ [data-tooltip]:hover::after {
1020
+ opacity: 1;
1021
+ }
1022
+ @media (hover: hover) and (pointer: fine) {
1023
+ [data-tooltip]:focus::before,
1024
+ [data-tooltip]:focus::after,
1025
+ [data-tooltip]:hover::before,
1026
+ [data-tooltip]:hover::after {
1027
+ --pico-tooltip-slide-to: translate(-50%, -0.25rem);
1028
+ transform: translate(-50%, 0.75rem);
1029
+ animation-duration: 0.2s;
1030
+ animation-fill-mode: forwards;
1031
+ animation-name: tooltip-slide;
1032
+ opacity: 0;
1033
+ }
1034
+ [data-tooltip]:focus::after,
1035
+ [data-tooltip]:hover::after {
1036
+ --pico-tooltip-caret-slide-to: translate(-50%, 0rem);
1037
+ transform: translate(-50%, -0.25rem);
1038
+ animation-name: tooltip-caret-slide;
1039
+ }
1040
+ [data-tooltip][data-placement="bottom"]:focus::before,
1041
+ [data-tooltip][data-placement="bottom"]:focus::after,
1042
+ [data-tooltip][data-placement="bottom"]:hover::before,
1043
+ [data-tooltip][data-placement="bottom"]:hover::after {
1044
+ --pico-tooltip-slide-to: translate(-50%, 0.25rem);
1045
+ transform: translate(-50%, -0.75rem);
1046
+ animation-name: tooltip-slide;
1047
+ }
1048
+ [data-tooltip][data-placement="bottom"]:focus::after,
1049
+ [data-tooltip][data-placement="bottom"]:hover::after {
1050
+ --pico-tooltip-caret-slide-to: translate(-50%, -0.3rem);
1051
+ transform: translate(-50%, -0.5rem);
1052
+ animation-name: tooltip-caret-slide;
1053
+ }
1054
+ [data-tooltip][data-placement="left"]:focus::before,
1055
+ [data-tooltip][data-placement="left"]:focus::after,
1056
+ [data-tooltip][data-placement="left"]:hover::before,
1057
+ [data-tooltip][data-placement="left"]:hover::after {
1058
+ --pico-tooltip-slide-to: translate(-0.25rem, -50%);
1059
+ transform: translate(0.75rem, -50%);
1060
+ animation-name: tooltip-slide;
1061
+ }
1062
+ [data-tooltip][data-placement="left"]:focus::after,
1063
+ [data-tooltip][data-placement="left"]:hover::after {
1064
+ --pico-tooltip-caret-slide-to: translate(0.3rem, -50%);
1065
+ transform: translate(0.05rem, -50%);
1066
+ animation-name: tooltip-caret-slide;
1067
+ }
1068
+ [data-tooltip][data-placement="right"]:focus::before,
1069
+ [data-tooltip][data-placement="right"]:focus::after,
1070
+ [data-tooltip][data-placement="right"]:hover::before,
1071
+ [data-tooltip][data-placement="right"]:hover::after {
1072
+ --pico-tooltip-slide-to: translate(0.25rem, -50%);
1073
+ transform: translate(-0.75rem, -50%);
1074
+ animation-name: tooltip-slide;
1075
+ }
1076
+ [data-tooltip][data-placement="right"]:focus::after,
1077
+ [data-tooltip][data-placement="right"]:hover::after {
1078
+ --pico-tooltip-caret-slide-to: translate(-0.3rem, -50%);
1079
+ transform: translate(-0.05rem, -50%);
1080
+ animation-name: tooltip-caret-slide;
1081
+ }
1082
+ }
1083
+ @keyframes tooltip-slide {
1084
+ to {
1085
+ transform: var(--pico-tooltip-slide-to);
1086
+ opacity: 1;
1087
+ }
1088
+ }
1089
+ @keyframes tooltip-caret-slide {
1090
+ 50% {
1091
+ opacity: 0;
1092
+ }
1093
+ to {
1094
+ transform: var(--pico-tooltip-caret-slide-to);
1095
+ opacity: 1;
1096
+ }
1097
+ }
1098
+
1099
+ }