code-hike.css687 lines · main
1[data-theme*='dark'],
2.dark {
3 --ch-0: dark;
4 --ch-1: #8b949e;
5 --ch-2: #79c0ff;
6 --ch-3: #ffcda1;
7 --ch-4: #f8f8f2;
8 --ch-5: #bda4ff;
9 --ch-6: hsl(var(--brand-600));
10 --ch-7: #569cd6;
11 --ch-8: hsl(var(--brand-default));
12 --ch-9: #ffa198;
13 --ch-10: #f0f6fc;
14 --ch-11: #490202;
15 --ch-12: #04260f;
16 --ch-13: #5a1e02;
17 --ch-14: #161b22;
18 --ch-15: #8b949e;
19 /* --ch-16: hsl(var(--foreground-lighter)); */
20 --ch-16: #2a2929;
21 --ch-17: #264f78;
22 --ch-18: #3794ff;
23 --ch-19: #ffffff0b;
24 --ch-20: #6e7681;
25 --ch-21: #010409;
26 --ch-22: #30363d;
27 --ch-23: #f78166;
28 --ch-24: #6e768166;
29 --ch-25: #6e76811a;
30}
31
32[data-theme='light'],
33.light {
34 --ch-0: light;
35 --ch-1: #6e7781;
36 --ch-2: #0550ae;
37 --ch-3: #953800;
38 --ch-4: #24292f;
39 --ch-5: #8250df;
40 --ch-6: hsl(var(--brand-600));
41 --ch-7: #cf222e;
42 --ch-8: hsl(var(--brand-default));
43 --ch-9: #82071e;
44 --ch-10: #f6f8fa;
45 --ch-11: #ffebe9;
46 --ch-12: #dafbe1;
47 --ch-13: #ffd8b5;
48 --ch-14: #eaeef2;
49 --ch-15: #57606a;
50 /* --ch-16: hsl(var(--foreground-lighter)); */
51 --ch-16: #eeeeee;
52 --ch-17: #add6ff;
53 --ch-18: #1a85ff;
54 --ch-19: #fdff0033;
55 --ch-20: #8c959f;
56 --ch-21: #f6f8fa;
57 --ch-22: #d0d7de;
58 --ch-23: #fd8c73;
59 --ch-24: #afb8c133;
60 --ch-25: #eaeef280;
61}
62
63.ch-terminal {
64 font-size: 14px;
65 height: 100%;
66 box-sizing: border-box;
67 background: #1e1e1e;
68 color: #fafafa;
69 overflow: hidden;
70 padding: 0 8px 8px;
71 font-family: 'Courier New', Courier, monospace;
72 /* font-family: Ubuntu, Droid Sans, -apple-system, BlinkMacSystemFont, Segoe WPC, Segoe UI, */
73 /* sans-serif; */
74}
75.ch-code-wrapper {
76 background-color: var(--ch-16) !important;
77}
78.ch-terminal-container .ch-frame-content {
79 background-color: inherit;
80}
81.ch-terminal-prompt {
82 color: #8fa2db;
83 -webkit-user-select: none;
84 -moz-user-select: none;
85 -ms-user-select: none;
86 user-select: none;
87}
88.ch-terminal-content {
89 margin: 0;
90}
91.ch-terminal-output {
92 opacity: 0.66;
93}
94.ch-code-line-number {
95 -webkit-user-select: none;
96 -moz-user-select: none;
97 -ms-user-select: none;
98 user-select: none;
99 text-align: right;
100 display: inline-block;
101 box-sizing: border-box;
102 padding-right: 1.5ch;
103 font-variant-numeric: tabular-nums;
104}
105.ch-code-scroll-parent {
106 display: block;
107 font-weight: 400;
108 font-size: 14px;
109 line-height: 19px;
110 width: 100% !important;
111 letter-spacing: 0;
112 border-radius: 0;
113 background-color: unset;
114 color: unset;
115 padding: 0;
116 box-sizing: content-box;
117 border: none;
118}
119.ch-code-scroll-parent ::-moz-selection {
120 background-color: var(--ch-selection-background);
121 color: inherit;
122}
123.ch-code-scroll-parent ::selection {
124 background-color: var(--ch-selection-background);
125 color: inherit;
126}
127.ch-code-button {
128 position: absolute;
129 top: 10px;
130 right: 10px;
131 width: 1.1em;
132 height: 1.1em;
133 cursor: pointer;
134}
135.ch-no-scroll {
136 overflow: hidden;
137}
138.ch-expand-dialog {
139 height: 100vh;
140 width: 100vw;
141 max-width: 900px;
142 border: 0;
143 background-color: transparent;
144}
145.ch-expand-dialog::-webkit-backdrop {
146 background-color: rgba(0, 0, 0, 0.8);
147}
148.ch-expand-dialog::backdrop {
149 background-color: rgba(0, 0, 0, 0.8);
150}
151.ch-expand-close {
152 position: absolute;
153 top: 10px;
154 right: 10px;
155 cursor: pointer;
156 color: #fff;
157 width: 26px;
158 height: 26px;
159}
160.ch-expand-dialog-content {
161 color: #fff;
162 position: absolute;
163 inset: 40px;
164 overflow: hidden;
165 border-radius: 8px;
166 border: 1px solid;
167}
168.ch-code-browser {
169 display: flex;
170 height: 100%;
171 /* font-family: 'Courier New', Courier, monospace; */
172 /* font-family: Ubuntu, Droid Sans, -apple-system; */
173}
174.ch-code-browser-sidebar {
175 border-right: 1px solid;
176 min-width: 100px;
177 padding: 1em 0;
178 font-size: 0.95rem;
179}
180.ch-code-browser-content {
181 overflow: auto;
182 flex: 1;
183 padding: 1em;
184 white-space: pre;
185 font-family: monospace;
186 font-weight: 400;
187 font-size: 1rem;
188 line-height: 1.2rem;
189 letter-spacing: 0;
190 position: relative;
191}
192.ch-code-browser-content ::-moz-selection {
193 background-color: var(--ch-selection-background);
194 color: inherit;
195}
196.ch-code-browser-content ::selection {
197 background-color: var(--ch-selection-background);
198 color: inherit;
199}
200.ch-code-browser-sidebar-file,
201.ch-code-browser-sidebar-folder {
202 padding: 0.1em 1em;
203}
204.ch-code-browser-sidebar-file {
205 cursor: pointer;
206}
207.ch-code-browser-sidebar-file:hover {
208 background-color: var(--ch-hover-background);
209 color: var(--ch-hover-foreground);
210}
211.ch-code-browser-button {
212 width: 1.5em;
213 height: 1.5em;
214 cursor: pointer;
215 min-width: 1.5em;
216 min-height: 1.5em;
217 position: absolute;
218 right: 0.8em;
219 top: 0.8em;
220}
221.ch-editor-tab {
222 border: none;
223 border-right: 1px solid var(--ch-16);
224 min-width: -webkit-fit-content;
225 min-width: -moz-fit-content;
226 min-width: fit-content;
227 flex-shrink: 1;
228 position: relative;
229 display: flex;
230 white-space: nowrap;
231 cursor: pointer;
232 height: 100%;
233 box-sizing: border-box;
234 padding-left: 15px;
235 padding-right: 15px;
236 background-color: var(--ch-21) !important;
237 color: var(--ch-15);
238 min-width: 0;
239}
240.ch-editor-tab-active {
241 background-color: red;
242 color: #fff;
243 min-width: unset;
244}
245
246.ch-editor-tab > div {
247 margin-top: auto;
248 margin-bottom: auto;
249 font-size: 12px;
250 line-height: 1.4em;
251 text-overflow: ellipsis;
252 overflow: hidden;
253}
254.ch-editor-frame {
255 display: flex;
256 flex-direction: column;
257 position: relative;
258 overflow: hidden;
259 font-family:
260 Ubuntu,
261 Droid Sans,
262 -apple-system,
263 BlinkMacSystemFont,
264 Segoe WPC,
265 Segoe UI,
266 sans-serif;
267 -moz-column-break-inside: avoid;
268 break-inside: avoid;
269 --ch-title-bar-height: 32px;
270 height: 100%;
271 /* border: 1px solid red; */
272}
273.ch-editor-frame .ch-frame-title-bar {
274 background-color: var(--ch-21) !important;
275 background: var(--ch-21) !important;
276}
277.ch-editor-terminal {
278 position: absolute;
279 overflow: hidden;
280 bottom: 0;
281 width: 100%;
282 background-color: #1e1e1e;
283 color: #e7e7e7;
284 border-top: 1px solid hsla(0, 0%, 50.2%, 0.35);
285 padding: 0 8px;
286 box-sizing: border-box;
287}
288.ch-editor-terminal-tab {
289 text-transform: uppercase;
290 padding: 4px 10px 3px;
291 font-size: 11px;
292 line-height: 24px;
293 display: flex;
294}
295.ch-editor-terminal-tab > span {
296 border-bottom: 1px solid #e7e7e7;
297}
298.ch-editor-terminal-content {
299 margin-top: 8px;
300 height: calc(100% - 40px);
301 box-sizing: border-box;
302}
303.ch-editor-terminal-content .ch-terminal {
304 font-size: 12px;
305 margin: 0;
306}
307.ch-editor-button {
308 width: 1.5em;
309 height: 1.5em;
310 cursor: pointer;
311 min-width: 1.5em;
312 min-height: 1.5em;
313 margin-right: 0.8em;
314}
315.ch-frame {
316 height: 100%;
317 display: flex;
318 flex-direction: column;
319}
320.ch-frame,
321.ch-simple-frame {
322 font-family:
323 Ubuntu,
324 Droid Sans,
325 -apple-system,
326 BlinkMacSystemFont,
327 Segoe WPC,
328 Segoe UI,
329 sans-serif;
330 -moz-column-break-inside: avoid;
331 break-inside: avoid;
332 --ch-title-bar-height: 30px;
333}
334.ch-simple-frame {
335 border-radius: 6px;
336 overflow: hidden;
337 box-shadow:
338 0 13px 27px -5px rgba(50, 50, 93, 0.25),
339 0 8px 16px -8px rgba(0, 0, 0, 0.3),
340 0 -6px 16px -6px rgba(0, 0, 0, 0.025);
341}
342.ch-frame-content {
343 background-color: var(--ch-content-background, #fafafa);
344 flex-grow: 1;
345 flex-shrink: 1;
346 flex-basis: 0;
347 min-height: 0;
348}
349.ch-frame-zoom {
350 --ch-frame-zoom: 1;
351 overflow: auto;
352 position: relative;
353 width: calc(100% / var(--ch-frame-zoom));
354 height: calc(100% / var(--ch-frame-zoom));
355 transform: scale(var(--ch-frame-zoom));
356 transform-origin: left top;
357}
358.ch-frame-title-bar {
359 font-size: 12px;
360 width: 100%;
361 height: var(--ch-title-bar-height);
362 min-height: var(--ch-title-bar-height);
363 flex-grow: 0;
364 flex-shrink: 0;
365 display: flex;
366 align-items: center;
367 background-color: var(--ch-content-background, #252526);
368 color: #ebebed;
369 position: relative;
370}
371.ch-frame-middle-bar {
372 text-overflow: ellipsis;
373 overflow: hidden;
374 white-space: nowrap;
375 font-size: 1.2em;
376}
377.ch-frame-left-bar,
378.ch-frame-right-bar {
379 flex-grow: 1;
380 flex-basis: 1em;
381 height: 100%;
382 display: flex;
383 align-items: center;
384 width: -webkit-max-content;
385 width: -moz-max-content;
386 width: max-content;
387}
388.ch-frame-buttons {
389 margin: 0 0.8em;
390 flex-shrink: 0;
391 height: 1em;
392 width: 4.16em;
393 /* display: flex; */
394 display: none; /* @mildtomato */
395}
396.ch-frame-button {
397 width: 1em;
398 height: 1em;
399 border: 0.08em solid;
400 border-radius: 50%;
401 display: inline-block;
402 box-sizing: border-box;
403}
404.ch-frame-button-space {
405 width: 0.56em;
406}
407.ch-frame-button-left {
408 border-color: #ce5347;
409 background-color: #ed6b60;
410}
411.ch-frame-button-middle {
412 border-color: #d6a243;
413 background-color: #f5be4f;
414}
415.ch-frame-button-right {
416 border-color: #58a942;
417 background-color: #62c554;
418}
419.ch-mini-browser {
420 height: 100%;
421}
422.ch-mini-browser .ch-frame-content iframe,
423.ch-mini-browser .ch-frame-content video {
424 border: none;
425 position: absolute;
426 height: 100%;
427 width: 100%;
428}
429.ch-mini-browser .ch-frame-title-bar input {
430 height: 1.4em;
431 font-size: 1em;
432 border-radius: 0.5em;
433 border: none;
434 box-shadow: none;
435 flex: 1;
436 padding: 0 10px;
437 color: #544;
438 min-width: 5px;
439 width: 5px;
440}
441.ch-browser-button {
442 margin: 0 1em;
443 color: #999;
444}
445.ch-browser-back-button {
446 margin-left: 0.2em;
447}
448.ch-browser-forward-button {
449 margin-left: 0;
450}
451.ch-browser-open-button {
452 color: inherit;
453}
454.ch-browser-open-icon {
455 display: block;
456}
457.ch-spotlight {
458 display: flex;
459 gap: 1.1rem;
460 margin: 1rem 0;
461}
462.ch-spotlight-tabs {
463 display: flex;
464 flex-flow: column;
465 flex: 1;
466 gap: 0.5rem;
467 align-items: stretch;
468}
469.ch-spotlight-tab {
470 border-radius: 0.25rem;
471 margin: 0 -0.5rem;
472 padding: 0 0.5rem;
473 border: 1px solid #e3e3e3;
474}
475.ch-spotlight-tab:hover {
476 border-color: red;
477}
478.ch-spotlight-tab[data-selected] {
479 border-color: red;
480}
481.ch-spotlight-sticker {
482 position: -webkit-sticky;
483 position: sticky;
484 top: 10vh;
485 display: flex;
486 align-self: stretch;
487 flex-flow: column;
488 justify-content: center;
489 width: 420px;
490 min-height: min(100%, 80vh);
491 max-height: 80vh;
492}
493.ch-spotlight-sticker .ch-codeblock,
494.ch-spotlight-sticker .ch-codegroup {
495 width: 100%;
496 min-width: 100%;
497 min-height: min(100%, 80vh);
498 max-height: 80vh;
499 margin-top: 0;
500 margin-bottom: 0;
501 flex: 1;
502}
503.ch-spotlight-with-preview .ch-spotlight-sticker {
504 height: 80vh;
505 gap: 0.5rem;
506}
507.ch-spotlight-with-preview .ch-spotlight-sticker .ch-codeblock,
508.ch-spotlight-with-preview .ch-spotlight-sticker .ch-codegroup {
509 min-height: 0;
510 flex: 1;
511}
512.ch-spotlight-with-preview .ch-spotlight-preview {
513 height: 280px;
514}
515.ch-scrollycoding {
516 display: flex;
517 position: relative;
518 margin: 1rem 0;
519 gap: 1rem;
520}
521.ch-scrollycoding-content {
522 box-sizing: border-box;
523 flex: 1;
524}
525.ch-scrollycoding-step-content {
526 border-radius: 8px;
527 margin: 0 -0.5rem;
528 padding: 1rem 0.5rem;
529 border: 1.5px solid transparent;
530 min-height: 180px;
531}
532.ch-scrollycoding-step-content[data-selected] {
533 border-color: #0070f3;
534}
535.ch-scrollycoding-step-content > :first-child {
536 margin-top: 0;
537}
538.ch-scrollycoding-step-content > :last-child {
539 margin-bottom: 0;
540}
541.ch-scrollycoding-sticker {
542 position: -webkit-sticky;
543 position: sticky;
544 top: 10vh;
545 display: flex;
546 align-self: start;
547 flex-flow: column;
548 justify-content: center;
549 width: var(--ch-scrollycoding-sticker-width, 420px);
550 max-height: 80vh;
551}
552.ch-scrollycoding-with-preview .ch-scrollycoding-sticker {
553 height: 80vh;
554 gap: 0.5rem;
555}
556.ch-scrollycoding-with-preview .ch-scrollycoding-sticker .ch-codeblock,
557.ch-scrollycoding-with-preview .ch-scrollycoding-sticker .ch-codegroup {
558 flex: 1;
559}
560.ch-scrollycoding-with-preview .ch-scrollycoding-preview {
561 height: 280px;
562}
563.ch-scrollycoding-sticker .ch-codeblock,
564.ch-scrollycoding-sticker .ch-codegroup {
565 width: 100%;
566 min-width: 100%;
567 min-height: var(--ch-scrollycoding-code-min-height, 200px);
568 max-height: 80vh;
569 margin-top: 0;
570 margin-bottom: 0;
571}
572.ch-scrollycoding-static .ch-preview {
573 height: 150px;
574}
575.ch-slideshow {
576 margin: 1rem 0;
577}
578.ch-slideshow-slide {
579 display: flex;
580 flex-flow: row;
581 gap: 0.5rem;
582 align-items: stretch;
583 aspect-ratio: 16/9;
584}
585.ch-slideshow-slide .ch-codeblock,
586.ch-slideshow-slide .ch-codegroup {
587 flex: 2;
588 margin-top: 0;
589 margin-bottom: 0;
590 height: auto;
591}
592.ch-slideshow .ch-slideshow-preview {
593 flex: 1;
594 height: auto;
595 min-width: 0;
596}
597.ch-slideshow-range {
598 display: flex;
599 flex-flow: row;
600 gap: 0.5rem;
601}
602.ch-slideshow-range input {
603 flex: 1;
604}
605.ch-slideshow-notes {
606 border-radius: 0.25rem;
607 margin-top: 1rem;
608 padding: 1rem;
609 border: 1px solid #e3e3e3;
610}
611.ch-slideshow-note {
612 min-height: 140px;
613 max-height: 140px;
614 padding: 0.05px;
615 overflow: auto;
616}
617.ch-codeblock,
618.ch-codegroup,
619.ch-preview {
620 border-radius: 6px;
621 overflow: hidden;
622 height: -webkit-max-content;
623 height: -moz-max-content;
624 height: max-content;
625 /* box-shadow: 0 13px 27px -5px rgba(50, 50, 93, 0.25), 0 8px 16px -8px rgba(0, 0, 0, 0.3), */
626 /* 0 -6px 16px -6px rgba(0, 0, 0, 0.025); */
627 -webkit-print-color-adjust: exact;
628 print-color-adjust: exact;
629}
630.ch-codeblock > *,
631.ch-codegroup > *,
632.ch-preview > * {
633 height: 100%;
634 max-height: inherit;
635 min-height: inherit;
636}
637.ch-codeblock,
638.ch-codegroup {
639 margin-top: 1.25em;
640 margin-bottom: 1.25em;
641 border: 1px solid hsl(var(--border-default)); /* @mildtomato */
642 box-shadow: none;
643}
644.ch-inline-code > code {
645 padding: 0.2em 0.15em;
646 margin: 0.1em -0.05em;
647 border-radius: 0.25em;
648 font-size: 0.9rem;
649}
650.ch-section-link,
651.ch-section-link * {
652 text-decoration: underline;
653 -webkit-text-decoration-style: dotted;
654 text-decoration-style: dotted;
655 text-decoration-thickness: 1px;
656 -webkit-text-decoration-color: var(--ch-code-foreground, currentColor);
657 text-decoration-color: var(--ch-code-foreground, currentColor);
658}
659.ch-section-link[data-active='true'] {
660 background-color: rgba(186, 230, 253, 0.4);
661}
662.ch-editor-tab[data-active='true'] {
663 background-color: var(--ch-16) !important;
664}
665.ch-section-link[data-active='true'],
666.ch-section-link[data-active='true'] * {
667 text-decoration-thickness: 1.5px;
668}
669.ch-code-inline-mark {
670 border-radius: 0.25rem;
671 padding: 0.2rem 0.15rem 0.1rem;
672 margin: 0 -0.15rem;
673}
674.ch-code-multiline-mark-border {
675 background: var(--foreground-default) !important;
676 width: 3px;
677 height: 100%;
678 position: absolute;
679 left: 0;
680}
681.ch-code-inline-link,
682.ch-code-link :not(span) > span {
683 text-decoration: underline;
684 -webkit-text-decoration-style: dotted;
685 text-decoration-style: dotted;
686 color: inherit;
687}