UNPKG

31 kBCSSView Raw
1/*!
2 * Pico.css v1.0.1 (https://picocss.com)
3 * Copyright 2019 - Licensed under MIT
4 */
5/**
6 * Theme: default
7 */
8[data-theme="light"],
9:root:not([data-theme="dark"]) {
10 --background: #FFF;
11 --text: #415462;
12 --h1: #1b2832;
13 --h2: #2c3d49;
14 --h3: #415462;
15 --h4: #596b78;
16 --h5: #73828c;
17 --h6: #8a99a3;
18 --primary: #1095c1;
19 --primary-hover: #08769b;
20 --primary-focus: rgba(16, 149, 193, 0.125);
21 --primary-inverse: #FFF;
22 --secondary: #73828c;
23 --secondary-hover: #415462;
24 --secondary-focus: rgba(115, 130, 140, 0.125);
25 --secondary-inverse: #FFF;
26 --contrast: #2c3d49;
27 --contrast-hover: #0d1419;
28 --contrast-focus: rgba(115, 130, 140, 0.125);
29 --contrast-border: rgba(255, 223, 128, 0.5);
30 --contrast-inverse: #FFF;
31 --input-background: #FFF;
32 --input-border: #c8d1d8;
33 --valid: #288a6a;
34 --invalid: #b94646;
35 --mark: rgba(255, 223, 128, 0.5);
36 --mark-text: #2c3d49;
37 --muted-text: #7e8d98;
38 --muted-background: #edf0f3;
39 --muted-border: #edf0f3;
40 --card-background: #FFF;
41 --card-sections: #f3f5f7;
42 --card-shadow: 0 0.125rem 1rem rgba(27, 40, 50, 0.04), 0 0.125rem 2rem rgba(27, 40, 50, 0.08), 0 0 0 0.0625rem rgba(27, 40, 50, 0.024);
43 --code-background: #f3f5f7;
44 --code-inlined: #edf0f3;
45 --code-color-1: #73828c;
46 --code-color-2: #b34d80;
47 --code-color-3: #3d888f;
48 --code-color-4: #998866;
49 --code-color-5: #96a4ae;
50 --table-border: rgba(237, 240, 243, 0.75);
51 --table-stripping: rgba(115, 130, 140, 0.04);
52}
53
54@media only screen and (prefers-color-scheme: dark) {
55 :root:not([data-theme="light"]) {
56 --background: #10181e;
57 --text: #a2afb9;
58 --h1: #edf0f3;
59 --h2: #d5dce2;
60 --h3: #bbc6ce;
61 --h4: #a2afb9;
62 --h5: #8a99a3;
63 --h6: #73828c;
64 --primary: #1095c1;
65 --primary-hover: #1ab3e6;
66 --primary-focus: rgba(16, 149, 193, 0.25);
67 --primary-inverse: #FFF;
68 --secondary: #596b78;
69 --secondary-hover: #73828c;
70 --secondary-focus: rgba(89, 107, 120, 0.25);
71 --secondary-inverse: #FFF;
72 --contrast: #d5dce2;
73 --contrast-hover: #FFF;
74 --contrast-focus: rgba(89, 107, 120, 0.25);
75 --contrast-border: rgba(255, 223, 128, 0.33);
76 --contrast-inverse: #10181e;
77 --input-background: #10181e;
78 --input-border: #374956;
79 --valid: #1f7a5c;
80 --invalid: #943838;
81 --mark: rgba(255, 223, 128, 0.5);
82 --mark-text: #FFF;
83 --muted-text: #73828c;
84 --muted-background: #10181e;
85 --muted-border: #23333e;
86 --card-background: #17232b;
87 --card-sections: #141d24;
88 --card-shadow: 0 0.125rem 1rem rgba(0, 0, 0, 0.08), 0 0.125rem 2rem rgba(0, 0, 0, 0.04), 0 0 0 0.0625rem rgba(0, 0, 0, 0.1);
89 --code-background: #141d24;
90 --code-inlined: rgba(65, 84, 98, 0.25);
91 --code-color-1: #73828c;
92 --code-color-2: #a65980;
93 --code-color-3: #599fa6;
94 --code-color-4: #8c8473;
95 --code-color-5: #4d606d;
96 --table-border: #10181e;
97 --table-stripping: rgba(115, 130, 140, 0.02);
98 }
99}
100
101[data-theme="dark"] {
102 --background: #10181e;
103 --text: #a2afb9;
104 --h1: #edf0f3;
105 --h2: #d5dce2;
106 --h3: #bbc6ce;
107 --h4: #a2afb9;
108 --h5: #8a99a3;
109 --h6: #73828c;
110 --primary: #1095c1;
111 --primary-hover: #1ab3e6;
112 --primary-focus: rgba(16, 149, 193, 0.25);
113 --primary-inverse: #FFF;
114 --secondary: #596b78;
115 --secondary-hover: #73828c;
116 --secondary-focus: rgba(89, 107, 120, 0.25);
117 --secondary-inverse: #FFF;
118 --contrast: #d5dce2;
119 --contrast-hover: #FFF;
120 --contrast-focus: rgba(89, 107, 120, 0.25);
121 --contrast-border: rgba(255, 223, 128, 0.33);
122 --contrast-inverse: #10181e;
123 --input-background: #10181e;
124 --input-border: #374956;
125 --valid: #1f7a5c;
126 --invalid: #943838;
127 --mark: rgba(255, 223, 128, 0.5);
128 --mark-text: #FFF;
129 --muted-text: #73828c;
130 --muted-background: #10181e;
131 --muted-border: #23333e;
132 --card-background: #17232b;
133 --card-sections: #141d24;
134 --card-shadow: 0 0.125rem 1rem rgba(0, 0, 0, 0.08), 0 0.125rem 2rem rgba(0, 0, 0, 0.04), 0 0 0 0.0625rem rgba(0, 0, 0, 0.1);
135 --code-background: #141d24;
136 --code-inlined: rgba(65, 84, 98, 0.25);
137 --code-color-1: #73828c;
138 --code-color-2: #a65980;
139 --code-color-3: #599fa6;
140 --code-color-4: #8c8473;
141 --code-color-5: #4d606d;
142 --table-border: #10181e;
143 --table-stripping: rgba(115, 130, 140, 0.02);
144}
145
146/**
147 * Document
148 * Content-box & Responsive typography
149 */
150*,
151*::before,
152*::after {
153 box-sizing: border-box;
154}
155
156html {
157 -webkit-text-size-adjust: 100%;
158 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
159 background: var(--background);
160 color: var(--text);
161 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
162 font-size: 16px;
163 font-weight: 400;
164 line-height: 1.5;
165 text-rendering: optimizeLegibility;
166}
167
168@media (min-width: 576px) {
169 html {
170 font-size: 17px;
171 }
172}
173
174@media (min-width: 768px) {
175 html {
176 font-size: 18px;
177 }
178}
179
180@media (min-width: 992px) {
181 html {
182 font-size: 19px;
183 }
184}
185
186@media (min-width: 1200px) {
187 html {
188 font-size: 20px;
189 }
190}
191
192/**
193 * Sectioning
194 * Container and responsive spacings for header, main, footer
195 */
196main {
197 display: block;
198}
199
200body {
201 width: 100%;
202 margin: 0;
203}
204
205body > header,
206body > main,
207body > footer {
208 width: 100%;
209 margin-right: auto;
210 margin-left: auto;
211 padding: 2rem 0;
212}
213
214@media (min-width: 576px) {
215 body > header,
216 body > main,
217 body > footer {
218 padding: 2.5rem 0;
219 }
220}
221
222@media (min-width: 768px) {
223 body > header,
224 body > main,
225 body > footer {
226 padding: 3rem 0;
227 }
228}
229
230@media (min-width: 992px) {
231 body > header,
232 body > main,
233 body > footer {
234 padding: 3.5rem 0;
235 }
236}
237
238@media (min-width: 1200px) {
239 body > header,
240 body > main,
241 body > footer {
242 padding: 4rem 0;
243 }
244}
245
246/**
247 * Container
248 */
249.container,
250.container-fluid {
251 width: 100%;
252 margin-right: auto;
253 margin-left: auto;
254 padding-right: 1rem;
255 padding-left: 1rem;
256}
257
258@media (min-width: 576px) {
259 .container {
260 padding-right: 0;
261 padding-left: 0;
262 max-width: 510px;
263 }
264}
265
266@media (min-width: 768px) {
267 .container {
268 max-width: 700px;
269 }
270}
271
272@media (min-width: 992px) {
273 .container {
274 max-width: 920px;
275 }
276}
277
278@media (min-width: 1200px) {
279 .container {
280 max-width: 1130px;
281 }
282}
283
284/**
285 * Section
286 * Responsive spacings for section
287 */
288section {
289 margin-bottom: 4rem;
290}
291
292@media (min-width: 576px) {
293 section {
294 margin-bottom: 5rem;
295 }
296}
297
298@media (min-width: 768px) {
299 section {
300 margin-bottom: 6rem;
301 }
302}
303
304@media (min-width: 992px) {
305 section {
306 margin-bottom: 7rem;
307 }
308}
309
310@media (min-width: 1200px) {
311 section {
312 margin-bottom: 8rem;
313 }
314}
315
316/**
317 * Grid
318 * Minimal grid system with auto-layout columns
319 */
320.grid {
321 grid-column-gap: 1rem;
322 grid-row-gap: 1rem;
323 display: grid;
324 grid-template-columns: 1fr;
325 margin: 0;
326}
327
328@media (min-width: 992px) {
329 .grid {
330 grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
331 }
332}
333
334.grid > * {
335 min-width: 0;
336}
337
338/**
339 * Horizontal scroller (<figure>)
340 */
341figure {
342 display: block;
343 margin: 0;
344 padding: 0;
345 overflow-x: auto;
346}
347
348figure figcaption {
349 padding: 0.5rem 0;
350 color: var(--muted-text);
351}
352
353/**
354 * Typography
355 */
356b,
357strong {
358 font-weight: bolder;
359}
360
361sub,
362sup {
363 position: relative;
364 font-size: .75rem;
365 line-height: 0;
366 vertical-align: baseline;
367}
368
369sub {
370 bottom: -0.25rem;
371}
372
373sup {
374 top: -0.5rem;
375}
376
377img {
378 max-width: 100%;
379 height: auto;
380 border-style: none;
381}
382
383svg,
384img {
385 vertical-align: text-bottom;
386}
387
388address,
389blockquote,
390dl,
391figure,
392form,
393ol,
394p,
395pre,
396table,
397ul {
398 margin-top: 0;
399 margin-bottom: 1.5rem;
400 color: var(--text);
401 font-size: 1rem;
402 font-style: normal;
403}
404
405a {
406 background-color: transparent;
407 color: var(--primary);
408 text-decoration: none;
409 transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, text-decoration 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
410}
411
412a:hover, a:active, a:focus {
413 color: var(--primary-hover);
414 text-decoration: underline;
415}
416
417a:focus {
418 outline: none;
419 background-color: var(--primary-focus);
420}
421
422a.secondary {
423 color: var(--secondary);
424}
425
426a.secondary:hover, a.secondary:active, a.secondary:focus {
427 color: var(--secondary-hover);
428}
429
430a.secondary:focus {
431 background-color: var(--secondary-focus);
432}
433
434a.contrast:not([role="button"]) {
435 box-shadow: inset 0 -0.33rem 0 var(--contrast-border);
436 color: var(--contrast);
437}
438
439a.contrast:not([role="button"]):hover, a.contrast:not([role="button"]):active, a.contrast:not([role="button"]):focus {
440 color: var(--contrast-hover);
441}
442
443a.contrast:not([role="button"]):focus {
444 background-color: var(--contrast-focus);
445}
446
447h1,
448h2,
449h3,
450h4,
451h5,
452h6 {
453 margin-top: 0;
454 margin-bottom: 1.5rem;
455 font-weight: 700;
456}
457
458h1 {
459 margin-bottom: 3rem;
460 color: var(--h1);
461 font-size: 2rem;
462}
463
464h2 {
465 margin-bottom: 2.625rem;
466 color: var(--h2);
467 font-size: 1.75rem;
468}
469
470h3 {
471 margin-bottom: 2.25rem;
472 color: var(--h3);
473 font-size: 1.5rem;
474}
475
476h4 {
477 margin-bottom: 1.875rem;
478 color: var(--h4);
479 font-size: 1.25rem;
480}
481
482h5 {
483 margin-bottom: 1.6875rem;
484 color: var(--h5);
485 font-size: 1.125rem;
486}
487
488h6 {
489 color: var(--h6);
490 font-size: 1rem;
491}
492
493hgroup {
494 margin-bottom: 1.5rem;
495}
496
497hgroup * {
498 margin-bottom: 0;
499}
500
501hgroup > *:last-child {
502 color: var(--muted-text);
503 font-size: 1.125rem;
504 font-weight: normal;
505}
506
507p {
508 margin-bottom: 0.75rem;
509}
510
511small {
512 font-size: 85%;
513}
514
515@media (min-width: 576px) {
516 small {
517 font-size: 83%;
518 }
519}
520
521@media (min-width: 768px) {
522 small {
523 font-size: 81%;
524 }
525}
526
527@media (min-width: 992px) {
528 small {
529 font-size: 79%;
530 }
531}
532
533@media (min-width: 1200px) {
534 small {
535 font-size: 77%;
536 }
537}
538
539ul,
540ol {
541 padding-left: 1.5rem;
542}
543
544ul li,
545ol li {
546 margin-bottom: 0.75rem;
547}
548
549ul li {
550 list-style: square;
551}
552
553mark {
554 padding: .125rem .25rem;
555 background: var(--mark);
556 color: var(--mark-text);
557 vertical-align: middle;
558}
559
560blockquote {
561 display: block;
562 margin: 3rem 0;
563 padding: 1rem;
564 border-left: 0.25rem solid var(--muted-border);
565}
566
567blockquote footer {
568 margin-top: 0.75rem;
569 color: var(--muted-text);
570}
571
572abbr[title] {
573 border-bottom: 1px dotted;
574 text-decoration: none;
575 cursor: help;
576}
577
578ins {
579 color: var(--valid);
580 text-decoration: none;
581}
582
583del {
584 color: var(--invalid);
585}
586
587::selection {
588 background-color: var(--primary-focus);
589}
590
591/**
592 * Form elements
593 */
594input,
595optgroup,
596select,
597textarea {
598 margin: 0;
599 font-family: inherit;
600 font-size: 1rem;
601 line-height: 1.5;
602}
603
604input {
605 overflow: visible;
606}
607
608select {
609 text-transform: none;
610}
611
612legend {
613 display: table;
614 max-width: 100%;
615 padding: 0;
616 color: inherit;
617 white-space: normal;
618}
619
620textarea {
621 overflow: auto;
622}
623
624[type="checkbox"],
625[type="radio"] {
626 padding: 0;
627}
628
629[type="number"]::-webkit-inner-spin-button {
630 height: auto;
631}
632
633[type="search"] {
634 -webkit-appearance: textfield;
635 outline-offset: -2px;
636}
637
638[type="search"]::-webkit-search-decoration {
639 -webkit-appearance: none;
640}
641
642::-webkit-file-upload-button {
643 -webkit-appearance: button;
644 font: inherit;
645}
646
647fieldset {
648 margin: 0;
649 margin-bottom: 1.5rem;
650 padding: 0;
651 border: 0;
652}
653
654input:not([type="checkbox"]):not([type="radio"]),
655select,
656textarea,
657form small {
658 display: block;
659 width: 100%;
660}
661
662label,
663fieldset legend {
664 display: block;
665 margin-bottom: 0.125rem;
666 vertical-align: middle;
667}
668
669input,
670select,
671textarea {
672 -webkit-appearance: none;
673 -moz-appearance: none;
674 appearance: none;
675 border: 1px solid var(--input-border);
676 border-radius: 0.25rem;
677 outline: none;
678 background-color: var(--input-background);
679 color: var(--text);
680 font-weight: normal;
681 vertical-align: middle;
682 transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
683}
684
685input::placeholder,
686select::placeholder,
687textarea::placeholder {
688 color: var(--muted-text);
689 opacity: 1;
690}
691
692input:active, input:focus,
693select:active,
694select:focus,
695textarea:active,
696textarea:focus {
697 border-color: var(--primary);
698}
699
700input:focus,
701select:focus,
702textarea:focus {
703 box-shadow: 0 0 0 0.2rem var(--primary-focus);
704}
705
706input[readonly], input[disabled],
707select[readonly],
708select[disabled],
709textarea[readonly],
710textarea[disabled] {
711 border-color: var(--muted-border);
712 box-shadow: none;
713}
714
715input[readonly] ~ label, input[disabled] ~ label,
716select[readonly] ~ label,
717select[disabled] ~ label,
718textarea[readonly] ~ label,
719textarea[disabled] ~ label {
720 color: var(--muted-text);
721}
722
723input[disabled],
724select[disabled],
725textarea[disabled] {
726 background-color: var(--muted-background);
727 opacity: .5;
728}
729
730input:focus:-moz-focusring,
731select:focus:-moz-focusring,
732textarea:focus:-moz-focusring {
733 color: transparent;
734 text-shadow: 0 0 0 #000;
735}
736
737input:not([type="checkbox"]):not([type="radio"]),
738select,
739textarea {
740 margin-bottom: 1.5rem;
741 padding: 0.75rem 1rem;
742}
743
744input:not([type="checkbox"]):not([type="radio"]).valid, input:not([type="checkbox"]):not([type="radio"]).invalid,
745select.valid,
746select.invalid,
747textarea.valid,
748textarea.invalid {
749 padding-right: 2rem;
750 background-position: center right .75rem;
751 background-repeat: no-repeat;
752 background-size: 1rem auto;
753}
754
755input:not([type="checkbox"]):not([type="radio"]).valid,
756select.valid,
757textarea.valid {
758 border-bottom: 1px solid var(--valid);
759 background-image: 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='%23288a6a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
760}
761
762input:not([type="checkbox"]):not([type="radio"]).invalid,
763select.invalid,
764textarea.invalid {
765 border-bottom: 1px solid var(--invalid);
766 background-image: 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='%23b94646' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
767}
768
769input[type="color"] {
770 height: calc(3rem + 2px);
771}
772
773select::-ms-expand {
774 border: 0;
775 background-color: transparent;
776}
777
778select:not([multiple]) {
779 background-image: 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='%23808080' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
780 background-position: center right .75rem;
781 background-repeat: no-repeat;
782 background-size: 1rem auto;
783}
784
785form small {
786 color: var(--muted-text);
787}
788
789input + small {
790 margin-top: -1rem;
791 margin-bottom: 1.5rem;
792}
793
794label > input:not([type="checkbox"]):not([type="radio"]),
795label > select,
796label > textarea {
797 margin-top: 0.125rem;
798}
799
800/**
801 * Form elements
802 */
803[type="checkbox"],
804[type="radio"] {
805 display: inline-block;
806 width: 1em;
807 height: 1em;
808 margin-right: .375rem;
809 margin-bottom: 0.125rem;
810 border-width: 2px;
811 font-size: 1.125rem;
812 vertical-align: middle;
813 cursor: pointer;
814 transition: none;
815}
816
817[type="checkbox"]::-ms-check,
818[type="radio"]::-ms-check {
819 display: none;
820}
821
822[type="checkbox"]:checked,
823[type="radio"]:checked {
824 border-color: var(--primary);
825 background-color: var(--primary);
826 background-image: 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='%23FFF' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
827 background-position: center;
828 background-repeat: no-repeat;
829 background-size: .66rem auto;
830}
831
832[type="checkbox"] ~ label,
833[type="radio"] ~ label {
834 display: inline-block;
835 margin-right: .375rem;
836 margin-bottom: 0;
837 cursor: pointer;
838}
839
840[type="radio"] {
841 border-radius: 50%;
842}
843
844[type="radio"]:checked {
845 border-width: .33rem;
846 border-color: var(--primary);
847 background-color: var(--primary-inverse);
848 background-image: none;
849}
850
851[type="checkbox"][role="switch"] {
852 width: 1.85em;
853 height: 1em;
854 border: 2px solid var(--input-border);
855 border-radius: 1em;
856 background-color: var(--input-border);
857 line-height: 1em;
858}
859
860[type="checkbox"][role="switch"]:before {
861 display: block;
862 width: calc(1em - 4px);
863 height: 100%;
864 border-radius: 50%;
865 background-color: var(--primary-inverse);
866 content: '';
867 transition: margin 0.1s ease-in-out;
868}
869
870[type="checkbox"][role="switch"]:checked {
871 border-color: var(--primary);
872 background-color: var(--primary);
873 background-image: none;
874}
875
876[type="checkbox"][role="switch"]:checked::before {
877 margin-right: 0;
878 margin-left: calc(0.925em - 2px);
879}
880
881/**
882 * Button
883 */
884button {
885 margin: 0;
886 overflow: visible;
887 font-family: inherit;
888 text-transform: none;
889}
890
891button,
892[type="button"],
893[type="reset"],
894[type="submit"] {
895 -webkit-appearance: button;
896}
897
898button::-moz-focus-inner,
899[type="button"]::-moz-focus-inner,
900[type="reset"]::-moz-focus-inner,
901[type="submit"]::-moz-focus-inner {
902 padding: 0;
903 border-style: none;
904}
905
906button:-moz-focusring,
907[type="button"]:-moz-focusring,
908[type="reset"]:-moz-focusring,
909[type="submit"]:-moz-focusring {
910 outline: 1px dotted ButtonText;
911}
912
913button {
914 display: block;
915 width: 100%;
916 margin-bottom: 1.5rem;
917}
918
919a[role="button"] {
920 display: inline-block;
921 text-decoration: none;
922}
923
924button,
925input[type="submit"],
926a[role="button"] {
927 border: 1px solid transparent;
928 padding: 0.75rem 1rem;
929 border-radius: 0.25rem;
930 outline: none;
931 background-color: var(--primary);
932 color: var(--primary-inverse);
933 font-size: 1rem;
934 font-weight: normal;
935 line-height: 1.5;
936 text-align: center;
937 cursor: pointer;
938 transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
939}
940
941button:hover, button:active, button:focus,
942input[type="submit"]:hover,
943input[type="submit"]:active,
944input[type="submit"]:focus,
945a[role="button"]:hover,
946a[role="button"]:active,
947a[role="button"]:focus {
948 background-color: var(--primary-hover);
949}
950
951button:focus,
952input[type="submit"]:focus,
953a[role="button"]:focus {
954 box-shadow: 0 0 0 0.2rem var(--primary-focus);
955}
956
957input[type="reset"] {
958 cursor: pointer;
959}
960
961button[disabled],
962input[type="submit"][disabled],
963input[type="reset"][disabled],
964a[role="button"][disabled] {
965 opacity: .5;
966 pointer-events: none;
967}
968
969/**
970 * Button Styles
971 */
972button.secondary,
973input.secondary[type="submit"],
974input[type="reset"],
975a.secondary[role="button"] {
976 background-color: var(--secondary);
977 color: var(--secondary-inverse);
978}
979
980button.secondary:hover, button.secondary:active, button.secondary:focus,
981input.secondary[type="submit"]:hover,
982input.secondary[type="submit"]:active,
983input.secondary[type="submit"]:focus,
984input[type="reset"]:hover,
985input[type="reset"]:active,
986input[type="reset"]:focus,
987a.secondary[role="button"]:hover,
988a.secondary[role="button"]:active,
989a.secondary[role="button"]:focus {
990 background-color: var(--secondary-hover);
991}
992
993button.secondary:focus,
994input.secondary[type="submit"]:focus,
995input[type="reset"]:focus,
996a.secondary[role="button"]:focus {
997 box-shadow: 0 0 0 0.2rem var(--secondary-focus);
998}
999
1000button.contrast,
1001input.contrast[type="submit"],
1002input.contrast[type="reset"],
1003a.contrast[role="button"] {
1004 background-color: var(--contrast);
1005 color: var(--contrast-inverse);
1006}
1007
1008button.contrast:hover, button.contrast:active, button.contrast:focus,
1009input.contrast[type="submit"]:hover,
1010input.contrast[type="submit"]:active,
1011input.contrast[type="submit"]:focus,
1012input.contrast[type="reset"]:hover,
1013input.contrast[type="reset"]:active,
1014input.contrast[type="reset"]:focus,
1015a.contrast[role="button"]:hover,
1016a.contrast[role="button"]:active,
1017a.contrast[role="button"]:focus {
1018 background-color: var(--contrast-hover);
1019}
1020
1021button.contrast:focus,
1022input.contrast[type="submit"]:focus,
1023input.contrast[type="reset"]:focus,
1024a.contrast[role="button"]:focus {
1025 box-shadow: 0 0 0 0.2rem var(--contrast-focus);
1026}
1027
1028button.outline,
1029input.outline[type="submit"],
1030a.outline[role="button"] {
1031 border: 1px solid var(--primary);
1032 background-color: transparent;
1033 color: var(--primary);
1034}
1035
1036button.outline:hover, button.outline:active, button.outline:focus,
1037input.outline[type="submit"]:hover,
1038input.outline[type="submit"]:active,
1039input.outline[type="submit"]:focus,
1040a.outline[role="button"]:hover,
1041a.outline[role="button"]:active,
1042a.outline[role="button"]:focus {
1043 border: 1px solid var(--primary-hover);
1044 color: var(--primary-hover);
1045}
1046
1047button.outline.secondary,
1048input.outline.secondary[type="submit"],
1049input.outline[type="reset"],
1050a.outline.secondary[role="button"] {
1051 border: 1px solid var(--secondary);
1052 background-color: transparent;
1053 color: var(--secondary);
1054}
1055
1056button.outline.secondary:hover, button.outline.secondary:active, button.outline.secondary:focus,
1057input.outline.secondary[type="submit"]:hover,
1058input.outline.secondary[type="submit"]:active,
1059input.outline.secondary[type="submit"]:focus,
1060input.outline[type="reset"]:hover,
1061input.outline[type="reset"]:active,
1062input.outline[type="reset"]:focus,
1063a.outline.secondary[role="button"]:hover,
1064a.outline.secondary[role="button"]:active,
1065a.outline.secondary[role="button"]:focus {
1066 border: 1px solid var(--secondary-hover);
1067 color: var(--secondary-hover);
1068}
1069
1070button.outline.secondary:focus,
1071input.outline.secondary[type="submit"]:focus,
1072input.outline[type="reset"]:focus,
1073a.outline.secondary[role="button"]:focus {
1074 box-shadow: 0 0 0 0.2rem var(--secondary-focus);
1075}
1076
1077button.outline.contrast,
1078input.outline.contrast[type="submit"],
1079input.outline.contrast[type="reset"],
1080a.outline.contrast[role="button"] {
1081 border: 1px solid var(--contrast);
1082 background-color: transparent;
1083 color: var(--contrast);
1084}
1085
1086button.outline.contrast:hover, button.outline.contrast:active, button.outline.contrast:focus,
1087input.outline.contrast[type="submit"]:hover,
1088input.outline.contrast[type="submit"]:active,
1089input.outline.contrast[type="submit"]:focus,
1090input.outline.contrast[type="reset"]:hover,
1091input.outline.contrast[type="reset"]:active,
1092input.outline.contrast[type="reset"]:focus,
1093a.outline.contrast[role="button"]:hover,
1094a.outline.contrast[role="button"]:active,
1095a.outline.contrast[role="button"]:focus {
1096 border: 1px solid var(--contrast-hover);
1097 color: var(--contrast-hover);
1098}
1099
1100button.outline.contrast:focus,
1101input.outline.contrast[type="submit"]:focus,
1102input.outline.contrast[type="reset"]:focus,
1103a.outline.contrast[role="button"]:focus {
1104 box-shadow: 0 0 0 0.2rem var(--contrast-focus);
1105}
1106
1107/**
1108 * Table
1109 */
1110table {
1111 width: 100%;
1112 border-spacing: 0;
1113}
1114
1115th,
1116td {
1117 padding: 0.5rem 1rem;
1118 border-bottom: 1px solid var(--table-border);
1119 color: var(--muted-text);
1120 font-weight: 400;
1121 text-align: left;
1122 font-size: 0.875rem;
1123}
1124
1125th,
1126thead td {
1127 color: var(--text);
1128 font-size: 1rem;
1129}
1130
1131thead th,
1132thead td {
1133 border-bottom: 3px solid var(--table-border);
1134}
1135
1136tbody tr:nth-child(odd) {
1137 background-color: var(--table-stripping);
1138}
1139
1140/**
1141 * Code
1142 */
1143pre,
1144code,
1145kbd,
1146samp {
1147 font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
1148 font-size: 1rem;
1149}
1150
1151pre,
1152code,
1153kbd {
1154 background: var(--code-inlined);
1155 color: var(--code-color-1);
1156 font-size: 85%;
1157 font-weight: 400;
1158 line-height: 1;
1159}
1160
1161@media (min-width: 576px) {
1162 pre,
1163 code,
1164 kbd {
1165 font-size: 83%;
1166 }
1167}
1168
1169@media (min-width: 768px) {
1170 pre,
1171 code,
1172 kbd {
1173 font-size: 81%;
1174 }
1175}
1176
1177@media (min-width: 992px) {
1178 pre,
1179 code,
1180 kbd {
1181 font-size: 79%;
1182 }
1183}
1184
1185@media (min-width: 1200px) {
1186 pre,
1187 code,
1188 kbd {
1189 font-size: 77%;
1190 }
1191}
1192
1193code,
1194kbd {
1195 display: inline-block;
1196 padding: .375rem .5rem;
1197 border-radius: 0.25rem;
1198}
1199
1200pre {
1201 display: block;
1202 margin-bottom: 2rem;
1203 padding: 2rem 1rem;
1204 overflow-x: auto;
1205 background: var(--code-background);
1206}
1207
1208pre > code {
1209 display: block;
1210 padding: 0;
1211 background: transparent;
1212 font-size: 14px;
1213 line-height: 1.5;
1214}
1215
1216code b {
1217 color: var(--code-color-2);
1218 font-weight: normal;
1219}
1220
1221code i {
1222 color: var(--code-color-3);
1223 font-style: normal;
1224}
1225
1226code u {
1227 color: var(--code-color-4);
1228 text-decoration: none;
1229}
1230
1231code em {
1232 color: var(--code-color-5);
1233 font-style: normal;
1234}
1235
1236kbd {
1237 background-color: var(--secondary);
1238 color: var(--secondary-inverse);
1239 font-weight: bolder;
1240}
1241
1242/**
1243 * Miscs
1244 */
1245hr {
1246 box-sizing: content-box;
1247 height: 0;
1248 overflow: visible;
1249 border: none;
1250 border-top: 1px solid var(--muted-border);
1251}
1252
1253progress {
1254 vertical-align: baseline;
1255}
1256
1257[hidden],
1258template {
1259 display: none;
1260}
1261
1262/**
1263 * Accordion (<details>)
1264 * Inspiration: https://codepen.io/koca/pen/RyeLLV
1265 */
1266details {
1267 display: block;
1268 margin-bottom: 1.5rem;
1269 padding-bottom: 0.75rem;
1270 border-bottom: 1px solid var(--muted-border);
1271}
1272
1273details summary {
1274 list-style-type: none;
1275 cursor: pointer;
1276 line-height: 1rem;
1277}
1278
1279details summary::-webkit-details-marker {
1280 display: none;
1281}
1282
1283details summary::marker {
1284 display: none;
1285}
1286
1287details summary::-moz-list-bullet {
1288 list-style-type: none;
1289}
1290
1291details summary::after {
1292 display: inline-block;
1293 width: 1rem;
1294 height: 1rem;
1295 float: right;
1296 transform: rotate(-90deg);
1297 background-image: 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='%23808080' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
1298 background-position: center;
1299 background-repeat: no-repeat;
1300 background-size: 1rem auto;
1301 content: '';
1302}
1303
1304details summary:focus {
1305 outline: none;
1306}
1307
1308details summary ~ * {
1309 margin-top: 0.75rem;
1310}
1311
1312details summary ~ * ~ * {
1313 margin-top: 0;
1314}
1315
1316details[open] summary {
1317 margin-bottom: 0.375rem;
1318 color: var(--muted-text);
1319}
1320
1321details[open] summary::after {
1322 transform: rotate(0);
1323}
1324
1325/**
1326 * Card (<article>)
1327 */
1328article {
1329 margin: 2rem 0;
1330 padding: 2rem 1rem;
1331 overflow: hidden;
1332 border-radius: 0.25rem;
1333 background: var(--card-background);
1334 box-shadow: var(--card-shadow);
1335}
1336
1337@media (min-width: 576px) {
1338 article {
1339 margin: 2.5rem 0;
1340 padding: 2.5rem;
1341 }
1342}
1343
1344@media (min-width: 768px) {
1345 article {
1346 margin: 3rem 0;
1347 padding: 3rem;
1348 }
1349}
1350
1351@media (min-width: 992px) {
1352 article {
1353 margin: 3.5rem 0;
1354 padding: 3.5rem;
1355 }
1356}
1357
1358@media (min-width: 1200px) {
1359 article {
1360 margin: 4rem 0;
1361 padding: 4rem;
1362 }
1363}
1364
1365article > *:not(header):not(footer):not(pre):last-child {
1366 margin-bottom: 0;
1367}
1368
1369/**
1370 * Card sectionning (<article> > header, footer, pre)
1371 */
1372article > header,
1373article > footer {
1374 background-color: var(--card-sections);
1375}
1376
1377article > header,
1378article > footer,
1379article > pre {
1380 margin: -1rem;
1381 padding: 2rem 1rem;
1382}
1383
1384@media (min-width: 576px) {
1385 article > header,
1386 article > footer,
1387 article > pre {
1388 margin: -2.5rem;
1389 padding: 2rem 2.5rem;
1390 }
1391}
1392
1393@media (min-width: 768px) {
1394 article > header,
1395 article > footer,
1396 article > pre {
1397 margin: -3rem;
1398 padding: 2rem 3rem;
1399 }
1400}
1401
1402@media (min-width: 992px) {
1403 article > header,
1404 article > footer,
1405 article > pre {
1406 margin: -3.5rem;
1407 padding: 2rem 3.5rem;
1408 }
1409}
1410
1411@media (min-width: 1200px) {
1412 article > header,
1413 article > footer,
1414 article > pre {
1415 margin: -4rem;
1416 padding: 2rem 4rem;
1417 }
1418}
1419
1420article > header {
1421 margin-top: -2rem;
1422 margin-bottom: 2rem;
1423}
1424
1425@media (min-width: 576px) {
1426 article > header {
1427 margin-top: -2.5rem;
1428 margin-bottom: 2.5rem;
1429 }
1430}
1431
1432@media (min-width: 768px) {
1433 article > header {
1434 margin-top: -3rem;
1435 margin-bottom: 3rem;
1436 }
1437}
1438
1439@media (min-width: 992px) {
1440 article > header {
1441 margin-top: -3.5rem;
1442 margin-bottom: 3.5rem;
1443 }
1444}
1445
1446@media (min-width: 1200px) {
1447 article > header {
1448 margin-top: -4rem;
1449 margin-bottom: 4rem;
1450 }
1451}
1452
1453article > footer,
1454article > pre {
1455 margin-top: 2rem;
1456 margin-bottom: -2rem;
1457}
1458
1459@media (min-width: 576px) {
1460 article > footer,
1461 article > pre {
1462 margin-top: 2.5rem;
1463 margin-bottom: -2.5rem;
1464 }
1465}
1466
1467@media (min-width: 768px) {
1468 article > footer,
1469 article > pre {
1470 margin-top: 3rem;
1471 margin-bottom: -3rem;
1472 }
1473}
1474
1475@media (min-width: 992px) {
1476 article > footer,
1477 article > pre {
1478 margin-top: 3.5rem;
1479 margin-bottom: -3.5rem;
1480 }
1481}
1482
1483@media (min-width: 1200px) {
1484 article > footer,
1485 article > pre {
1486 margin-top: 4rem;
1487 margin-bottom: -4rem;
1488 }
1489}
1490
1491/**
1492 * Nav
1493 */
1494nav,
1495nav ul {
1496 display: flex;
1497}
1498
1499nav {
1500 justify-content: space-between;
1501}
1502
1503nav ul {
1504 align-items: center;
1505 margin-bottom: 0;
1506 padding: 0;
1507 list-style: none;
1508}
1509
1510nav ul:first-of-type {
1511 margin-left: -0.5rem;
1512}
1513
1514nav ul:last-of-type {
1515 margin-right: -0.5rem;
1516}
1517
1518nav li {
1519 display: inline-block;
1520 margin: 0;
1521 padding: 1rem 0.5rem;
1522}
1523
1524nav li > *,
1525nav li > input:not([type="checkbox"]):not([type="radio"]) {
1526 margin-bottom: 0;
1527}
1528
1529nav a {
1530 display: block;
1531 margin: -1rem -0.5rem;
1532 padding: 1rem 0.5rem;
1533 border-radius: 0.25rem;
1534}
1535
1536nav a:hover, nav a:active, nav a:focus {
1537 text-decoration: none;
1538}
1539
1540nav a.contrast:not([role="button"]) {
1541 box-shadow: none;
1542}
1543
1544aside nav,
1545aside ul,
1546aside li {
1547 display: block;
1548}
1549
1550aside li {
1551 padding: 0.5rem;
1552}
1553
1554aside li a {
1555 margin: -0.5rem;
1556 padding: 0.5rem;
1557}
1558
1559/**
1560 * Tooltip ([data-tooltip])
1561 */
1562[data-tooltip] {
1563 position: relative;
1564}
1565
1566[data-tooltip]:not(a):not(button):not(input) {
1567 border-bottom: 1px dotted;
1568 text-decoration: none;
1569 cursor: help;
1570}
1571
1572[data-tooltip]::before, [data-tooltip]::after {
1573 display: block;
1574 z-index: 99;
1575 position: absolute;
1576 bottom: 100%;
1577 left: 50%;
1578 padding: .25rem .5rem;
1579 overflow: hidden;
1580 transform: translate(-50%, -0.25rem);
1581 border-radius: 0.25rem;
1582 background: var(--contrast);
1583 color: var(--contrast-inverse);
1584 font-size: .85rem;
1585 font-style: normal;
1586 font-weight: normal;
1587 text-decoration: none;
1588 text-overflow: ellipsis;
1589 white-space: nowrap;
1590 content: attr(data-tooltip);
1591 opacity: 0;
1592 pointer-events: none;
1593}
1594
1595[data-tooltip]::after {
1596 padding: 0;
1597 transform: translate(-50%, 0rem);
1598 border-top: .3rem solid;
1599 border-right: .3rem solid transparent;
1600 border-left: .3rem solid transparent;
1601 border-radius: 0;
1602 background-color: transparent;
1603 color: var(--contrast);
1604 content: '';
1605}
1606
1607[data-tooltip]:focus::before, [data-tooltip]:focus::after, [data-tooltip]:hover::before, [data-tooltip]:hover::after {
1608 opacity: 1;
1609}