v / cmd / tools / vdoc / theme / doc.css
816 lines · 805 sloc · 17.61 KB · 35e925a2f1ee0069c7ca1e451dc85f0f547d0a34
Raw
1:root {
2 --background-color: #fff;
3 --link-color: #2779bd;
4 --text-color: #000;
5 --ref-symbol-color: #dae1e7;
6 --ref-symbol-hover-color: #b8c2cc;
7 --title-bottom-line-color: #f1f5f8;
8 --footer-top-line-color: #f1f5f8;
9 --footer-text-color: #616161;
10 --code-signature-border-color: #a0aec0;
11 --menu-background-color: #4b6c88;
12 --menu-text-color: #fff;
13 --menu-indent-line-color: #3b3b3b66;
14 --menu-indent-line-active-color: #00000066;
15 --menu-scrollbar-color: #a0aec0;
16 --menu-toggle-icon-color: #fff;
17 --menu-toggle-icon-hover-color: #00000044;
18 --menu-search-background-color: #00000044;
19 --menu-search-font-color: #fff;
20 --menu-search-result-background-hover-color: #00000021;
21 --menu-search-separator-color: #00000044;
22 --menu-search-title-text-color: #d5efff;
23 --menu-search-badge-background-color: #00000044;
24 --menu-search-badge-background-hover-color: #0000004d;
25 --toc-text-color: #2779bd;
26 --toc-indicator-color: #4299e1;
27 --code-default-text-color: #2c3e64;
28 --code-background-color: #edf2f7;
29 --code-keyword-text-color: #2b6cb0;
30 --code-builtin-text-color: #219321;
31 --code-function-text-color: #288341;
32 --code-comment-text-color: #93a1a1;
33 --code-punctuation-text-color: #696969;
34 --code-symbol-text-color: #702459;
35 --code-operator-text-color: #864f29;
36 --attribute-deprecated-background-color: #f59f0b48;
37 --attribute-deprecated-text-color: #92400e;
38 --attribute-text-color: #000000cf;
39 --table-header-line-color: #2c3e64;
40 --table-background-color: #edf2f7;
41}
42html.dark {
43 --background-color: #1a202c;
44 --text-color: #fff;
45 --link-color: #90cdf4;
46 --ref-symbol-color: #2d3748;
47 --ref-symbol-hover-color: #4a5568;
48 --title-bottom-line-color: #2d3748;
49 --footer-top-line-color: #2d3748;
50 --footer-text-color: #bbd3e1;
51 --code-signature-border-color: #4a5568;
52 --menu-background-color: #2d3748;
53 --menu-text-color: #fff;
54 --menu-indent-line-color: #4a5568;
55 --menu-indent-line-active-color: #90cdf4; /*#4a5568*/
56 --menu-scrollbar-color: #4a5568;
57 --menu-toggle-icon-color: #fff;
58 --menu-search-background-color: #4a5568;
59 --menu-search-font-color: #fff;
60 --menu-search-separator-color: #4a5568;
61 --menu-search-title-text-color: #90cdf4;
62 --menu-search-badge-background-color: #4a5568;
63 --menu-search-badge-background-hover-color: #4a5568;
64 --toc-text-color: #90cdf4;
65 --toc-indicator-color: #4299e1;
66 --code-default-text-color: #cbd5e0;
67 --code-background-color: #2d3748;
68 --code-builtin-text-color: #68d391;
69 --code-keyword-text-color: #63b3ed;
70 --code-function-text-color: #4fd1c5;
71 --code-comment-text-color: #a0aec0;
72 --code-punctuation-text-color: #a0aec0;
73 --code-symbol-text-color: #ed64a6;
74 --code-operator-text-color: #a67f59;
75 --attribute-background-color: #ffffff20;
76 --attribute-text-color: #ffffffaf;
77 --attribute-deprecated-text-color: #fef3c7;
78 --table-header-line-color: #cbd5e0;
79 --table-background-color: #2d3748;
80}
81html.dark .dark-icon {
82 display: none;
83}
84html:not(.dark) .light-icon {
85 display: none;
86}
87html {
88 height: 100%;
89}
90body {
91 margin: 0;
92 font-family:
93 Jost,
94 -apple-system,
95 BlinkMacSystemFont,
96 'Segoe UI',
97 Helvetica,
98 Arial,
99 sans-serif,
100 'Apple Color Emoji',
101 'Segoe UI Emoji',
102 'Segoe UI Symbol';
103 background-color: #fff;
104 background-color: var(--background-color);
105 color: #000;
106 color: var(--text-color);
107 height: 100%;
108}
109hr {
110 height: 0.25rem;
111 background-color: var(--title-bottom-line-color);
112 border: 0;
113 padding: 0;
114 margin: 1.2rem 0;
115}
116#page {
117 height: 100%;
118 padding-top: 56px;
119 box-sizing: border-box;
120}
121
122/** Reset for menus */
123.doc-nav ul,
124.doc-toc ul {
125 list-style: none;
126 padding: 0;
127 margin: 0;
128}
129
130/* Left nav */
131.doc-nav {
132 position: fixed;
133 width: 100%;
134 left: 0;
135 right: 0;
136 top: 0;
137 display: flex;
138 background-color: #4b6c88;
139 background-color: var(--menu-background-color);
140 color: #fff;
141 color: var(--menu-text-color);
142 flex-direction: column;
143 overflow-y: auto;
144 height: 100vh;
145 z-index: 10;
146 scrollbar-width: thin;
147 scrollbar-color: #a0aec0 transparent;
148 scrollbar-color: var(--menu-scrollbar-color) transparent;
149 font-family: Jost, sans-serif;
150}
151*::-webkit-scrollbar {
152 width: 4px;
153 height: 4px;
154}
155*::-webkit-scrollbar-track {
156 background: transparent;
157}
158*::-webkit-scrollbar-thumb {
159 background-color: #a0aec0;
160 background-color: var(--menu-scrollbar-color);
161 border: 3px solid transparent;
162}
163.doc-nav .content li {
164 line-height: 1.8;
165}
166.doc-nav .content.show {
167 display: flex;
168}
169.doc-nav .content.hidden {
170 display: none;
171}
172.doc-nav #toggle-menu {
173 cursor: pointer;
174 padding: 0.3rem;
175 fill: #fff;
176 fill: var(--menu-toggle-icon-color);
177}
178.doc-nav > .heading-container {
179 position: sticky;
180 position: -webkit-sticky;
181 top: 0;
182 background-color: #4b6c88;
183 background-color: var(--menu-background-color);
184 z-index: 10;
185}
186.doc-nav > .heading-container > .heading {
187 display: flex;
188 flex-direction: column;
189}
190.doc-nav > .heading-container > .heading > .info {
191 display: flex;
192 padding: 0 1rem;
193 height: 56px;
194}
195.doc-nav > .heading-container > .heading > .info > .module {
196 font-size: 1.6rem;
197 font-weight: 500;
198 margin: 0;
199}
200.doc-nav > .heading-container > .heading > .info > .toggle-version-container {
201 display: flex;
202 align-items: center;
203}
204.doc-nav > .heading-container > .heading > .info > .toggle-version-container > #dark-mode-toggle {
205 cursor: pointer;
206 fill: #fff;
207 display: flex;
208}
209.doc-nav
210 > .heading-container
211 > .heading
212 > .info
213 > .toggle-version-container
214 > #dark-mode-toggle
215 > svg {
216 width: 1.2rem;
217 height: 1.2rem;
218}
219.doc-nav #search {
220 position: relative;
221 margin: 0.6rem 1.2rem 1rem 1.2rem;
222 display: flex;
223}
224.doc-nav #search input {
225 border: none;
226 width: 100%;
227 border-radius: 0.2rem;
228 padding: 0.5rem 1rem;
229 outline: none;
230 background-color: #00000044;
231 background-color: var(--menu-search-background-color);
232 color: #fff;
233 color: var(--menu-search-text-color);
234}
235.doc-nav #search input::placeholder {
236 color: #edf2f7;
237 text-transform: uppercase;
238 font-size: 12px;
239 font-weight: 600;
240}
241.doc-nav #search-keys {
242 position: absolute;
243 height: 100%;
244 align-items: center;
245 display: flex;
246 top: 0;
247 right: 0.75rem;
248 opacity: 0.33;
249 transition: opacity 0.1s;
250}
251.doc-nav #search-keys.hide {
252 opacity: 0;
253}
254.doc-nav #search-keys kbd {
255 padding: 2.5px 4px;
256 margin-left: 1px;
257 font-size: 11px;
258 background-color: var(--menu-background-color);
259 border: 1px solid #ffffff44;
260 border-radius: 3px;
261}
262.doc-nav > .content {
263 padding: 0 2rem 2rem 2rem;
264 display: flex;
265 flex-direction: column;
266}
267.doc-nav > .content > ul > li.active {
268 font-weight: 600;
269}
270.doc-nav > .content > ul > li.open ul {
271 display: initial;
272}
273.doc-nav > .content > ul > li.open > .menu-row > .dropdown-arrow {
274 transform: initial;
275}
276.doc-nav > .content > ul > li > .menu-row {
277 display: flex;
278 align-items: center;
279}
280.doc-nav > .content > ul > li > .menu-row > .dropdown-arrow {
281 transform: rotate(-90deg);
282 height: 18px;
283 width: 18px;
284 margin-left: calc(-18px - 0.3rem);
285 margin-right: 0.3rem;
286 cursor: pointer;
287 fill: #fff;
288 pointer-events: all;
289}
290.doc-nav > .content > ul > li > ul {
291 margin: 0.4rem 0;
292 display: none;
293}
294.doc-nav > .content > ul > li > ul > li {
295 border-color: #ffffff66;
296 border-color: var(--menu-indent-line-color);
297 border-left-width: 1.7px;
298 border-left-style: solid;
299 padding-left: 0.7rem;
300}
301.doc-nav > .content > ul > li > ul > li.active {
302 border-color: #00000066;
303 border-color: var(--menu-indent-line-active-color);
304}
305.doc-nav > .content a {
306 color: #fff;
307 color: var(--menu-text-color);
308 text-decoration: none;
309 user-select: none;
310}
311.doc-nav > .content a:hover {
312 text-decoration: underline;
313}
314.doc-nav .search {
315 overflow-y: auto;
316}
317.doc-nav .search.hidden {
318 display: none;
319}
320.doc-nav .search li {
321 line-height: 1.5;
322}
323.doc-nav > .search .result:hover,
324.doc-nav > .search .result.selected {
325 background-color: #00000021;
326 background-color: var(--menu-search-result-background-hover-color);
327}
328.doc-nav > .search .result:hover > .link > .definition > .badge {
329 background-color: #0000004d;
330 background-color: var(--menu-search-badge-background-hover-color);
331}
332.doc-nav > .search .result > .link {
333 padding: 0.5rem 1.4rem;
334 text-decoration: none;
335 color: #fff;
336 color: var(--menu-text-color);
337 display: block;
338}
339.doc-nav > .search .result > .link > .definition {
340 display: flex;
341}
342.doc-nav > .search .result > .link > .definition > .title {
343 color: #90cdf4;
344 color: var(--menu-search-title-text-color);
345 font-size: 0.875rem;
346 font-weight: 500;
347 overflow: hidden;
348 white-space: nowrap;
349 text-overflow: ellipsis;
350}
351.doc-nav > .search .result > .link > .definition > .badge {
352 font-size: 0.75rem;
353 display: inline-flex;
354 padding: 0 0.5rem;
355 background-color: #00000044;
356 background-color: var(--menu-search-badge-background-color);
357 margin-left: auto;
358 align-items: center;
359 border-radius: 9999px;
360 font-weight: 500;
361}
362.doc-nav > .search .result > .link > .description {
363 font-family:
364 Jost,
365 -apple-system,
366 BlinkMacSystemFont,
367 'Segoe UI',
368 Helvetica,
369 Arial,
370 sans-serif,
371 'Apple Color Emoji',
372 'Segoe UI Emoji',
373 'Segoe UI Symbol';
374 font-size: 0.75rem;
375 overflow: hidden;
376 white-space: nowrap;
377 text-overflow: ellipsis;
378 margin-top: 0.25rem;
379}
380.doc-nav > .search > hr.separator {
381 margin: 0.5rem 0;
382 border-color: #00000044;
383 border-color: var(--menu-search-separator-color);
384 box-sizing: content-box;
385 height: 0;
386 border-width: 0;
387 border-top-width: 1px;
388 border-style: solid;
389 overflow: visible;
390}
391
392/* Main content */
393#main-content {
394 outline: none;
395}
396.doc-scrollview {
397 height: 100%;
398 overflow-y: scroll;
399}
400.doc-container {
401 display: flex;
402 flex-direction: column-reverse;
403}
404.doc-content {
405 display: flex;
406 flex-direction: column;
407 padding: 1rem;
408 overflow: hidden;
409}
410.doc-content img {
411 width: auto;
412 max-width: 100%;
413}
414.doc-content p {
415 font-size: 1rem;
416 line-height: 1.6;
417 letter-spacing: 0.025em;
418 max-width: 100ch;
419 word-wrap: break-word;
420}
421.doc-content a {
422 color: #2779bd;
423 color: var(--link-color);
424}
425.doc-content p code {
426 font-size: 0.85rem;
427}
428.doc-content > .doc-node {
429 padding: 0.5rem 0 0.5rem 0;
430 margin-top: -4rem;
431 overflow: hidden;
432 word-break: break-word;
433}
434.doc-content > .doc-node.const:nth-child(2) {
435 padding-bottom: 0 !important;
436}
437.doc-content > .doc-node.const:not(:first-child) {
438 padding-top: 4rem;
439}
440.doc-content > .doc-node.const:not(:last-child) {
441 padding-bottom: 2rem;
442}
443.doc-content > .timestamp {
444 font-size: 0.8rem;
445 color: #b8c2cc;
446 color: var(--timestamp-color);
447}
448.doc-content > .doc-node > .title {
449 display: flex;
450 font-family: Jost, sans-serif;
451 font-weight: 500;
452 padding: 0.3rem;
453 align-items: center;
454 margin-bottom: 1rem;
455 border-bottom: 1px solid #f1f5f8;
456 border-bottom: 1px solid var(--title-bottom-line-color);
457}
458.doc-content > .doc-node > .attributes {
459 margin-bottom: 0.6rem;
460}
461.doc-content > .doc-node > .attributes > .attribute {
462 display: inline-block;
463 border-radius: 100px;
464 padding: 0.3rem 0.6rem;
465 background-color: var(--code-background-color);
466 color: var(--attribute-text-color);
467 margin-right: 0.8rem;
468 font-family: 'Jetbrains Mono', monospace;
469 font-size: 0.9rem;
470}
471.doc-content > .doc-node > .attributes > .attribute-deprecated {
472 background-color: var(--attribute-deprecated-background-color);
473 color: var(--attribute-deprecated-text-color);
474}
475.doc-content > .doc-node > .title > .link {
476 display: flex;
477 margin-left: auto;
478 fill: #dae1e7;
479 fill: var(--ref-symbol-color);
480}
481.doc-content > .doc-node > .title > .link:hover {
482 fill: #b8c2cc;
483 fill: var(--ref-symbol-hover-color);
484}
485.doc-content > .doc-node h1 {
486 font-size: 2rem;
487}
488.doc-content > .doc-node h2 {
489 font-size: 1.3rem;
490}
491.doc-content > .doc-node .signature {
492 border-color: #a0aec0;
493 border-color: var(--code-signature-border-color);
494 border-left-width: 3px;
495 border-left-style: solid;
496}
497.doc-content > .doc-node > ul > li .task-list-item-checkbox {
498 margin-right: 0.5rem;
499}
500.doc-content > .doc-node > .title h1,
501.doc-content > .doc-node > .title h2,
502.doc-content > .doc-node > .title h3,
503.doc-content > .doc-node > .title h4,
504.doc-content > .doc-node > .title h5,
505.doc-content > .doc-node > .title h6 {
506 font-weight: 500;
507 margin: 0;
508}
509.doc-content > .doc-node > .title h1 a,
510.doc-content > .doc-node > .title h2 a,
511.doc-content > .doc-node > .title h3 a,
512.doc-content > .doc-node > .title h4 a,
513.doc-content > .doc-node > .title h5 a,
514.doc-content > .doc-node > .title h6 a {
515 text-decoration: none;
516 color: #dae1e7;
517 color: var(--ref-symbol-color);
518}
519.doc-content > .doc-node > .title h1 a:hover,
520.doc-content > .doc-node > .title h2 a:hover,
521.doc-content > .doc-node > .title h3 a:hover,
522.doc-content > .doc-node > .title h4 a:hover,
523.doc-content > .doc-node > .title h5 a:hover,
524.doc-content > .doc-node > .title h6 a:hover {
525 color: #b8c2cc;
526 color: var(--ref-symbol-hover-color);
527}
528.doc-content > .footer {
529 padding-top: 1rem;
530 margin-top: auto;
531 bottom: 1rem;
532 color: 616161;
533 color: var(--footer-text-color);
534 border-color: #f1f5f8;
535 border-color: var(--footer-top-line-color);
536 border-top-style: solid;
537 border-top-width: 1px;
538 font-size: 0.8rem;
539 font-weight: 500;
540}
541
542/* Right menu */
543.doc-toc {
544 right: 0;
545 top: 0;
546 height: 100%;
547 overflow-y: auto;
548 padding: 1rem 1rem 0 1rem;
549 width: 100%;
550 box-sizing: border-box;
551 -ms-overflow-style: none;
552 scrollbar-width: none;
553 font-family: Jost, sans-serif;
554}
555.doc-toc::-webkit-scrollbar {
556 display: none;
557}
558.doc-toc li {
559 line-height: 1.5;
560}
561.doc-toc a {
562 color: #2779bd;
563 color: var(--toc-text-color);
564 font-size: 0.9rem;
565 font-weight: 600;
566 overflow: hidden;
567 text-overflow: ellipsis;
568 display: block;
569 text-decoration: none;
570 border-left-width: 2px;
571 border-left-style: solid;
572 border-color: transparent;
573 padding-left: 0.4rem;
574}
575.doc-toc a:hover {
576 text-decoration: underline;
577}
578.doc-toc a.active {
579 border-color: #4299e1;
580 border-color: var(--toc-indicator-color);
581}
582.doc-toc li ul {
583 margin: 0.2rem 0 0.2rem;
584 font-size: 0.7rem;
585 list-style: none;
586}
587.doc-toc li ul a {
588 font-weight: 400;
589 padding-left: 0.8rem;
590}
591
592/* Code highlight */
593pre,
594code,
595pre code {
596 color: #5c6e74;
597 color: var(--code-default-text-color);
598 font-size: 0.948em;
599 text-shadow: none;
600 font-family: 'Jetbrains Mono', monospace;
601 background-color: #edf2f7;
602 background-color: var(--code-background-color);
603 border-radius: 0.25rem;
604}
605pre code {
606 direction: ltr;
607 text-align: left;
608 white-space: pre;
609 word-spacing: normal;
610 word-break: normal;
611 line-height: 1.5;
612 -moz-tab-size: 4;
613 -o-tab-size: 4;
614 tab-size: 4;
615 -webkit-hyphens: none;
616 -moz-hyphens: none;
617 -ms-hyphens: none;
618 hyphens: none;
619 display: block;
620 overflow-x: auto;
621 padding: 5px;
622}
623code {
624 padding: 0 0.2rem;
625}
626pre {
627 overflow: auto;
628 margin: 0;
629 position: relative;
630}
631.namespace {
632 opacity: 0.7;
633}
634.token.comment {
635 color: #93a1a1;
636 color: var(--code-comment-text-color);
637}
638.token.punctuation {
639 color: #999999;
640 color: var(--code-punctuation-text-color);
641}
642.token.number,
643.token.symbol {
644 color: #702459;
645 color: var(--code-symbol-text-color);
646}
647.token.string,
648.token.char,
649.token.builtin {
650 color: #38a169;
651 color: var(--code-builtin-text-color);
652}
653.token.operator,
654.token.entity,
655.token.url,
656.language-css .token.string,
657.style .token.string {
658 color: #a67f59;
659 color: var(--code-operator-text-color);
660 background: transparent;
661}
662.token.boolean,
663.token.keyword {
664 color: #2b6cb0;
665 color: var(--code-keyword-text-color);
666 font-weight: bold;
667}
668.token.function {
669 color: #319795;
670 color: var(--code-function-text-color);
671}
672.examples > h4 {
673 margin: 0 0 0.4rem 0;
674}
675
676table {
677 border: 1px solid var(--table-background-color);
678 border-collapse: collapse;
679}
680table tr td,
681table tr th {
682 padding: 4px 8px;
683}
684table tr th {
685 background-color: var(--table-background-color);
686}
687tr:nth-child(even) {
688 background-color: var(--table-background-color);
689}
690
691button.copy {
692 border: none;
693 background-color: transparent;
694 position: absolute;
695 font-size: 12px;
696 top: 5px;
697 right: 5px;
698 color: var(--ref-symbol-hover-color);
699}
700
701/* Medium screen and up */
702@media (min-width: 768px) {
703 *::-webkit-scrollbar {
704 width: 8px;
705 height: 8px;
706 }
707 *::-webkit-scrollbar-thumb {
708 border: 3px solid transparent;
709 }
710 .doc-container {
711 flex-direction: row;
712 }
713 .doc-content {
714 font-size: 0.95rem;
715 flex: 1;
716 padding: 0rem 2rem 1rem 2rem;
717 }
718 .doc-toc {
719 position: sticky;
720 height: 100vh;
721 position: -webkit-sticky;
722 align-self: flex-start;
723 min-width: 200px;
724 width: auto;
725 max-width: 300px;
726 }
727 .doc-toc > ul {
728 padding-bottom: 1rem;
729 }
730}
731
732@media (max-width: 1023px) {
733 .doc-nav.hidden {
734 height: auto;
735 }
736 .doc-nav.hidden #search {
737 display: none;
738 }
739 .doc-nav .search.mobile-hidden {
740 display: none;
741 }
742 .doc-nav > .heading-container > .heading > .info {
743 align-items: center;
744 }
745 .doc-nav > .heading-container > .heading > .info > .toggle-version-container {
746 flex-grow: 1;
747 padding: 0 1rem;
748 justify-content: space-between;
749 }
750 .doc-content > .doc-node > .title {
751 margin-top: 3.5em;
752 }
753}
754
755@media (min-width: 1024px) {
756 #page {
757 padding-top: 0;
758 }
759 .doc-nav {
760 width: 300px;
761 }
762 .doc-nav #toggle-menu {
763 display: none;
764 }
765 .doc-nav > .heading-container > .heading > .info {
766 height: auto;
767 padding: 1rem 2rem 0 2rem;
768 flex-direction: column-reverse;
769 justify-content: center;
770 }
771 .doc-nav > .heading-container > .heading > .info > .toggle-version-container {
772 align-items: center;
773 margin-bottom: 0.2rem;
774 display: flex;
775 flex-direction: row-reverse;
776 }
777 .doc-nav > .heading-container > .heading > .info > .toggle-version-container > #dark-mode-toggle {
778 margin-right: auto;
779 }
780 .doc-nav .content.show,
781 .doc-nav .content.hidden {
782 display: flex;
783 }
784 .doc-content > .doc-node.const:nth-child(2) {
785 padding-bottom: 0 !important;
786 }
787 .doc-content > .doc-node.const:not(:first-child) {
788 padding-top: 0;
789 }
790 .doc-content > .doc-node.const:not(:last-child) {
791 padding-bottom: 5px;
792 }
793 .doc-container {
794 margin-left: 300px;
795 }
796 .doc-node {
797 padding-top: 1rem !important;
798 margin-top: 0 !important;
799 }
800}
801
802#skip-to-content-link {
803 height: 30px;
804 left: 50%;
805 padding: 8px;
806 position: absolute;
807 transform: translateY(-100%);
808 transition: transform 0.3s;
809 background: var(--links);
810 color: var(--warn-text);
811 border-radius: 1px;
812}
813#skip-to-content-link:focus {
814 transform: translateY(0%);
815 z-index: 1000;
816}
817