@icosahunter/condensate 1.0.0-beta

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.

Potentially problematic release.


This version of @icosahunter/condensate might be problematic. Click here for more details.

@@ -0,0 +1,1870 @@
1
+ @charset "UTF-8";
2
+ /*
3
+ -------------------------------------------------------------------------------
4
+ Condensate CSS
5
+ Version: 1.0.0-beta
6
+ Licensed under MIT
7
+ -------------------------------------------------------------------------------
8
+ The above notice must be included in its entirety when this file is used.
9
+
10
+ Table of contents:
11
+ Normalize CSS -------------------- [00]
12
+ CSS Variables -------------------- [01]
13
+ Base Styles ---------------------- [02]
14
+ Typography ----------------------- [03]
15
+ Form & Inputs -------------------- [04]
16
+ Button & Button Group ------------ [05]
17
+ Checkbox, Radio Buttons ---------- [06]
18
+ Toggle Switch -------------------- [07]
19
+ Table ---------------------------- [08]
20
+ Summary, Details, Dropdown ------- [09]
21
+ Scrollbar ------------------------ [10]
22
+ Layouts -------------------------- [11]
23
+ Header & Footer ------------------ [12]
24
+ Card & Hero ---------------------- [13]
25
+ Modal, close --------------------- [14]
26
+ Sidebar -------------------------- [15]
27
+ Utility -------------------------- [16]
28
+
29
+ */
30
+
31
+ /*
32
+ -------------------------------------------------------------------------------
33
+ Normalize CSS [00]
34
+
35
+ Notes:
36
+ - modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize
37
+ - Modified for use with Condensate CSS
38
+ - Comments have been removed
39
+ -------------------------------------------------------------------------------
40
+ */
41
+
42
+ *,
43
+ ::before,
44
+ ::after {
45
+ box-sizing: border-box;
46
+ }
47
+
48
+ html {
49
+ -webkit-text-size-adjust: 100%;
50
+ -moz-tab-size: 4;
51
+ tab-size: 4;
52
+ }
53
+
54
+ body {
55
+ margin: 0;
56
+ }
57
+
58
+ hr {
59
+ height: 0;
60
+ color: inherit;
61
+ }
62
+
63
+ abbr[title] {
64
+ text-decoration: underline dotted;
65
+ }
66
+
67
+ b,
68
+ strong {
69
+ font-weight: bolder;
70
+ }
71
+
72
+ code,
73
+ kbd,
74
+ samp,
75
+ pre {
76
+ font-size: 100%;
77
+ }
78
+
79
+ small {
80
+ font-size: 80%;
81
+ }
82
+
83
+ sub,
84
+ sup {
85
+ font-size: 75%;
86
+ line-height: 0;
87
+ position: relative;
88
+ vertical-align: baseline;
89
+ }
90
+
91
+ sub {
92
+ bottom: -0.25em;
93
+ }
94
+
95
+ sup {
96
+ top: -0.5em;
97
+ }
98
+
99
+ table {
100
+ text-indent: 0;
101
+ border-color: inherit;
102
+ }
103
+
104
+ button,
105
+ input,
106
+ optgroup,
107
+ select,
108
+ textarea {
109
+ font-family: inherit;
110
+ font-size: 100%;
111
+ margin: 0;
112
+ }
113
+
114
+ button,
115
+ select {
116
+ text-transform: none;
117
+ }
118
+
119
+ button,
120
+ [type="button"],
121
+ [type="reset"],
122
+ [type="submit"] {
123
+ -webkit-appearance: button;
124
+ }
125
+
126
+ ::-moz-focus-inner {
127
+ border-style: none;
128
+ padding: 0;
129
+ }
130
+
131
+ :-moz-focusring {
132
+ outline: 1px dotted ButtonText;
133
+ }
134
+
135
+ :-moz-ui-invalid {
136
+ box-shadow: none;
137
+ }
138
+
139
+ legend {
140
+ padding: 0;
141
+ }
142
+
143
+ progress {
144
+ vertical-align: baseline;
145
+ }
146
+
147
+ ::-webkit-inner-spin-button,
148
+ ::-webkit-outer-spin-button {
149
+ height: auto;
150
+ }
151
+
152
+ [type="search"] {
153
+ -webkit-appearance: textfield;
154
+ outline-offset: -2px;
155
+ }
156
+
157
+ ::-webkit-color-swatch-wrapper {
158
+ padding: 0;
159
+ }
160
+
161
+ ::-webkit-search-decoration {
162
+ -webkit-appearance: none;
163
+ }
164
+
165
+ ::-webkit-file-upload-button {
166
+ -webkit-appearance: button;
167
+ font: inherit;
168
+ }
169
+
170
+ summary {
171
+ display: list-item;
172
+ }
173
+
174
+ :root {
175
+ -webkit-tap-highlight-color: transparent;
176
+ }
177
+
178
+ /*
179
+ -------------------------------------------------------------------------------
180
+ CSS Variables [01]
181
+ -------------------------------------------------------------------------------
182
+ */
183
+ :root {
184
+ color-scheme: light dark;
185
+ --font-size: 1.1rem;
186
+ --font-family: sans-serif;
187
+ --header-font-family: var(--font-family);
188
+ --mono-font-family: monospace;
189
+ --border-radius: 0.4rem;
190
+ --border-width: 3px;
191
+ --panel-border: 0;
192
+ --input-border: 0;
193
+ --button-border: var(--input-border);
194
+ --button-border-radius: var(--border-radius);
195
+ --button-group-sep-border: var(--button-border);
196
+ --table-border: var(--border-width);
197
+ --table-v-border: var(--table-border);
198
+ --table-h-border: var(--table-border);
199
+ --table-header-bg: var(--panel-color);
200
+ --table-body-bg: var(--background-color);
201
+ --blockquote-border: var(--border-width);
202
+ --blockquote-quotemark: collapse;
203
+ --blockquote-quotemark-font: serif;
204
+ --list-marker: disc;
205
+ --spacing: 0.6rem;
206
+
207
+ --dm-font-color: #ddd;
208
+ --dm-alt-font-color: #000;
209
+ --dm-check-color: #fff;
210
+ --dm-background-color: #282a36;
211
+ --dm-alt-background-color: #2f3240;
212
+ --dm-panel-color: #3a3d4f;
213
+ --dm-button-color: #474a61;
214
+ --dm-primary-color: #6969ff;
215
+ --dm-secondary-color: #2cb1ff;
216
+ --dm-success-color: #3bf589;
217
+ --dm-warning-color: #f5c33b;
218
+ --dm-error-color: #f53b3b;
219
+ --dm-border-color: var(--dm-panel-color);
220
+ --dm-hover-brightness: 130%;
221
+ --dm-alt-hover-brightness: 75%;
222
+
223
+ --lm-font-color: #000;
224
+ --lm-alt-font-color: #fff;
225
+ --lm-check-color: #fff;
226
+ --lm-background-color: #fff;
227
+ --lm-alt-background-color: #fafafa;
228
+ --lm-panel-color: #ddd;
229
+ --lm-button-color: #ccc;
230
+ --lm-primary-color: #6969ff;
231
+ --lm-secondary-color: #2cb1ff;
232
+ --lm-success-color: #3bf589;
233
+ --lm-warning-color: #f5c33b;
234
+ --lm-error-color: #f53b3b;
235
+ --lm-border-color: var(--lm-panel-color);
236
+ --lm-hover-brightness: 105%;
237
+ --lm-alt-hover-brightness: 88%;
238
+ }
239
+
240
+ @media (prefers-color-scheme: light) {
241
+ :root {
242
+ --background-color: var(--lm-background-color);
243
+ --alt-background-color: var(--lm-alt-background-color);
244
+ --panel-color: var(--lm-panel-color);
245
+ --button-color: var(--lm-button-color);
246
+ --primary-color: var(--lm-primary-color);
247
+ --secondary-color: var(--lm-secondary-color);
248
+ --success-color: var(--lm-success-color);
249
+ --warning-color: var(--lm-warning-color);
250
+ --error-color: var(--lm-error-color);
251
+ --border-color: var(--lm-border-color);
252
+ --font-color: var(--lm-font-color);
253
+ --alt-font-color: var(--lm-alt-font-color);
254
+ --check-color: var(--lm-check-color);
255
+ --hover-brightness: var(--lm-hover-brightness);
256
+ --alt-hover-brightness: var(--lm-alt-hover-brightness);
257
+ }
258
+ }
259
+
260
+ @media (prefers-color-scheme: dark) {
261
+ :root {
262
+ --background-color: var(--dm-background-color);
263
+ --alt-background-color: var(--dm-alt-background-color);
264
+ --panel-color: var(--dm-panel-color);
265
+ --button-color: var(--dm-button-color);
266
+ --primary-color: var(--dm-primary-color);
267
+ --secondary-color: var(--dm-secondary-color);
268
+ --success-color: var(--dm-success-color);
269
+ --warning-color: var(--dm-warning-color);
270
+ --error-color: var(--dm-error-color);
271
+ --border-color: var(--dm-border-color);
272
+ --font-color: var(--dm-font-color);
273
+ --alt-font-color: var(--dm-alt-font-color);
274
+ --check-color: var(--dm-check-color);
275
+ --hover-brightness: var(--dm-hover-brightness);
276
+ --alt-hover-brightness: var(--dm-alt-hover-brightness);
277
+ }
278
+ }
279
+
280
+ .lm, :root:has(input[type="checkbox"].dm-toggle) {
281
+ --background-color: var(--lm-background-color);
282
+ --alt-background-color: var(--lm-alt-background-color);
283
+ --panel-color: var(--lm-panel-color);
284
+ --button-color: var(--lm-button-color);
285
+ --primary-color: var(--lm-primary-color);
286
+ --secondary-color: var(--lm-secondary-color);
287
+ --success-color: var(--lm-success-color);
288
+ --warning-color: var(--lm-warning-color);
289
+ --error-color: var(--lm-error-color);
290
+ --border-color: var(--lm-border-color);
291
+ --font-color: var(--lm-font-color);
292
+ --alt-font-color: var(--lm-alt-font-color);
293
+ --check-color: var(--lm-check-color);
294
+ --hover-brightness: var(--lm-hover-brightness);
295
+ --alt-hover-brightness: var(--lm-alt-hover-brightness);
296
+ }
297
+
298
+ .dm, :root:has(input[type="checkbox"].dm-toggle:checked) {
299
+ --background-color: var(--dm-background-color);
300
+ --alt-background-color: var(--dm-alt-background-color);
301
+ --panel-color: var(--dm-panel-color);
302
+ --button-color: var(--dm-button-color);
303
+ --primary-color: var(--dm-primary-color);
304
+ --secondary-color: var(--dm-secondary-color);
305
+ --success-color: var(--dm-success-color);
306
+ --warning-color: var(--dm-warning-color);
307
+ --error-color: var(--dm-error-color);
308
+ --border-color: var(--dm-border-color);
309
+ --font-color: var(--dm-font-color);
310
+ --alt-font-color: var(--dm-alt-font-color);
311
+ --check-color: var(--dm-check-color);
312
+ --hover-brightness: var(--dm-hover-brightness);
313
+ --alt-hover-brightness: var(--dm-alt-hover-brightness);
314
+ }
315
+
316
+ /*
317
+ -------------------------------------------------------------------------------
318
+ Base styles [02]
319
+ -------------------------------------------------------------------------------
320
+ */
321
+
322
+ ::selection {
323
+ background: var(--primary-color);
324
+ filter: invert(100%);
325
+ }
326
+
327
+ body {
328
+ background: var(--background-color);
329
+ }
330
+
331
+ * {
332
+ margin: 0;
333
+ padding: 0;
334
+ color: var(--font-color);
335
+ font-family: var(--font-family);
336
+ font-size: var(--font-size);
337
+ border-style: solid;
338
+ border-color: var(--border-color);
339
+ border-width: 0;
340
+ vertical-align: middle;
341
+ accent-color: (--var-primary);
342
+ }
343
+
344
+ :not(input, button, .button) {
345
+ line-height: 1.5;
346
+ }
347
+
348
+ h1, h2, h3, h4, h5, h6, p, b, i, strong, em, small, big, sup, sub, time, abbr, span {
349
+ color: inherit;
350
+ }
351
+
352
+ /*
353
+ -------------------------------------------------------------------------------
354
+ Typography [03]
355
+ -------------------------------------------------------------------------------
356
+ */
357
+
358
+ p {
359
+ text-align: justify;
360
+ text-justify: inter-word;
361
+ }
362
+
363
+ a {
364
+ color: var(--primary-color);
365
+ cursor: pointer;
366
+ text-decoration: none;
367
+ vertical-align: initial;
368
+ }
369
+
370
+ a:not(.button):hover {
371
+ text-decoration: underline;
372
+ }
373
+
374
+ h1, h2, h3, h4, h5, h6 {
375
+ font-weight: bold;
376
+ font-family: var(--header-font-family);
377
+ font-size: large;
378
+ }
379
+
380
+ ul, ol {
381
+ margin-left: calc(4 * var(--spacing));
382
+ }
383
+
384
+ ul {
385
+ list-style-type: var(--list-marker);
386
+ }
387
+
388
+ code, kbd {
389
+ background: var(--alt-background-color);
390
+ padding-top: calc(0.3 * var(--spacing));
391
+ padding-bottom: calc(0.3 * var(--spacing));
392
+ padding-left: calc(0.8 * var(--spacing));
393
+ padding-right: calc(0.8 * var(--spacing));
394
+ border-radius: var(--border-radius);
395
+ font-family: var(--mono-font-family);
396
+ overflow-x: scroll;
397
+ border-width: var(--panel-border);
398
+ }
399
+
400
+ :is(code, kbd) > * {
401
+ font-family: var(--mono-font-family);
402
+ }
403
+
404
+ .vbox > :is(kbd, mark) {
405
+ align-self: flex-start;
406
+ }
407
+
408
+ hr {
409
+ border-bottom-width: var(--border-width);
410
+ }
411
+
412
+ .vr {
413
+ border-right-width: var(--border-width);
414
+ }
415
+
416
+ ins {
417
+ color: var(--success-color);
418
+ }
419
+
420
+ del {
421
+ color: var(--error-color);
422
+ }
423
+
424
+ blockquote {
425
+ margin-left: calc(3*var(--spacing));
426
+ padding-left: var(--spacing);
427
+ border-left-width: var(--blockquote-border);
428
+ position: relative;
429
+ }
430
+
431
+ blockquote::before {
432
+ visibility: var(--blockquote-quotemark);
433
+ content: '“';
434
+ color: var(--border-color);
435
+ font-size: calc(4 * var(--font-size));
436
+ font-family: var(--blockquote-quotemark-font);
437
+ position: absolute;
438
+ left: calc(-3*var(--spacing));
439
+ top: calc(-1.333 * var(--font-size));
440
+ }
441
+
442
+ dt {
443
+ font-weight: bold;
444
+ }
445
+
446
+ dd {
447
+ margin-left: calc(3*var(--spacing));
448
+ }
449
+
450
+ mark {
451
+ padding: 0 0.4em;
452
+ border-radius: var(--border-radius);
453
+ background: var(--primary-color);
454
+ }
455
+
456
+ .font-xxl {
457
+ font-size: calc(3 * var(--font-size));
458
+ }
459
+
460
+ .font-xl {
461
+ font-size: calc(2 * var(--font-size));
462
+ }
463
+
464
+ .font-lg, big {
465
+ font-size: calc(1.25 * var(--font-size));
466
+ }
467
+
468
+ .font-md {
469
+ font-size: var(--font-size);
470
+ }
471
+
472
+ .font-sm, small {
473
+ font-size: calc(0.75 * var(--font-size));
474
+ }
475
+
476
+ .monospace {
477
+ font-family: var(--mono-font-family);
478
+ }
479
+
480
+ .bold {
481
+ font-weight: bold;
482
+ }
483
+
484
+ .italic {
485
+ font-style: italic;
486
+ }
487
+
488
+ .underline {
489
+ text-decoration: underline;
490
+ }
491
+
492
+ .strike-through {
493
+ text-decoration: line-through;
494
+ }
495
+
496
+ .text-center {
497
+ text-align: center;
498
+ }
499
+
500
+ .text-left {
501
+ text-align: left;
502
+ }
503
+
504
+ .text-right {
505
+ text-align: right;
506
+ }
507
+
508
+ .text-justify {
509
+ text-align: justify;
510
+ }
511
+
512
+ .text-indent {
513
+ text-indent: 3rem;
514
+ }
515
+
516
+ /*
517
+ -------------------------------------------------------------------------------
518
+ Form & Inputs [04]
519
+ -------------------------------------------------------------------------------
520
+ */
521
+
522
+ select, textarea, input:not([type="checkbox"], [type="radio"], [type="range"]), button, .button {
523
+ color: var(--font-color);
524
+ border-radius: var(--border-radius);
525
+ background: var(--button-color);
526
+ padding-top: calc(0.4 * var(--spacing));
527
+ padding-bottom: calc(0.4 * var(--spacing));
528
+ padding-left: var(--spacing);
529
+ padding-right: var(--spacing);
530
+ }
531
+
532
+ select, textarea, input:not([type="checkbox"], [type="radio"], [type="range"]) {
533
+ border-width: var(--input-border);
534
+ }
535
+
536
+ select:focus, textarea:focus, input:focus:not([type="checkbox"], [type="radio"], [type="range"]) {
537
+ outline: 2px solid var(--primary-color);
538
+ }
539
+
540
+ input[type="number"]::-webkit-inner-spin-button {
541
+ color: var(--alt-background-color);
542
+ }
543
+ input[type="color"] {
544
+ padding: 5px;
545
+ cursor: pointer;
546
+ }
547
+ input[type="color"]::-webkit-color-swatch {
548
+ border: none;
549
+ }
550
+ input[type="color"]::-moz-color-swatch {
551
+ border: none;
552
+ }
553
+
554
+ input:is([type="radio"], [type="checkbox"]) {
555
+ cursor: pointer;
556
+ }
557
+
558
+ ::placeholder {
559
+ color: var(--font-color);
560
+ opacity: 0.5;
561
+ }
562
+
563
+ :-ms-input-placeholder {
564
+ color: var(--font-color);
565
+ opacity: 0.5;
566
+ }
567
+
568
+ select {
569
+ cursor: pointer;
570
+ }
571
+
572
+ meter, progress {
573
+ height: 0.5em;
574
+ border-radius: 0.5em;
575
+ box-sizing: content-box;
576
+ background: var(--panel-color);
577
+ border-width: var(--input-border);
578
+ }
579
+
580
+ ::-webkit-meter-bar, ::-moz-meter-bar {
581
+ background: var(--primary-color);
582
+ }
583
+
584
+ ::-webkit-progress-bar, ::-moz-progress-bar {
585
+ background: var(--success-color);
586
+ }
587
+
588
+ /*
589
+ -------------------------------------------------------------------------------
590
+ Button & Button Group [05]
591
+ -------------------------------------------------------------------------------
592
+ */
593
+
594
+ button, .button {
595
+ display: inline-flex;
596
+ flex-direction: row;
597
+ align-items: center;
598
+ justify-content: center;
599
+ user-select: none;
600
+ box-sizing: content-box;
601
+ border-radius: var(--button-border-radius);
602
+ text-decoration: none;
603
+ cursor: pointer;
604
+ border-width: var(--button-border);
605
+ }
606
+
607
+ .vbox > :is(button, .button) {
608
+ align-self: flex-start;
609
+ }
610
+
611
+ @media (max-aspect-ratio: 1.2) {
612
+ .rbox > :is(button, .button) {
613
+ align-self: flex-start;
614
+ }
615
+ }
616
+
617
+ button:hover, .button:hover {
618
+ filter: brightness(var(--hover-brightness));
619
+ }
620
+
621
+ button:focus, .button:focus {
622
+ outline: none;
623
+ }
624
+
625
+ .button-group {
626
+ gap: 0;
627
+ }
628
+
629
+ .hbox > .button-group.flush {
630
+ margin-top: calc(-1 * var(--spacing));
631
+ margin-bottom: calc(-1 * var(--spacing));
632
+ }
633
+
634
+ .vbox > .button-group.flush {
635
+ margin-left: calc(-1 * var(--spacing));
636
+ margin-right: calc(-1 * var(--spacing));
637
+ }
638
+
639
+ .button-group {
640
+ align-self: stretch;
641
+ }
642
+
643
+ .button-group > * {
644
+ box-sizing: border-box;
645
+ }
646
+
647
+ .button-group.flush > * {
648
+ border-radius: 0;
649
+ background: var(--panel-color);
650
+ }
651
+
652
+ .hbox.button-group.flush > * {
653
+ height: 100%;
654
+ }
655
+
656
+ .vbox.button-group.flush > * {
657
+ width: 100%;
658
+ }
659
+
660
+ .hbox.button-group > :not(:first-child) {
661
+ border-left-width: var(--button-group-sep-border);
662
+ }
663
+
664
+ .vbox.button-group > :not(:first-child) {
665
+ border-top-width: var(--button-group-sep-border);
666
+ }
667
+
668
+ .hbox.button-group.flush > :not(:first-child) {
669
+ border-left-color: var(--button-color);
670
+ }
671
+
672
+ .vbox.button-group.flush > :not(:first-child) {
673
+ border-top-color: var(--button-color);
674
+ }
675
+
676
+ .hbox.button-group > :not(:first-child) {
677
+ border-top-left-radius: 0;
678
+ border-bottom-left-radius: 0;
679
+ }
680
+
681
+ .hbox.button-group > :not(:last-child) {
682
+ border-top-right-radius: 0;
683
+ border-bottom-right-radius: 0;
684
+ }
685
+
686
+ .vbox.button-group > :not(:first-child) {
687
+ border-top-left-radius: 0;
688
+ border-top-right-radius: 0;
689
+ }
690
+
691
+ .vbox.button-group > :not(:last-child) {
692
+ border-bottom-left-radius: 0;
693
+ border-bottom-right-radius: 0;
694
+ }
695
+
696
+ @media (min-aspect-ratio: 1.2) {
697
+ .rbox.button-group > :not(:first-child) {
698
+ border-left-color: var(--button-group-sep-color);
699
+ border-left-width: var(--button-group-sep-border);
700
+ }
701
+ .rbox.button-group > * {
702
+ height: 100%;
703
+ }
704
+ .rbox.button-group > :not(:first-child) {
705
+ border-top-left-radius: 0;
706
+ border-bottom-left-radius: 0;
707
+ }
708
+ .rbox.button-group > :not(:last-child) {
709
+ border-top-right-radius: 0;
710
+ border-bottom-right-radius: 0;
711
+ }
712
+ details.dropdown > :not(summary) {
713
+ min-width: 10em;
714
+ }
715
+ .button-group.flush > * {
716
+ min-width: 7em;
717
+ }
718
+ }
719
+
720
+ @media (max-aspect-ratio: 1.2) {
721
+ .rbox.button-group > :not(:first-child) {
722
+ border-top-color: var(--button-group-sep-color);
723
+ border-top-width: var(--button-group-sep-border);
724
+ }
725
+ .rbox.button-group > * {
726
+ width: 100%;
727
+ }
728
+ .rbox.button-group > :not(:first-child) {
729
+ border-top-left-radius: 0;
730
+ border-top-right-radius: 0;
731
+ }
732
+ .rbox.button-group > :not(:last-child) {
733
+ border-bottom-left-radius: 0;
734
+ border-bottom-right-radius: 0;
735
+ }
736
+ }
737
+
738
+ /*
739
+ -------------------------------------------------------------------------------
740
+ Checkbox & Radio Buttons [06]
741
+ -------------------------------------------------------------------------------
742
+ */
743
+
744
+ @keyframes checkbox-like-pulse {
745
+ 0% {
746
+ outline-width: 0;
747
+ }
748
+ 50% {
749
+ outline-width: 3px;
750
+ }
751
+ 100% {
752
+ outline-width: 0px;
753
+ }
754
+ }
755
+
756
+ @keyframes checkbox-border-color {
757
+ 0% {
758
+ border-color: var(--border-color);
759
+ }
760
+ 1% {
761
+ border-color: var(--primary-color);
762
+ }
763
+ 99% {
764
+ border-color: var(--primary-color);
765
+ }
766
+ 100% {
767
+ border-color: var(--border-color);
768
+ }
769
+ }
770
+
771
+ @keyframes checkbox-check-grow {
772
+ 0% {
773
+ scale: 0;
774
+ left: 40%;
775
+ top: 50%;
776
+ transform: translate(-50%, -50%) rotate(-45deg);
777
+ }
778
+ 100% {
779
+ scale: 1;
780
+ left: 50%;
781
+ top: 40%;
782
+ transform: translate(-50%, -50%) rotate(45deg);
783
+ }
784
+ }
785
+
786
+ input[type="radio"],
787
+ input[type="checkbox"] {
788
+ box-sizing: content-box;
789
+ margin-left: 0.5em;
790
+ margin-right: 0.5em;
791
+ }
792
+
793
+ input[type="radio"],
794
+ input[type="checkbox"]:not(.switch, .dm-toggle) {
795
+ box-sizing: border-box;
796
+ outline: 0 solid var(--primary-color);
797
+ width: 1em;
798
+ height: 1em;
799
+ background: var(--alt-background-color);
800
+ border-width: var(--border-width);
801
+ appearance: none;
802
+ }
803
+ input[type="radio"]:checked,
804
+ input[type="checkbox"]:checked:not(.switch, .dm-toggle) {
805
+ animation-duration: 0.2s;
806
+ animation-fill-mode: forwards;
807
+ }
808
+ input[type="radio"]:checked {
809
+ animation-name: checkbox-like-pulse;
810
+ }
811
+ input[type="checkbox"]:checked:not(.switch, .dm-toggle) {
812
+ animation-name: checkbox-like-pulse, checkbox-border-color;
813
+ }
814
+ input[type="checkbox"]:not(.switch, .dm-toggle) {
815
+ position: relative;
816
+ border-radius: 0.2em;
817
+ }
818
+ input[type="checkbox"]:not(.switch, .dm-toggle):checked {
819
+ background-color: var(--primary-color);
820
+ border-width: var(--input-border);
821
+ }
822
+ input[type="checkbox"]:not(.switch, .dm-toggle)::before {
823
+ content: "";
824
+ position: absolute;
825
+ border-width: var(--border-width);
826
+ border-color: var(--check-color);
827
+ border-bottom-style: solid;
828
+ border-right-style: solid;
829
+ width: 0.4em;
830
+ height: 0.65em;
831
+ scale: 0;
832
+ }
833
+ input[type="checkbox"]:not(.switch, .dm-toggle):checked::before {
834
+ animation-name: checkbox-check-grow;
835
+ animation-duration: 0.2s;
836
+ animation-fill-mode: forwards;
837
+ }
838
+ input[type="radio"] {
839
+ position: relative;
840
+ border-radius: 0.8em;
841
+ }
842
+ input[type="radio"]:checked {
843
+ border-width: var(--border-width);
844
+ border-color: var(--primary-color);
845
+ }
846
+ input[type="radio"]::before {
847
+ content: "";
848
+ position: absolute;
849
+ background: var(--primary-color);
850
+ border-radius: 0;
851
+ width: 0;
852
+ height: 0;
853
+ top: 50%;
854
+ left: 50%;
855
+ transform: translate(-50%, -50%);
856
+ transition: 0.2s;
857
+ }
858
+ input[type="radio"]:checked::before {
859
+ content: "";
860
+ position: absolute;
861
+ background: var(--primary-color);
862
+ border-radius: 0.3em;
863
+ width: 0.5em;
864
+ height: 0.5em;
865
+ }
866
+
867
+ /*
868
+ -------------------------------------------------------------------------------
869
+ Toggle Switch [07]
870
+ -------------------------------------------------------------------------------
871
+ */
872
+
873
+ input[type="checkbox"].switch {
874
+ background: var(--button-color);
875
+ border-width: var(--input-border);
876
+ appearance: none;
877
+ border-radius: 1em;
878
+ height: 1em;
879
+ width: 1.75em;
880
+ position: relative;
881
+ }
882
+ input[type="checkbox"].switch::before {
883
+ position: absolute;
884
+ content: "";
885
+ background: var(--check-color);
886
+ border-radius: 1em;
887
+ height: 80%;
888
+ aspect-ratio: 1;
889
+ top: 50%;
890
+ transform: translate(0, -50%);
891
+ left: 7%;
892
+ transition: 0.3s;
893
+ }
894
+
895
+ input[type="checkbox"].switch:checked::before {
896
+ transform: translate(90%, -50%);
897
+ }
898
+
899
+ input[type="checkbox"].switch:checked {
900
+ background: var(--primary-color);
901
+ }
902
+
903
+ input[type="checkbox"].dm-toggle::before {
904
+ content: "☀️";
905
+ font-size: 60%;
906
+ text-align: center;
907
+ line-height: 122%;
908
+ padding-top: 0.05em;
909
+ -webkit-text-fill-color: transparent;
910
+ text-shadow: 0 0 0 var(--font-color);
911
+ }
912
+
913
+ input[type="checkbox"].dm-toggle:checked::before {
914
+ content: "🌛";
915
+ }
916
+
917
+ input[type="checkbox"].dm-toggle.switch {
918
+ background: var(--font-color);
919
+ }
920
+
921
+ input[type="checkbox"].dm-toggle.switch::before {
922
+ background: var(--button-color);
923
+ }
924
+
925
+ input[type="checkbox"].dm-toggle:not(.switch) {
926
+ appearance: none;
927
+ }
928
+
929
+ input[type="checkbox"].dm-toggle:not(.switch)::before {
930
+ font-size: 1.2em;
931
+ line-height: 100%;
932
+ }
933
+
934
+ /*
935
+ -------------------------------------------------------------------------------
936
+ Table [08]
937
+ -------------------------------------------------------------------------------
938
+ */
939
+
940
+ tr:first-child {
941
+ background: var(--table-header-bg);
942
+ }
943
+
944
+ table {
945
+ border-radius: var(--border-radius);
946
+ border-width: var(--table-border);
947
+ border-spacing: 0;
948
+ }
949
+
950
+ td {
951
+ padding: calc(0.4 * var(--spacing)) var(--spacing);
952
+ border-top-width: var(--table-h-border);
953
+ border-left-width: var(--table-v-border);
954
+ }
955
+
956
+ th {
957
+ padding: calc(0.4 * var(--spacing)) var(--spacing);
958
+ border-bottom-width: var(--border-width);
959
+ }
960
+
961
+ td:first-child {
962
+ border-left: none;
963
+ }
964
+
965
+ /*
966
+ -------------------------------------------------------------------------------
967
+ Summary, Details, Dropdown [09]
968
+ -------------------------------------------------------------------------------
969
+ */
970
+
971
+ summary {
972
+ cursor: pointer;
973
+ list-style: none;
974
+ position: relative;
975
+ padding-left: 1em;
976
+ }
977
+
978
+ summary::before {
979
+ content: "";
980
+ width: 0.5em;
981
+ height: 0.5em;
982
+ border-right-style: solid;
983
+ border-bottom-style: solid;
984
+ border-color: var(--font-color);
985
+ position: absolute;
986
+ top: 0.5em;
987
+ left: 0;
988
+ transition: 0.4s;
989
+ transform-origin: center center;
990
+ transform: rotate(-45deg);
991
+ }
992
+
993
+ details > :not(summary) {
994
+ margin-left: 1em;
995
+ }
996
+
997
+ details[open] > summary::before {
998
+ transform: rotate(45deg);
999
+ }
1000
+
1001
+ details[open] > :not(summary) {
1002
+ overflow: hidden;
1003
+ animation: details-expand-animation 1s;
1004
+ }
1005
+
1006
+ @keyframes details-expand-animation {
1007
+ 0% {
1008
+ max-height: 1em;
1009
+ }
1010
+ 99% {
1011
+ max-height: 2000px;
1012
+ }
1013
+ 100% {
1014
+ max-height: none;
1015
+ }
1016
+ }
1017
+
1018
+ details.dropdown {
1019
+ position: relative;
1020
+ }
1021
+
1022
+ details.dropdown > :not(summary) {
1023
+ padding: var(--spacing);
1024
+ }
1025
+
1026
+ details.dropdown > :not(summary) {
1027
+ border-radius: var(--border-radius);
1028
+ background: var(--panel-color);
1029
+ border-width: var(--panel-border);
1030
+ position: absolute;
1031
+ left: -1em;
1032
+ top: 100%;
1033
+ z-index: 1;
1034
+ }
1035
+
1036
+ details.dropdown > :not(summary).right {
1037
+ right: 0;
1038
+ left: auto;
1039
+ }
1040
+
1041
+ /*
1042
+ -------------------------------------------------------------------------------
1043
+ Scrollbar [10]
1044
+ -------------------------------------------------------------------------------
1045
+ */
1046
+
1047
+ ::-webkit-scrollbar {
1048
+ width: 5px;
1049
+ }
1050
+
1051
+ ::-webkit-scrollbar-track {
1052
+ background-color: var(--alt-background-color);
1053
+ }
1054
+
1055
+ ::-webkit-scrollbar-thumb {
1056
+ background: var(--button-color);
1057
+ }
1058
+
1059
+ ::-webkit-scrollbar-thumb:hover {
1060
+ background: var(--button-color);
1061
+ }
1062
+
1063
+ * {
1064
+ scrollbar-color: var(--button-color) var(--alt-background-color);
1065
+ }
1066
+
1067
+ .scroll-x {
1068
+ overflow-x: scroll;
1069
+ }
1070
+
1071
+ .scroll-y {
1072
+ overflow-y: scroll;
1073
+ }
1074
+
1075
+ .hbox > header + .scroll-x {
1076
+ margin-left: calc(-1 * var(--spacing));
1077
+ }
1078
+
1079
+ .hbox > .scroll-x:has(+ footer) {
1080
+ margin-right: calc(-1 * var(--spacing));
1081
+ }
1082
+
1083
+ .vbox > header + .scroll-y {
1084
+ margin-top: calc(-1 * var(--spacing));
1085
+ }
1086
+
1087
+ .vbox > .scroll-y:has(+ footer) {
1088
+ margin-bottom: calc(-1 * var(--spacing));
1089
+ }
1090
+
1091
+ /*
1092
+ -------------------------------------------------------------------------------
1093
+ Layouts [11]
1094
+ -------------------------------------------------------------------------------
1095
+ */
1096
+
1097
+ :is(.hbox, .vbox, .rbox) > * {
1098
+ flex-shrink: 999;
1099
+ }
1100
+
1101
+ :is(.hbox, .vbox, .rbox) > :is(a, button, input) {
1102
+ flex-shrink: 0;
1103
+ }
1104
+
1105
+ :is(.hbox, .vbox, .rbox) > .center {
1106
+ align-self: center;
1107
+ }
1108
+
1109
+ :is(.hbox, .vbox, .rbox) > .stretch {
1110
+ align-self: stretch;
1111
+ }
1112
+
1113
+ :is(.vbox, .hbox, .rbox) > :is(.left, .top) {
1114
+ align-self: flex-start;
1115
+ }
1116
+
1117
+ :is(.vbox, .hbox, .rbox) > :is(.right, .bottom) {
1118
+ align-self: flex-end;
1119
+ }
1120
+
1121
+ .items-center {
1122
+ align-items: center;
1123
+ }
1124
+
1125
+ .items-stretch {
1126
+ align-items: stretch;
1127
+ }
1128
+
1129
+ .items-left,
1130
+ .items-top {
1131
+ align-items: flex-start;
1132
+ }
1133
+
1134
+ .items-right,
1135
+ .items-bottom {
1136
+ align-items: flex-end;
1137
+ }
1138
+
1139
+ .hbox,
1140
+ .vbox,
1141
+ .rbox {
1142
+ display: flex;
1143
+ gap: var(--spacing);
1144
+ }
1145
+
1146
+ .vbox {
1147
+ flex-direction: column;
1148
+ }
1149
+
1150
+ .hbox {
1151
+ flex-direction: row;
1152
+ }
1153
+
1154
+ @media (min-aspect-ratio: 1.2) {
1155
+ .rbox {
1156
+ flex-direction: row;
1157
+ }
1158
+ }
1159
+
1160
+ @media (max-aspect-ratio: 1.2) {
1161
+ .rbox {
1162
+ flex-direction: column;
1163
+ }
1164
+ }
1165
+
1166
+ .spacer {
1167
+ flex-grow: 1;
1168
+ }
1169
+
1170
+ .graphic {
1171
+ overflow-y: hidden;
1172
+ position: relative;
1173
+ }
1174
+
1175
+ .graphic > * {
1176
+ position: absolute;
1177
+ }
1178
+
1179
+ .graphic > .left {
1180
+ left: 10%;
1181
+ }
1182
+
1183
+ .graphic > .right {
1184
+ right: 10%;
1185
+ }
1186
+
1187
+ .graphic > .top {
1188
+ top: 10%;
1189
+ }
1190
+
1191
+ .graphic > .bottom {
1192
+ bottom: 10%;
1193
+ }
1194
+
1195
+ .graphic > :is(.left, .right).center {
1196
+ top: 50%;
1197
+ transform: translate(0, -50%);
1198
+ }
1199
+
1200
+ .graphic > :is(.top, .bottom).center {
1201
+ left: 50%;
1202
+ transform: translate(-50%, 0);
1203
+ }
1204
+
1205
+ .graphic > :not(.left, .right, .top, .bottom).center {
1206
+ top: 50%;
1207
+ left: 50%;
1208
+ transform: translate(-50%, -50%);
1209
+ }
1210
+
1211
+ /*
1212
+ -------------------------------------------------------------------------------
1213
+ Header & Footer [12]
1214
+ -------------------------------------------------------------------------------
1215
+ */
1216
+
1217
+ header, footer {
1218
+ background: var(--panel-color);
1219
+ padding: var(--spacing);
1220
+ }
1221
+
1222
+ header.hbox, footer.hbox {
1223
+ align-items: center;
1224
+ }
1225
+
1226
+ header {
1227
+ border-bottom-width: var(--panel-border);
1228
+ }
1229
+
1230
+ footer {
1231
+ border-top-width: var(--panel-border);
1232
+ }
1233
+
1234
+ .hbox:is(.card, .padding) > header {
1235
+ margin-top: calc(-1 * var(--spacing));
1236
+ margin-left: calc(-1 * var(--spacing));
1237
+ margin-bottom: calc(-1 * var(--spacing));
1238
+ }
1239
+
1240
+ .vbox:is(.card, .padding) > header {
1241
+ margin-top: calc(-1 * var(--spacing));
1242
+ margin-left: calc(-1 * var(--spacing));
1243
+ margin-right: calc(-1 * var(--spacing));
1244
+ }
1245
+
1246
+ .hbox:is(.card, .padding) > footer {
1247
+ margin-top: calc(-1 * var(--spacing));
1248
+ margin-right: calc(-1 * var(--spacing));
1249
+ margin-bottom: calc(-1 * var(--spacing));
1250
+ }
1251
+
1252
+ .vbox:is(.card, .padding) > footer {
1253
+ margin-left: calc(-1 * var(--spacing));
1254
+ margin-right: calc(-1 * var(--spacing));
1255
+ margin-bottom: calc(-1 * var(--spacing));
1256
+ }
1257
+
1258
+ @media (min-aspect-ratio: 1.2) {
1259
+ .rbox:is(.card, .padding) > header {
1260
+ margin-top: calc(-1 * var(--spacing));
1261
+ margin-left: calc(-1 * var(--spacing));
1262
+ margin-bottom: calc(-1 * var(--spacing));
1263
+ }
1264
+ .rbox:is(.card, .padding) > footer {
1265
+ margin-top: calc(-1 * var(--spacing));
1266
+ margin-right: calc(-1 * var(--spacing));
1267
+ margin-bottom: calc(-1 * var(--spacing));
1268
+ }
1269
+ }
1270
+
1271
+ @media (max-aspect-ratio: 1.2) {
1272
+ .rbox:is(.card, .padding) > header {
1273
+ margin-top: calc(-1 * var(--spacing));
1274
+ margin-left: calc(-1 * var(--spacing));
1275
+ margin-right: calc(-1 * var(--spacing));
1276
+ }
1277
+ .rbox:is(.card, .padding) > footer {
1278
+ margin-left: calc(-1 * var(--spacing));
1279
+ margin-right: calc(-1 * var(--spacing));
1280
+ margin-bottom: calc(-1 * var(--spacing));
1281
+ }
1282
+ }
1283
+
1284
+ /*
1285
+ -------------------------------------------------------------------------------
1286
+ Card & Hero [13]
1287
+ -------------------------------------------------------------------------------
1288
+ */
1289
+ .card {
1290
+ border-width: var(--border-width);
1291
+ border-radius: var(--border-radius);
1292
+ background: var(--alt-background-color);
1293
+ padding: var(--spacing);
1294
+ }
1295
+
1296
+ .hero {
1297
+ background-size: cover;
1298
+ background-position: center;
1299
+ min-height: 100%;
1300
+ min-width: 100%;
1301
+ }
1302
+
1303
+ /*
1304
+ -------------------------------------------------------------------------------
1305
+ Modal, Close [14]
1306
+ -------------------------------------------------------------------------------
1307
+ */
1308
+
1309
+ dialog {
1310
+ background: transparent;
1311
+ border-radius: var(--border-radius);
1312
+ box-shadow: 0 0 50px #0005;
1313
+ }
1314
+
1315
+ .modal {
1316
+ position: fixed;
1317
+ top: 50vh;
1318
+ left: 50vw;
1319
+ transform: translate(-50%, -50%);
1320
+ margin: unset;
1321
+ }
1322
+
1323
+ .close {
1324
+ width: 2em;
1325
+ height: 2em;
1326
+ position: relative;
1327
+ appearance: none;
1328
+ background: none;
1329
+ padding: 0;
1330
+ }
1331
+
1332
+ .close:hover {
1333
+ filter: brightness(150%);
1334
+ }
1335
+
1336
+ .close::before {
1337
+ content: "";
1338
+ border-style: solid;
1339
+ border-color: var(--font-color);
1340
+ border-width: var(--border-width) 0 0 0;
1341
+ position: absolute;
1342
+ top: 0.85em;
1343
+ left: 0.35em;
1344
+ height: 0;
1345
+ width: 1.3em;
1346
+ transform-origin: center;
1347
+ transform: rotate(45deg);
1348
+ }
1349
+
1350
+ .close::after {
1351
+ content: "";
1352
+ border-style: solid;
1353
+ border-color: var(--font-color);
1354
+ border-width: var(--border-width) 0 0 0;
1355
+ position: absolute;
1356
+ top: 0.85em;
1357
+ left: 0.35em;
1358
+ height: 0;
1359
+ width: 1.3em;
1360
+ transform-origin: center;
1361
+ transform: rotate(-45deg);
1362
+ }
1363
+
1364
+ /*
1365
+ -------------------------------------------------------------------------------
1366
+ Sidebar [15]
1367
+ -------------------------------------------------------------------------------
1368
+ */
1369
+
1370
+ :is(.vbox, .hbox, .rbox) > details.sidebar {
1371
+ margin-right: calc(-1 * var(--spacing));
1372
+ }
1373
+
1374
+ details.sidebar {
1375
+ position: relative;
1376
+ background: var(--alt-background-color);
1377
+ border-right-width: var(--panel-border);
1378
+ }
1379
+
1380
+ details.sidebar > *:not(summary) {
1381
+ margin: 0;
1382
+ height: 100%;
1383
+ }
1384
+
1385
+ details.sidebar > summary {
1386
+ display: block;
1387
+ appearance: none;
1388
+ position: absolute;
1389
+ padding: 0;
1390
+ width: 2em;
1391
+ height: 2em;
1392
+ top: var(--spacing);
1393
+ left: var(--spacing);
1394
+ }
1395
+
1396
+ details.sidebar > summary::before {
1397
+ content: "";
1398
+ position: absolute;
1399
+ top: 0.5em;
1400
+ left: 0.5em;
1401
+ width: 1em;
1402
+ height: calc(0.5em + 0.5 * var(--border-width));
1403
+ transition: 0.4s;
1404
+ transform: none;
1405
+ border-color: var(--font-color);
1406
+ border-width: var(--border-width) 0 var(--border-width) 0;
1407
+ border-style: solid;
1408
+ }
1409
+
1410
+ details.sidebar > summary::after {
1411
+ content: "";
1412
+ position: absolute;
1413
+ top: 1em;
1414
+ left: 0.5em;
1415
+ width: 1em;
1416
+ height: 0.5em;
1417
+ transition: 0.4s;
1418
+ border-color: var(--font-color);
1419
+ border-bottom-width: var(--border-width);
1420
+ border-bottom-style: solid;
1421
+ }
1422
+
1423
+ details.sidebar[open] {
1424
+ overflow: hidden;
1425
+ animation: sidebar-expand-animation 0.4s;
1426
+ min-width: min(17em, 80vw);
1427
+ }
1428
+
1429
+ @keyframes sidebar-expand-animation {
1430
+ 0% {
1431
+ min-width: 0;
1432
+ max-width: 0;
1433
+ }
1434
+ 100% {
1435
+ min-width: min(17em, 80vw);
1436
+ max-width: none;
1437
+ }
1438
+ }
1439
+
1440
+ details.sidebar[open] > summary {
1441
+ left: calc(100% - 2em - var(--spacing));
1442
+ }
1443
+
1444
+ details.sidebar[open] > summary::before {
1445
+ top: 0.95em;
1446
+ left: 0.35em;
1447
+ border-bottom-style: none;
1448
+ height: 0;
1449
+ width: 1.3em;
1450
+ transition: 0.4s 0.2s;
1451
+ transform-origin: center;
1452
+ transform: rotate(45deg);
1453
+ }
1454
+
1455
+ details.sidebar[open] > summary::after {
1456
+ top: 0.95em;
1457
+ left: 0.35em;
1458
+ height: 0;
1459
+ width: 1.3em;
1460
+ transition: 0.4s 0.2s;
1461
+ transform-origin: center;
1462
+ transform: rotate(-45deg);
1463
+ }
1464
+
1465
+ details.sidebar[open] > :not(summary) {
1466
+ animation: none;
1467
+ }
1468
+
1469
+ details.sidebar:not([open]) ~ * > header {
1470
+ padding-left: 2.5em;
1471
+ }
1472
+
1473
+ /*
1474
+ -------------------------------------------------------------------------------
1475
+ Utility [16]
1476
+ -------------------------------------------------------------------------------
1477
+ */
1478
+
1479
+ :is(.hbox, .vbox, .rbox, *).no-gap {
1480
+ gap: 0;
1481
+ }
1482
+
1483
+ .background-color {
1484
+ background: var(--background-color);
1485
+ }
1486
+
1487
+ .alt-background-color {
1488
+ background: var(--alt-background-color);
1489
+ }
1490
+
1491
+ .panel-color {
1492
+ background: var(--panel-color);
1493
+ }
1494
+
1495
+ .font-alt {
1496
+ color: var(--alt-font-color);
1497
+ }
1498
+
1499
+ :not(button, .button).primary {
1500
+ border-color: var(--primary-color);
1501
+ color: var(--primary-color);
1502
+ }
1503
+
1504
+ :not(button, .button).secondary {
1505
+ border-color: var(--secondary-color);
1506
+ color: var(--secondary-color);
1507
+ }
1508
+
1509
+ :not(button, .button).success {
1510
+ border-color: var(--success-color);
1511
+ color: var(--success-color);
1512
+ }
1513
+
1514
+ :not(button, .button).warning {
1515
+ border-color: var(--warning-color);
1516
+ color: var(--warning-color);
1517
+ }
1518
+
1519
+ :not(button, .button).error {
1520
+ border-color: var(--error-color);
1521
+ color: var(--error-color);
1522
+ }
1523
+
1524
+ :is(button, .button):is(.primary, .secondary, .success, .warning, .error):hover {
1525
+ filter: brightness(var(--alt-hover-brightness));
1526
+ }
1527
+
1528
+ :is(button, .button, header, footer):is(.primary, .secondary, .success, .warning, .error) {
1529
+ color: var(--alt-font-color);
1530
+ }
1531
+
1532
+ :is(button, .button, header, footer).primary {
1533
+ background: var(--primary-color);
1534
+ }
1535
+
1536
+ :is(button, .button, header, footer).secondary {
1537
+ background: var(--secondary-color);
1538
+ }
1539
+
1540
+ :is(button, .button, header, footer).success {
1541
+ background: var(--success-color);
1542
+ }
1543
+
1544
+ :is(button, .button, header, footer).warning {
1545
+ background: var(--warning-color);
1546
+ }
1547
+
1548
+ :is(button, .button, header, footer).error {
1549
+ background: var(--error-color);
1550
+ }
1551
+
1552
+ .card:is(.primary, .secondary, .success, .warning, .error) > :is(header, footer) {
1553
+ color: var(--alt-font-color);
1554
+ }
1555
+
1556
+ .card.primary > :is(header, footer) {
1557
+ background: var(--primary-color);
1558
+ }
1559
+
1560
+ .card.secondary > :is(header, footer) {
1561
+ background: var(--secondary-color);
1562
+ }
1563
+
1564
+ .card.success > :is(header, footer) {
1565
+ background: var(--success-color);
1566
+ }
1567
+
1568
+ .card.warning > :is(header, footer) {
1569
+ background: var(--warning-color);
1570
+ }
1571
+
1572
+ .card.error > :is(header, footer) {
1573
+ background: var(--error-color);
1574
+ }
1575
+
1576
+ .square {
1577
+ height: 1.5em;
1578
+ width: 1.5em;
1579
+ text-align: center;
1580
+ padding: calc(0.4 * var(--spacing));
1581
+ }
1582
+
1583
+ .circle {
1584
+ border-radius: 50%;
1585
+ height: 1.5em;
1586
+ width: 1.5em;
1587
+ text-align: center;
1588
+ padding: calc(0.4 * var(--spacing));
1589
+ }
1590
+
1591
+ .pill {
1592
+ border-radius: 1.5em;
1593
+ }
1594
+
1595
+ .icon {
1596
+ text-shadow: 0 0 0 var(--font-color);
1597
+ -webkit-text-fill-color: transparent;
1598
+ }
1599
+
1600
+ .no-padding {
1601
+ padding: 0;
1602
+ }
1603
+
1604
+ .padding {
1605
+ padding: var(--spacing);
1606
+ }
1607
+
1608
+ .padding-left {
1609
+ padding-left: var(--spacing);
1610
+ }
1611
+
1612
+ .padding-right {
1613
+ padding-right: var(--spacing);
1614
+ }
1615
+
1616
+ .padding-top {
1617
+ padding-top: var(--spacing);
1618
+ }
1619
+
1620
+ .padding-bottom {
1621
+ padding-bottom: var(--spacing);
1622
+ }
1623
+
1624
+ .no-margin {
1625
+ margin: 0;
1626
+ }
1627
+
1628
+ .margin {
1629
+ margin: var(--spacing);
1630
+ }
1631
+
1632
+ .margin-right {
1633
+ margin-right: var(--spacing);
1634
+ }
1635
+
1636
+ .margin-left {
1637
+ margin-left: var(--spacing);
1638
+ }
1639
+
1640
+ .margin-top {
1641
+ margin-top: var(--spacing);
1642
+ }
1643
+
1644
+ .margin-bottom {
1645
+ margin-bottom: var(--spacing);
1646
+ }
1647
+
1648
+ .rounded {
1649
+ border-radius: var(--border-radius);
1650
+ }
1651
+
1652
+ .no-border {
1653
+ border: none;
1654
+ }
1655
+
1656
+ .border {
1657
+ border-width: var(--border-width);
1658
+ border-radius: var(--border-radius);
1659
+ }
1660
+
1661
+ .border-right {
1662
+ border-right-width: var(--border-width);
1663
+ border-radius: var(--border-radius);
1664
+ }
1665
+
1666
+ .border-left {
1667
+ border-left-width: var(--border-width);
1668
+ border-radius: var(--border-radius);
1669
+ }
1670
+
1671
+ .border-top {
1672
+ border-top-width: var(--border-width);
1673
+ border-radius: var(--border-radius);
1674
+ }
1675
+
1676
+ .border-bottom {
1677
+ border-bottom-width: var(--border-width);
1678
+ border-radius: var(--border-radius);
1679
+ }
1680
+
1681
+ .height-quarter {
1682
+ height: 25%;
1683
+ }
1684
+
1685
+ .height-third {
1686
+ height: 33%;
1687
+ }
1688
+
1689
+ .height-half {
1690
+ height: 50%;
1691
+ }
1692
+
1693
+ .height-two-thirds {
1694
+ height: 66%;
1695
+ }
1696
+
1697
+ .height-three-quarters {
1698
+ height: 75%;
1699
+ }
1700
+
1701
+ .height-full {
1702
+ height: 100%;
1703
+ }
1704
+
1705
+ .width-quarter {
1706
+ width: 25%;
1707
+ }
1708
+
1709
+ .width-third {
1710
+ width: 33%;
1711
+ }
1712
+
1713
+ .width-half {
1714
+ width: 50%;
1715
+ }
1716
+
1717
+ .width-two-thirds {
1718
+ width: 66%;
1719
+ }
1720
+
1721
+ .width-three-quarters {
1722
+ width: 75%;
1723
+ }
1724
+
1725
+ .width-full {
1726
+ width: 100%;
1727
+ }
1728
+
1729
+ .fullscreen {
1730
+ position: fixed;
1731
+ margin: 0;
1732
+ top: 0;
1733
+ left: 0;
1734
+ height: 100%;
1735
+ width: 100%;
1736
+ }
1737
+
1738
+ .wrap {
1739
+ flex-wrap: wrap;
1740
+ }
1741
+
1742
+ :root:has(input[type="checkbox"].dm-toggle:not(:checked)) .lm-hidden {
1743
+ display: none;
1744
+ }
1745
+
1746
+ :root:has(input[type="checkbox"].dm-toggle:not(:checked)) .lm-invert {
1747
+ -webkit-filter: invert(1);
1748
+ filter: invert(1);
1749
+ }
1750
+
1751
+ :root:has(input[type="checkbox"].dm-toggle:checked) .dm-hidden {
1752
+ display: none;
1753
+ }
1754
+
1755
+ :root:has(input[type="checkbox"].dm-toggle:checked) .dm-invert {
1756
+ -webkit-filter: invert(1);
1757
+ filter: invert(1);
1758
+ }
1759
+
1760
+ @media (prefers-color-scheme: dark) {
1761
+ :root:not(:has(input[type="checkbox"].dm-toggle)) .dm-hidden {
1762
+ display: none;
1763
+ }
1764
+ :root:not(:has(input[type="checkbox"].dm-toggle)) .dm-invert {
1765
+ -webkit-filter: invert(1);
1766
+ filter: invert(1);
1767
+ }
1768
+ }
1769
+
1770
+ @media (prefers-color-scheme: light) {
1771
+ :root:not(:has(input[type="checkbox"].dm-toggle)) .lm-hidden {
1772
+ display: none;
1773
+ }
1774
+ :root:not(:has(input[type="checkbox"].dm-toggle)) .lm-invert {
1775
+ -webkit-filter: invert(1);
1776
+ filter: invert(1);
1777
+ }
1778
+ }
1779
+
1780
+ .height-input {
1781
+ height: 1.5em;
1782
+ }
1783
+
1784
+ .height-font-sm {
1785
+ height: calc(0.75 * var(--font-size));
1786
+ }
1787
+
1788
+ .height-font-md {
1789
+ height: var(--font-size);
1790
+ }
1791
+
1792
+ .height-font-lg {
1793
+ height: calc(1.25 * var(--font-size));
1794
+ }
1795
+
1796
+ .height-font-xl {
1797
+ height: calc(2 * var(--font-size));
1798
+ }
1799
+
1800
+ .height-font-xxl {
1801
+ height: calc(3 * var(--font-size));
1802
+ }
1803
+
1804
+ .width-xs {
1805
+ width: 5rem;
1806
+ flex-shrink: 1;
1807
+ }
1808
+ .width-sm {
1809
+ width: 15rem;
1810
+ flex-shrink: 1;
1811
+ }
1812
+ .width-md {
1813
+ width: 25rem;
1814
+ flex-shrink: 1;
1815
+ }
1816
+ .width-lg {
1817
+ width: 45rem;
1818
+ flex-shrink: 1;
1819
+ }
1820
+ .width-xl {
1821
+ width: 65rem;
1822
+ flex-shrink: 1;
1823
+ }
1824
+ .width-xxl {
1825
+ width: 75rem;
1826
+ flex-shrink: 1;
1827
+ }
1828
+
1829
+ .height-xs {
1830
+ height: 5rem;
1831
+ }
1832
+ .height-sm {
1833
+ height: 15rem;
1834
+ }
1835
+ .height-md {
1836
+ height: 25rem;
1837
+ }
1838
+ .height-lg {
1839
+ height: 45rem;
1840
+ }
1841
+ .height-xl {
1842
+ height: 65rem;
1843
+ }
1844
+ .height-xxl {
1845
+ height: 75rem;
1846
+ }
1847
+
1848
+ @media (min-aspect-ratio: 1.2) {
1849
+ .landscape-hidden {
1850
+ display: none;
1851
+ }
1852
+ }
1853
+
1854
+ @media (max-aspect-ratio: 1.2) {
1855
+ .width-md {
1856
+ width: 100%;
1857
+ }
1858
+ .width-lg {
1859
+ width: 100%;
1860
+ }
1861
+ .width-xl {
1862
+ width: 100%;
1863
+ }
1864
+ .width-xxl {
1865
+ width: 100%;
1866
+ }
1867
+ .portrait-hidden {
1868
+ display: none;
1869
+ }
1870
+ }