@anyblades/blades 0.28.0-alpha.7 → 0.28.0
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.
- package/README.md +1 -1
- package/assets/blades.core.css +153 -117
- package/assets/blades.css +216 -168
- package/assets/blades.theme.css +52 -55
- package/assets/breakout.css +27 -32
- package/assets/float-label.core.css +22 -10
- package/assets/float-label.css +48 -28
- package/assets/float-label.theme.css +25 -17
- package/assets/link-icon.css +14 -18
- package/assets/pico.blades.css +1211 -0
- package/assets/responsive-table.css +8 -4
- package/blades.gemspec +1 -1
- package/package.json +6 -2
- package/src/link-icon.css +4 -4
- package/src/pico.blades.css +6 -0
- package/postcss.config.js +0 -5
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<!--section:docs,toc-->
|
|
18
18
|
<!-- ToC from https://blades.ninja/css/ with `href="/css/#` instead of `href="#` -->
|
|
19
19
|
<ul class="columns"><li><a href="/css/#install" tabindex="-1">Install</a></li>
|
|
20
|
-
<li><a href="/css/#layout" tabindex="-1">Layout</a><ul><li><a href="/css/#breakout">Breakout
|
|
20
|
+
<li><a href="/css/#layout" tabindex="-1">Layout</a><ul><li><a href="/css/#breakout">Breakout layout</a></li>
|
|
21
21
|
<li><a href="/css/#auto-columns" tabindex="-1">Auto-columns</a></li>
|
|
22
22
|
<li><a href="/css/#jump-to-top" tabindex="-1">Jump to top</a></li></ul></li>
|
|
23
23
|
<li><a href="/css/#content" tabindex="-1">Content</a><ul><li><a href="/css/#link-icon">Link icon</a></li>
|
package/assets/blades.core.css
CHANGED
|
@@ -25,13 +25,16 @@ Useful for tables of contents and long lists.
|
|
|
25
25
|
```css */
|
|
26
26
|
|
|
27
27
|
.columns {
|
|
28
|
+
-moz-columns: 30ch auto;
|
|
28
29
|
columns: 30ch auto; /* 2 cols max for 65ch container */
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Avoid breaking inside elements, such as nested lists */
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
.columns > * {
|
|
35
|
+
-moz-column-break-inside: avoid;
|
|
32
36
|
break-inside: avoid;
|
|
33
37
|
}
|
|
34
|
-
}
|
|
35
38
|
|
|
36
39
|
/*```
|
|
37
40
|
</details>
|
|
@@ -60,18 +63,29 @@ Useful for tables of contents and long lists.
|
|
|
60
63
|
/* Prepare the container for breakout elements */
|
|
61
64
|
padding-inline: 10%;
|
|
62
65
|
max-width: calc(10% + 65ch + 10%);
|
|
66
|
+
}
|
|
63
67
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
/* Breakout direct children only */
|
|
69
|
+
|
|
70
|
+
.breakout > *:is(
|
|
71
|
+
table,
|
|
72
|
+
pre,
|
|
73
|
+
figure, video, iframe, canvas,
|
|
74
|
+
img, picture,
|
|
75
|
+
|
|
76
|
+
.breakout-item,
|
|
77
|
+
.breakout-item-max
|
|
78
|
+
),
|
|
79
|
+
.breakout-all > *:is(
|
|
67
80
|
table,
|
|
68
81
|
pre,
|
|
69
82
|
figure, video, iframe, canvas,
|
|
70
83
|
img, picture,
|
|
71
|
-
|
|
84
|
+
|
|
72
85
|
.breakout-item,
|
|
73
86
|
.breakout-item-max
|
|
74
87
|
) {
|
|
88
|
+
width: -moz-fit-content;
|
|
75
89
|
width: fit-content;
|
|
76
90
|
min-width: 100%;
|
|
77
91
|
max-width: 125%;
|
|
@@ -79,33 +93,31 @@ Useful for tables of contents and long lists.
|
|
|
79
93
|
transform: translateX(-50%);
|
|
80
94
|
}
|
|
81
95
|
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
/* Respect img/picture min-width */
|
|
97
|
+
|
|
98
|
+
.breakout > *:is(img, picture), .breakout-all > *:is(img, picture) {
|
|
84
99
|
min-width: auto;
|
|
85
100
|
}
|
|
86
101
|
|
|
87
|
-
|
|
88
|
-
|
|
102
|
+
/* Max out the width of the element */
|
|
103
|
+
|
|
104
|
+
.breakout > *.breakout-item-max, .breakout-all > *.breakout-item-max {
|
|
89
105
|
width: 125% !important; /* !important is for cases like figure.breakout-item-max @TODO */
|
|
90
106
|
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
107
|
|
|
94
|
-
.breakout-all >
|
|
95
|
-
&:is(h2, h3, h4, h5, h6, hr):not([class]) {
|
|
108
|
+
.breakout-all > *:is(h2, h3, h4, h5, h6, hr):not([class]) {
|
|
96
109
|
position: relative;
|
|
110
|
+
}
|
|
97
111
|
|
|
98
|
-
|
|
112
|
+
.breakout-all > *:is(h2, h3, h4, h5, h6, hr):not([class])::before {
|
|
99
113
|
content: "";
|
|
100
114
|
display: block;
|
|
101
115
|
position: absolute;
|
|
102
116
|
background: gray;
|
|
103
117
|
opacity: 12.5%;
|
|
104
118
|
}
|
|
105
|
-
}
|
|
106
119
|
|
|
107
|
-
|
|
108
|
-
&::before {
|
|
120
|
+
.breakout-all > *:is(h2, h3, h4, h5, h6):not([class])::before {
|
|
109
121
|
width: 10em;
|
|
110
122
|
right: 100%;
|
|
111
123
|
margin-right: 0.8ch;
|
|
@@ -115,26 +127,24 @@ Useful for tables of contents and long lists.
|
|
|
115
127
|
background: linear-gradient(to left, gray, transparent);
|
|
116
128
|
}
|
|
117
129
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
130
|
+
/* @TODO: add to tricks-wiki why `*` works here, but `&` fails */
|
|
131
|
+
|
|
132
|
+
.breakout-all > *:is(h2, h3, h4, h5, h6):not([class]):where(hr + *)::before {
|
|
121
133
|
display: none !important;
|
|
122
134
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
&:is(hr) {
|
|
135
|
+
|
|
136
|
+
.breakout-all > *:is(hr) {
|
|
126
137
|
height: 0.5rem;
|
|
127
138
|
border: none;
|
|
128
139
|
overflow: visible;
|
|
140
|
+
}
|
|
129
141
|
|
|
130
|
-
|
|
142
|
+
.breakout-all > *:is(hr)::before {
|
|
131
143
|
width: 100vw;
|
|
132
144
|
left: 50%;
|
|
133
145
|
height: 100%;
|
|
134
146
|
transform: translateX(-50%);
|
|
135
147
|
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
148
|
|
|
139
149
|
/*```
|
|
140
150
|
<!--section:summary-->
|
|
@@ -201,8 +211,9 @@ h4,
|
|
|
201
211
|
h5,
|
|
202
212
|
h6 {
|
|
203
213
|
position: relative;
|
|
214
|
+
}
|
|
204
215
|
|
|
205
|
-
|
|
216
|
+
h1 a[href^="#"], h2 a[href^="#"], h3 a[href^="#"], h4 a[href^="#"], h5 a[href^="#"], h6 a[href^="#"] {
|
|
206
217
|
position: absolute;
|
|
207
218
|
right: 100%;
|
|
208
219
|
top: 50%;
|
|
@@ -212,14 +223,12 @@ h6 {
|
|
|
212
223
|
text-decoration: none;
|
|
213
224
|
visibility: hidden;
|
|
214
225
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
a[href^="#"] {
|
|
226
|
+
|
|
227
|
+
@media /* to avoid double-tap on touch devices */ (hover: hover) {
|
|
228
|
+
h1:hover a[href^="#"], h2:hover a[href^="#"], h3:hover a[href^="#"], h4:hover a[href^="#"], h5:hover a[href^="#"], h6:hover a[href^="#"] {
|
|
218
229
|
visibility: visible;
|
|
219
230
|
}
|
|
220
|
-
}
|
|
221
231
|
}
|
|
222
|
-
}
|
|
223
232
|
|
|
224
233
|
/*```
|
|
225
234
|
</details>
|
|
@@ -246,22 +255,21 @@ Customize markers using inline `style="--list-marker:..."` on `<ul>/<ol>` or eve
|
|
|
246
255
|
<details>How it works:
|
|
247
256
|
```css */
|
|
248
257
|
|
|
249
|
-
ul,
|
|
250
|
-
ol {
|
|
251
|
-
&[style*="--list-marker:"] {
|
|
258
|
+
ul[style*="--list-marker:"], ol[style*="--list-marker:"] {
|
|
252
259
|
list-style-type: var(--list-marker);
|
|
260
|
+
}
|
|
253
261
|
|
|
254
|
-
|
|
262
|
+
ul[style*="--list-marker:"] > li, ol[style*="--list-marker:"] > li {
|
|
255
263
|
list-style-type: inherit;
|
|
256
264
|
}
|
|
257
|
-
|
|
258
|
-
|
|
265
|
+
|
|
266
|
+
ul li[style*="--list-marker:"], ol li[style*="--list-marker:"] {
|
|
259
267
|
list-style-type: var(--list-marker);
|
|
260
268
|
}
|
|
261
|
-
|
|
269
|
+
|
|
270
|
+
ul li[data-marker]::marker, ol li[data-marker]::marker {
|
|
262
271
|
content: attr(data-marker) " "; /* ⚠️ Chrome and Firefox only */
|
|
263
272
|
}
|
|
264
|
-
}
|
|
265
273
|
|
|
266
274
|
/*```
|
|
267
275
|
</details>
|
|
@@ -284,18 +292,18 @@ ol {
|
|
|
284
292
|
<details>How it works:
|
|
285
293
|
```css */
|
|
286
294
|
|
|
287
|
-
ul,
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
.unlist-all
|
|
295
|
+
ul.unlist,
|
|
296
|
+
ul.unlist-all,
|
|
297
|
+
.unlist-all ul,
|
|
298
|
+
ol.unlist,
|
|
299
|
+
ol.unlist-all,
|
|
300
|
+
.unlist-all ol {
|
|
292
301
|
padding-inline-start: 0;
|
|
302
|
+
}
|
|
293
303
|
|
|
294
|
-
|
|
304
|
+
ul.unlist > li, ul.unlist-all > li, .unlist-all ul > li, ol.unlist > li, ol.unlist-all > li, .unlist-all ol > li {
|
|
295
305
|
list-style: none;
|
|
296
306
|
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
307
|
|
|
300
308
|
/*```
|
|
301
309
|
</details>
|
|
@@ -305,43 +313,42 @@ ol {
|
|
|
305
313
|
<!--section:code-->
|
|
306
314
|
```css */
|
|
307
315
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
316
|
+
/* Use inline flex only if link contains an icon */
|
|
317
|
+
|
|
318
|
+
a:has(> i) {
|
|
311
319
|
display: inline-flex;
|
|
312
320
|
gap: 0.375ch; /* =3/8 */
|
|
313
321
|
overflow-y: clip; /* to work in pair with text-underline-offset in Safari */
|
|
314
322
|
}
|
|
315
|
-
|
|
323
|
+
|
|
324
|
+
a > i {
|
|
316
325
|
font-style: normal;
|
|
317
326
|
float: left; /* ✅ Chrome ❌ Safari */
|
|
318
327
|
text-underline-offset: -2em; /* ❌ Chrome ✅ Safari - to clip it with overflow-y */
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/* Favicons */
|
|
319
331
|
|
|
320
|
-
|
|
321
|
-
> img {
|
|
332
|
+
a > i > img {
|
|
322
333
|
height: 1.25em;
|
|
323
334
|
margin-block-start: calc(-0.25em / 2);
|
|
324
335
|
max-width: none; /* to keep ratio safe */
|
|
325
336
|
display: inline-block; /* for Tailwind CSS Typography */
|
|
326
337
|
}
|
|
327
338
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
&[class*=" fa-"] {
|
|
339
|
+
a > i[class^="fa-"],
|
|
340
|
+
a > i[class*=" fa-"] {
|
|
331
341
|
line-height: inherit;
|
|
332
342
|
--fa-width: auto;
|
|
333
343
|
}
|
|
334
|
-
|
|
344
|
+
|
|
345
|
+
/* Font Awesome */
|
|
346
|
+
|
|
347
|
+
a > i.fa-lg {
|
|
335
348
|
line-height: normal;
|
|
336
349
|
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
350
|
|
|
340
351
|
/*```
|
|
341
|
-
How we made it: https://codepen.io/editor/anydigital/pen/019d2b94-5616-75dc-a23e-e111869d5237
|
|
342
|
-
|
|
343
|
-
**PRO** example of automatic favicons for `11ty`: https://blades.ninja/build-awesome-11ty/processors/#auto-link-favicons
|
|
344
|
-
|
|
345
352
|
<!--section:summary-->
|
|
346
353
|
|
|
347
354
|
Use *Bl*ades `<i>`-helper to wrap emojis, favicons, or simply drop Font Awesome icons inside links.
|
|
@@ -364,6 +371,10 @@ Or even for:
|
|
|
364
371
|
<a href="#" style="margin: 0 0 0 1rem"><i>🥷</i> very-very-very-very-very-<br>long-multiline-links</a>
|
|
365
372
|
</article>
|
|
366
373
|
|
|
374
|
+
How we made it: https://codepen.io/editor/anydigital/pen/019d2b94-5616-75dc-a23e-e111869d5237
|
|
375
|
+
|
|
376
|
+
**PRO** example of automatic favicons for `11ty`: https://blades.ninja/build-awesome-11ty/processors/#auto-link-favicons
|
|
377
|
+
|
|
367
378
|
<!--section--> */
|
|
368
379
|
|
|
369
380
|
/* Extends https://github.com/picocss/pico/blob/main/scss/content/_table.scss
|
|
@@ -389,21 +400,20 @@ Living examples of big tables with `<hr>`-expanders: <!--A-Z-->
|
|
|
389
400
|
<details>How it works:
|
|
390
401
|
```css */
|
|
391
402
|
|
|
392
|
-
th {
|
|
393
|
-
hr {
|
|
403
|
+
th hr {
|
|
394
404
|
width: 12ch; /* min ~65/12 = ~5 cols */
|
|
395
405
|
height: 0;
|
|
396
406
|
margin: 0;
|
|
397
407
|
visibility: hidden;
|
|
408
|
+
}
|
|
398
409
|
|
|
399
|
-
|
|
410
|
+
th hr.lg {
|
|
400
411
|
width: 18ch;
|
|
401
412
|
}
|
|
402
|
-
|
|
413
|
+
|
|
414
|
+
th hr.x2 {
|
|
403
415
|
width: 24ch;
|
|
404
416
|
}
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
417
|
|
|
408
418
|
/*```
|
|
409
419
|
</details>
|
|
@@ -425,12 +435,10 @@ Living example: https://bladeswitch.com/#minimal-dependencies table
|
|
|
425
435
|
|
|
426
436
|
<!--section--> */
|
|
427
437
|
|
|
428
|
-
table.borderless
|
|
429
|
-
|
|
430
|
-
td {
|
|
438
|
+
table.borderless th,
|
|
439
|
+
table.borderless td {
|
|
431
440
|
border: none;
|
|
432
441
|
}
|
|
433
|
-
}
|
|
434
442
|
|
|
435
443
|
/*
|
|
436
444
|
<!--section:code-->
|
|
@@ -444,6 +452,7 @@ table.responsive,
|
|
|
444
452
|
transform: translateX(-50%);
|
|
445
453
|
|
|
446
454
|
/* Let them full-bleed */
|
|
455
|
+
width: -moz-max-content;
|
|
447
456
|
width: max-content;
|
|
448
457
|
min-width: auto;
|
|
449
458
|
max-width: 100vw;
|
|
@@ -453,12 +462,16 @@ table.responsive,
|
|
|
453
462
|
display: block;
|
|
454
463
|
overflow-x: auto;
|
|
455
464
|
-webkit-overflow-scrolling: touch; /* Smooth scroll for iOS */
|
|
465
|
+
}
|
|
456
466
|
|
|
457
|
-
|
|
458
|
-
td
|
|
467
|
+
table.responsive th,
|
|
468
|
+
table.responsive td,
|
|
469
|
+
.breakout > table:not(.does-not-exist) th,
|
|
470
|
+
.breakout > table:not(.does-not-exist) td,
|
|
471
|
+
.breakout-all > table:not(.does-not-exist) th,
|
|
472
|
+
.breakout-all > table:not(.does-not-exist) td {
|
|
459
473
|
padding-inline-start: 0;
|
|
460
474
|
}
|
|
461
|
-
}
|
|
462
475
|
|
|
463
476
|
/*```
|
|
464
477
|
`table:not(.does-not-exist)` trick (inspired by postcss) is used here to increase specificity against selectors like `&:is(table, .table)`
|
|
@@ -507,44 +520,43 @@ The `<pre><code>` blocks are Prism-compatible and support captions via `data-cap
|
|
|
507
520
|
pre {
|
|
508
521
|
padding: 1rem 1.5rem;
|
|
509
522
|
padding-inline-end: 2rem;
|
|
523
|
+
}
|
|
510
524
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
525
|
+
@media (max-width: 767px) {
|
|
526
|
+
|
|
527
|
+
pre {
|
|
528
|
+
border-radius: 0
|
|
514
529
|
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
/* Code block caption via data-attr (to display filename, etc.) */
|
|
515
533
|
|
|
516
|
-
code {
|
|
517
|
-
/* Code block caption via data-attr (to display filename, etc.) */
|
|
518
|
-
&[data-caption] {
|
|
519
|
-
&::before {
|
|
534
|
+
code[data-caption]::before {
|
|
520
535
|
content: attr(data-caption);
|
|
521
536
|
display: block;
|
|
522
537
|
margin-bottom: 1rem;
|
|
523
538
|
opacity: 50%;
|
|
524
539
|
font-style: italic;
|
|
525
540
|
}
|
|
526
|
-
}
|
|
527
541
|
|
|
528
|
-
|
|
542
|
+
code:where(pre > *) {
|
|
529
543
|
padding: 0;
|
|
530
544
|
}
|
|
531
|
-
}
|
|
532
545
|
|
|
533
546
|
/* Extends https://github.com/PrismJS/prism/blob/master/plugins/treeview/prism-treeview.css */
|
|
534
547
|
|
|
535
|
-
.token.treeview-part {
|
|
536
|
-
.entry-line {
|
|
548
|
+
.token.treeview-part .entry-line {
|
|
537
549
|
width: 2.5em !important;
|
|
538
550
|
opacity: 25%;
|
|
539
551
|
}
|
|
540
|
-
|
|
552
|
+
|
|
553
|
+
.token.treeview-part .entry-name:last-child {
|
|
541
554
|
opacity: 50%;
|
|
555
|
+
}
|
|
542
556
|
|
|
543
|
-
|
|
557
|
+
.token.treeview-part .entry-name:last-child::before {
|
|
544
558
|
display: none !important;
|
|
545
559
|
}
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
560
|
|
|
549
561
|
/*```
|
|
550
562
|
</details>
|
|
@@ -564,33 +576,53 @@ label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea
|
|
|
564
576
|
.has-float-label {
|
|
565
577
|
display: block;
|
|
566
578
|
position: relative;
|
|
567
|
-
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/*
|
|
568
582
|
```
|
|
569
583
|
Then, we define the default/fallback state (when the float label should be minimized):
|
|
570
584
|
```css */
|
|
571
|
-
|
|
572
|
-
|
|
585
|
+
|
|
586
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select) > span,
|
|
587
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select) label,
|
|
588
|
+
.has-float-label > span,
|
|
589
|
+
.has-float-label label {
|
|
573
590
|
position: absolute;
|
|
574
591
|
left: 0;
|
|
575
592
|
top: 0;
|
|
576
593
|
cursor: text;
|
|
577
594
|
font-size: 75%;
|
|
578
595
|
}
|
|
579
|
-
|
|
596
|
+
|
|
597
|
+
/*
|
|
580
598
|
```
|
|
581
599
|
Finally, we detect if placeholder is shown, but not in focus. That means we can safely hide it, and enlarge the float label instead:
|
|
582
600
|
```css */
|
|
583
|
-
|
|
601
|
+
|
|
602
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select) *:placeholder-shown:not(:focus)::-moz-placeholder, .has-float-label *:placeholder-shown:not(:focus)::-moz-placeholder {
|
|
603
|
+
opacity: 0;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select) *:-moz-placeholder:not(:focus)::placeholder, .has-float-label *:-moz-placeholder:not(:focus)::placeholder {
|
|
584
607
|
opacity: 0;
|
|
585
608
|
}
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
609
|
+
|
|
610
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select) *:placeholder-shown:not(:focus)::placeholder, .has-float-label *:placeholder-shown:not(:focus)::placeholder {
|
|
611
|
+
opacity: 0;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select):has(*:-moz-placeholder:not(:focus)) > span, label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select):has(*:-moz-placeholder:not(:focus)) label, .has-float-label:has(*:-moz-placeholder:not(:focus)) > span, .has-float-label:has(*:-moz-placeholder:not(:focus)) label {
|
|
615
|
+
font-size: inherit;
|
|
616
|
+
opacity: 50%;
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select):has(*:placeholder-shown:not(:focus)) > span,
|
|
620
|
+
label:has(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select):has(*:placeholder-shown:not(:focus)) label,
|
|
621
|
+
.has-float-label:has(*:placeholder-shown:not(:focus)) > span,
|
|
622
|
+
.has-float-label:has(*:placeholder-shown:not(:focus)) label {
|
|
589
623
|
font-size: inherit;
|
|
590
624
|
opacity: 50%;
|
|
591
625
|
}
|
|
592
|
-
}
|
|
593
|
-
}
|
|
594
626
|
|
|
595
627
|
/*
|
|
596
628
|
```
|
|
@@ -622,16 +654,22 @@ Historically, this was not possible: the float label had to be placed after the
|
|
|
622
654
|
}
|
|
623
655
|
|
|
624
656
|
.dark-auto {
|
|
625
|
-
/* Dark color scheme (Auto) */
|
|
626
|
-
@media (prefers-color-scheme: dark) {
|
|
627
|
-
filter: var(--blades-dark-filter);
|
|
628
|
-
}
|
|
629
657
|
/* Dark color scheme (Forced) */
|
|
630
|
-
|
|
631
|
-
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
/* Dark color scheme (Auto) */
|
|
661
|
+
|
|
662
|
+
@media (prefers-color-scheme: dark) {
|
|
663
|
+
|
|
664
|
+
.dark-auto {
|
|
665
|
+
filter: var(--blades-dark-filter)
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.dark-auto[data-theme="dark"],
|
|
670
|
+
.dark-auto:where([data-theme="dark"] *) {
|
|
632
671
|
filter: var(--blades-dark-filter);
|
|
633
672
|
}
|
|
634
|
-
}
|
|
635
673
|
|
|
636
674
|
/*```
|
|
637
675
|
</details>
|
|
@@ -649,11 +687,11 @@ Historically, this was not possible: the float label had to be placed after the
|
|
|
649
687
|
|
|
650
688
|
.faded {
|
|
651
689
|
opacity: 50%;
|
|
690
|
+
}
|
|
652
691
|
|
|
653
|
-
|
|
692
|
+
.faded:hover {
|
|
654
693
|
opacity: 87.5%;
|
|
655
694
|
}
|
|
656
|
-
}
|
|
657
695
|
|
|
658
696
|
/*```
|
|
659
697
|
</details>
|
|
@@ -661,8 +699,6 @@ Historically, this was not possible: the float label had to be placed after the
|
|
|
661
699
|
|
|
662
700
|
/* Fix the scrollbar color when inverted by https://tailwindcss.com/docs/filter-invert */
|
|
663
701
|
|
|
664
|
-
.invert {
|
|
665
|
-
::-webkit-scrollbar {
|
|
702
|
+
.invert ::-webkit-scrollbar {
|
|
666
703
|
filter: invert(1) !important;
|
|
667
704
|
}
|
|
668
|
-
}
|