Krolyxon
Commit 8f664fb

ferreniumassetscssrepo.css

1180 lines · 20.4 KB · CSS

1/* Repository pages: nav, ref picker, summary, tree, blob, refs, Markdown. */
2
3.mono {
4 font-family: var(--font-mono);
5}
6
7.icon {
8 width: 16px;
9 height: 16px;
10 flex: none;
11}
12
13/* ---- Repository bar: [ SUMMARY ] TREE REFS · ref picker ------------- */
14
15.repo-bar {
16 display: flex;
17 flex-wrap: wrap;
18 align-items: center;
19 justify-content: space-between;
20 gap: var(--space-sm) var(--space-md);
21 padding-top: var(--space-sm);
22}
23
24.bracket-nav {
25 overflow-x: auto;
26 scrollbar-width: none;
27}
28
29.bracket-nav a {
30 white-space: nowrap;
31}
32
33.ref-picker {
34 position: relative;
35}
36
37.ref-picker summary {
38 display: inline-flex;
39 align-items: center;
40 gap: var(--space-sm);
41 min-height: 44px;
42 padding: 0 var(--space-md);
43 border: 1px solid var(--border-visible);
44 border-radius: 999px;
45 list-style: none;
46 cursor: pointer;
47 color: var(--text-secondary);
48 transition: border-color var(--dur-micro) var(--ease);
49}
50
51.ref-picker summary::-webkit-details-marker {
52 display: none;
53}
54
55.ref-picker summary:hover,
56.ref-picker[open] summary {
57 border-color: var(--text-secondary);
58}
59
60.ref-current {
61 max-width: 24ch;
62 overflow: hidden;
63 text-overflow: ellipsis;
64 white-space: nowrap;
65 font-family: var(--font-mono);
66 font-size: var(--caption);
67 color: var(--text-primary);
68}
69
70.ref-picker[open] .chevron {
71 transform: rotate(180deg);
72}
73
74.ref-menu {
75 position: absolute;
76 z-index: 10;
77 right: 0;
78 top: calc(100% + var(--space-xs));
79 width: max-content;
80 min-width: 240px;
81 max-width: min(360px, calc(100vw - 2 * var(--gutter)));
82 max-height: 60vh;
83 overflow-y: auto;
84 padding: var(--space-sm) 0;
85 border: 1px solid var(--border-visible);
86 border-radius: 8px;
87 background: var(--surface-raised);
88}
89
90.ref-group {
91 padding: var(--space-sm) var(--space-md) var(--space-xs);
92 color: var(--text-disabled);
93}
94
95.ref-menu ul {
96 list-style: none;
97}
98
99.ref-menu li a {
100 display: flex;
101 align-items: center;
102 min-height: 44px;
103 padding: 0 var(--space-md);
104 border-left: 2px solid transparent;
105 font-family: var(--font-mono);
106 font-size: var(--caption);
107 color: var(--text-primary);
108 overflow-wrap: anywhere;
109}
110
111.ref-menu li a:hover {
112 color: var(--text-display);
113 text-decoration: none;
114}
115
116.ref-menu li a.active {
117 border-left-color: var(--accent);
118 color: var(--text-display);
119}
120
121.ref-all {
122 display: flex;
123 align-items: center;
124 min-height: 44px;
125 padding: 0 var(--space-md);
126 margin-top: var(--space-xs);
127 border-top: 1px solid var(--border);
128}
129
130/* ---- Breadcrumb: secondary path, current segment in display ------------ */
131
132.crumbs {
133 padding-top: var(--space-2xl);
134 font-size: var(--heading);
135 font-weight: 400;
136 line-height: 1.25;
137 color: var(--text-secondary);
138 overflow-wrap: anywhere;
139}
140
141.crumbs a {
142 color: var(--text-secondary);
143}
144
145.crumbs a:hover {
146 color: var(--text-display);
147}
148
149.crumb-sep {
150 padding: 0 var(--space-sm);
151 color: var(--text-disabled);
152}
153
154.crumb-here {
155 color: var(--text-display);
156}
157
158/* ---- Summary ------------------------------------------------------------ */
159
160.repo-hero {
161 padding-top: var(--space-2xl);
162}
163
164.repo-title {
165 font-weight: 500;
166 overflow-wrap: anywhere;
167}
168
169.repo-about {
170 margin-top: var(--space-sm);
171 max-width: 60ch;
172 color: var(--text-secondary);
173}
174
175.repo-grid {
176 display: grid;
177 grid-template-columns: minmax(0, 1fr);
178 gap: var(--space-2xl);
179 margin-top: var(--space-xl);
180}
181
182@media (min-width: 768px) {
183 .repo-grid {
184 grid-template-columns: minmax(0, 1fr) var(--rail);
185 gap: var(--space-xl);
186 }
187}
188
189@media (min-width: 1200px) {
190 .repo-grid {
191 gap: var(--space-2xl);
192 }
193}
194
195.rail {
196 display: flex;
197 flex-direction: column;
198 gap: var(--space-xl);
199 min-width: 0;
200}
201
202.stats {
203 border-top: 1px solid var(--border);
204}
205
206.stat {
207 display: flex;
208 align-items: baseline;
209 justify-content: space-between;
210 gap: var(--space-md);
211 padding-block: 12px;
212 border-bottom: 1px solid var(--border);
213}
214
215.stat dd {
216 margin: 0;
217 font-family: var(--font-mono);
218 font-size: var(--body-sm);
219 color: var(--text-primary);
220 text-align: right;
221 overflow-wrap: anywhere;
222}
223
224.rail-head {
225 display: flex;
226 align-items: center;
227 justify-content: space-between;
228 gap: var(--space-sm);
229 min-height: 30px;
230}
231
232.rail-block > .label {
233 display: block;
234}
235
236.clone-row {
237 display: flex;
238 align-items: center;
239 gap: var(--space-xs);
240 margin-top: var(--space-sm);
241}
242
243.clone-input {
244 flex: 1;
245 min-width: 0;
246 min-height: 44px;
247 padding: 0;
248 border: 0;
249 border-bottom: 1px solid var(--border-visible);
250 border-radius: 0;
251 background: transparent;
252 font-family: var(--font-mono);
253 font-size: var(--caption);
254 color: var(--text-primary);
255 outline: none;
256 text-overflow: ellipsis;
257}
258
259.clone-input:focus {
260 border-bottom-color: var(--text-primary);
261}
262
263.icon-btn {
264 display: inline-flex;
265 align-items: center;
266 justify-content: center;
267 width: 44px;
268 height: 44px;
269 flex: none;
270 padding: 0;
271 border: 0;
272 background: none;
273 color: var(--text-secondary);
274 transition: color var(--dur-micro) var(--ease);
275}
276
277.icon-btn:hover {
278 color: var(--text-display);
279}
280
281/* Copying and switching protocols need JS; without it every URL shows. */
282html:not(.js) .clone-switch,
283html:not(.js) [data-copy],
284html:not(.js) .copy-status {
285 display: none;
286}
287
288.copy-status {
289 min-height: 1.4em;
290 margin-top: var(--space-xs);
291}
292
293/* The one break on the summary: a segmented language bar. */
294.lang-bar {
295 display: grid;
296 grid-template-columns: repeat(40, 1fr);
297 gap: 2px;
298 margin-top: var(--space-sm);
299}
300
301.lang-bar i {
302 aspect-ratio: 1;
303}
304
305.lang-bar i,
306.lang-legend i {
307 background: var(--text-display);
308}
309
310.lang-bar .o1,
311.lang-legend .o1 {
312 opacity: 0.7;
313}
314
315.lang-bar .o2,
316.lang-legend .o2 {
317 opacity: 0.45;
318}
319
320.lang-bar .o3,
321.lang-legend .o3 {
322 opacity: 0.25;
323}
324
325.lang-legend {
326 list-style: none;
327 margin-top: var(--space-sm);
328}
329
330.lang-legend li {
331 display: flex;
332 align-items: center;
333 gap: var(--space-sm);
334 padding-block: 2px;
335}
336
337.lang-legend i {
338 width: 8px;
339 height: 8px;
340 flex: none;
341}
342
343.lang-legend .label {
344 flex: 1;
345}
346
347.lang-pct {
348 font-family: var(--font-mono);
349 font-size: var(--caption);
350 color: var(--text-secondary);
351}
352
353.latest-subject {
354 margin-top: var(--space-sm);
355 color: var(--text-primary);
356 overflow-wrap: anywhere;
357}
358
359.latest-meta {
360 margin-top: var(--space-xs);
361 font-family: var(--font-mono);
362 font-size: var(--caption);
363 color: var(--text-secondary);
364}
365
366.sha {
367 font-family: var(--font-mono);
368}
369
370/* ---- Tree listing --------------------------------------------------------- */
371
372.tree {
373 list-style: none;
374 margin-top: var(--space-lg);
375 border-top: 1px solid var(--border);
376}
377
378.repo-main > .tree:first-child {
379 margin-top: 0;
380}
381
382.tree-row {
383 display: flex;
384 align-items: center;
385 justify-content: space-between;
386 gap: var(--space-md);
387 min-height: 44px;
388 border-bottom: 1px solid var(--border);
389}
390
391.tree-name {
392 display: flex;
393 align-items: center;
394 gap: var(--space-sm);
395 flex: 1;
396 min-width: 0;
397 min-height: 44px;
398 color: var(--text-primary);
399 overflow-wrap: anywhere;
400}
401
402.tree-name .icon {
403 color: var(--text-disabled);
404}
405
406.tree-name .icon-folder {
407 color: var(--text-secondary);
408}
409
410.tree-meta {
411 flex: none;
412 font-family: var(--font-mono);
413 font-size: var(--caption);
414 color: var(--text-disabled);
415 white-space: nowrap;
416}
417
418.tree-foot {
419 margin-top: var(--space-md);
420}
421
422/* ---- README ------------------------------------------------------------- */
423
424.readme {
425 margin-top: var(--space-2xl);
426}
427
428.readme-name {
429 display: inline-block;
430 margin-bottom: var(--space-md);
431 color: var(--text-secondary);
432}
433
434/* ---- Blob --------------------------------------------------------------- */
435
436.blob-bar {
437 display: flex;
438 flex-wrap: wrap;
439 align-items: center;
440 justify-content: space-between;
441 gap: var(--space-sm) var(--space-md);
442 margin-top: var(--space-md);
443}
444
445.blob-actions {
446 display: flex;
447 flex-wrap: wrap;
448 align-items: center;
449 gap: var(--space-md);
450}
451
452.blob-note {
453 padding-block: var(--space-2xl);
454 border-top: 1px solid var(--border);
455 overflow-wrap: anywhere;
456}
457
458.code-wrap {
459 margin-top: var(--space-sm);
460 border-top: 1px solid var(--border);
461 border-bottom: 1px solid var(--border);
462 overflow-x: auto;
463}
464
465.code {
466 width: 100%;
467 border-collapse: collapse;
468 font-family: var(--font-code);
469 font-size: 13px;
470 line-height: 20px;
471 tab-size: 4;
472}
473
474.code td {
475 padding: 0;
476 vertical-align: top;
477}
478
479.code .ln {
480 width: 1%;
481 border-left: 2px solid transparent;
482 text-align: right;
483 user-select: none;
484 -webkit-user-select: none;
485}
486
487.code .ln a {
488 display: block;
489 padding: 0 var(--space-md) 0 var(--space-sm);
490 color: var(--text-disabled);
491}
492
493.code .ln a:hover {
494 color: var(--text-secondary);
495 text-decoration: none;
496}
497
498.code .lc {
499 padding: 0 var(--space-md);
500 white-space: pre;
501 color: var(--text-primary);
502}
503
504.code tr:first-child td {
505 padding-top: var(--space-sm);
506}
507
508.code tr:last-child td {
509 padding-bottom: var(--space-sm);
510}
511
512/* Selected lines: #L12 (CSS) or #L12-L20 (JS). */
513.code tr:target,
514.code tr.selected {
515 background: var(--surface-raised);
516}
517
518.code tr:target .ln,
519.code tr.selected .ln {
520 border-left-color: var(--accent);
521}
522
523.code tr:target .ln a,
524.code tr.selected .ln a {
525 color: var(--text-display);
526}
527
528/* The one break on the blob page: images float on a dot grid. */
529.image-view {
530 display: flex;
531 justify-content: center;
532 margin-top: var(--space-sm);
533 padding: var(--space-xl) var(--space-md);
534 border: 1px solid var(--border);
535 border-radius: 4px;
536 background-image: radial-gradient(circle, var(--border-visible) 1px, transparent 1px);
537 background-size: 16px 16px;
538}
539
540.image-view img {
541 max-height: 70vh;
542 object-fit: contain;
543}
544
545.blob-markdown {
546 margin-top: var(--space-xl);
547}
548
549/* ---- Refs --------------------------------------------------------------- */
550
551.refs-section {
552 margin-top: var(--space-2xl);
553}
554
555.table-wrap {
556 overflow-x: auto;
557}
558
559.data-table {
560 width: 100%;
561 border-collapse: collapse;
562}
563
564.data-table th {
565 padding: 12px 16px 12px 0;
566 border-bottom: 1px solid var(--border-visible);
567 text-align: left;
568 font-weight: 400;
569 white-space: nowrap;
570}
571
572.data-table td {
573 padding: 12px 16px 12px 0;
574 border-bottom: 1px solid var(--border);
575 vertical-align: baseline;
576}
577
578.data-table .num {
579 padding-right: 0;
580 text-align: right;
581 white-space: nowrap;
582 font-family: var(--font-mono);
583 font-size: var(--caption);
584 color: var(--text-disabled);
585}
586
587.data-table th.num {
588 font-size: var(--label);
589 color: var(--text-secondary);
590}
591
592.ref-name {
593 font-family: var(--font-mono);
594 font-size: var(--body-sm);
595 overflow-wrap: anywhere;
596}
597
598.ref-subject {
599 color: var(--text-secondary);
600 overflow-wrap: anywhere;
601}
602
603.ref-archives {
604 display: flex;
605 gap: var(--space-md);
606 margin-top: var(--space-xs);
607}
608
609.ref-archives a {
610 color: var(--text-secondary);
611}
612
613.ref-archives a:hover {
614 color: var(--text-display);
615}
616
617.chip {
618 display: inline-block;
619 margin-left: var(--space-sm);
620 padding: 2px var(--space-sm);
621 border: 1px solid var(--border-visible);
622 border-radius: 999px;
623 font-family: var(--font-mono);
624 font-size: var(--label);
625 letter-spacing: 0.08em;
626 text-transform: uppercase;
627 color: var(--text-secondary);
628 white-space: nowrap;
629}
630
631/* ---- Log ------------------------------------------------------------------ */
632
633.log-tools {
634 margin-top: var(--space-lg);
635 max-width: 420px;
636}
637
638.log-day {
639 margin-top: var(--space-xl);
640}
641
642.log {
643 list-style: none;
644 border-top: 1px solid var(--border);
645}
646
647.log-row {
648 display: flex;
649 align-items: baseline;
650 justify-content: space-between;
651 gap: var(--space-md);
652 padding-block: 12px;
653 border-bottom: 1px solid var(--border);
654}
655
656.log-main {
657 min-width: 0;
658}
659
660.log-subject {
661 color: var(--text-primary);
662 overflow-wrap: anywhere;
663}
664
665.log-meta {
666 margin-top: var(--space-2xs);
667 font-family: var(--font-mono);
668 font-size: var(--caption);
669 color: var(--text-secondary);
670}
671
672.log-sha {
673 flex: none;
674 font-size: var(--caption);
675 color: var(--interactive);
676}
677
678.log-note {
679 margin-top: var(--space-lg);
680}
681
682.pager {
683 display: flex;
684 justify-content: space-between;
685 gap: var(--space-md);
686 margin-top: var(--space-xl);
687}
688
689.pager a,
690.pager span {
691 display: inline-flex;
692 align-items: center;
693 min-height: 44px;
694}
695
696/* ---- Commit --------------------------------------------------------------- */
697
698.commit-head {
699 margin-top: var(--space-lg);
700}
701
702.commit-subject {
703 font-size: var(--heading);
704 font-weight: 400;
705 line-height: 1.25;
706 color: var(--text-display);
707 overflow-wrap: anywhere;
708}
709
710.commit-body {
711 max-width: 72ch;
712 margin-top: var(--space-md);
713 font-family: var(--font-body);
714 font-size: var(--body);
715 white-space: pre-wrap;
716 overflow-wrap: anywhere;
717 color: var(--text-secondary);
718}
719
720.commit-grid {
721 display: grid;
722 gap: var(--space-xl);
723 margin-top: var(--space-xl);
724}
725
726@media (min-width: 768px) {
727 .commit-grid {
728 grid-template-columns: minmax(0, 1fr) auto;
729 align-items: end;
730 }
731}
732
733/* The one break on the commit page: a hero diffstat. */
734.diffstat-hero {
735 text-align: right;
736}
737
738.diffstat-num {
739 font-family: var(--font-mono);
740 font-size: 48px;
741 line-height: 1;
742 letter-spacing: -0.02em;
743 color: var(--text-display);
744 white-space: nowrap;
745}
746
747.diffstat-hero .label {
748 margin-top: var(--space-sm);
749}
750
751.add {
752 color: var(--success);
753}
754
755.del {
756 color: var(--accent);
757}
758
759.commit-actions {
760 display: flex;
761 flex-wrap: wrap;
762 align-items: center;
763 justify-content: space-between;
764 gap: var(--space-md);
765 margin-top: var(--space-xl);
766}
767
768.context-ctl {
769 display: inline-flex;
770 align-items: center;
771 gap: var(--space-sm);
772}
773
774.context-ctl a,
775.context-ctl > span:first-child,
776.context-ctl > span:last-child {
777 display: inline-flex;
778 align-items: center;
779 justify-content: center;
780 min-width: 28px;
781 min-height: 28px;
782}
783
784.file-list {
785 list-style: none;
786 margin-top: var(--space-lg);
787 border-top: 1px solid var(--border);
788}
789
790.file-row {
791 display: flex;
792 align-items: center;
793 gap: var(--space-md);
794 min-height: 40px;
795 padding-block: var(--space-xs);
796 border-bottom: 1px solid var(--border);
797}
798
799.file-status {
800 flex: none;
801 width: 1.5em;
802 font-family: var(--font-mono);
803 font-size: var(--caption);
804 color: var(--text-secondary);
805}
806
807.file-path {
808 flex: 1;
809 min-width: 0;
810 font-family: var(--font-mono);
811 font-size: var(--body-sm);
812 color: var(--text-primary);
813 overflow-wrap: anywhere;
814}
815
816.file-path .dim,
817.diff-path .dim {
818 color: var(--text-disabled);
819}
820
821.file-counts {
822 flex: none;
823 font-family: var(--font-mono);
824 font-size: var(--caption);
825 white-space: nowrap;
826}
827
828.blocks {
829 display: inline-flex;
830 flex: none;
831 gap: 2px;
832}
833
834.blocks i {
835 width: 8px;
836 height: 8px;
837 background: var(--segment-empty);
838}
839
840.blocks i.add {
841 background: var(--success);
842}
843
844.blocks i.del {
845 background: var(--accent);
846}
847
848.diff-file {
849 margin-top: var(--space-2xl);
850}
851
852.diff-head {
853 position: sticky;
854 top: 0;
855 z-index: 1;
856 display: flex;
857 align-items: center;
858 gap: var(--space-md);
859 min-height: 44px;
860 background: var(--black);
861 border-bottom: 1px solid var(--border-visible);
862}
863
864.diff-path {
865 flex: 1;
866 min-width: 0;
867 font-family: var(--font-mono);
868 font-size: var(--body-sm);
869 color: var(--text-display);
870 overflow-wrap: anywhere;
871}
872
873.diff-view {
874 flex: none;
875}
876
877.diff-note {
878 padding-block: var(--space-md);
879 border-bottom: 1px solid var(--border);
880 overflow-wrap: anywhere;
881}
882
883.diff-file .code-wrap {
884 margin-top: 0;
885 border-top: 0;
886}
887
888.code.diff .ln {
889 padding: 0 var(--space-sm);
890 color: var(--text-disabled);
891 font-size: 12px;
892}
893
894.code.diff .ln + .ln {
895 border-left: 0;
896}
897
898.code.diff .sign {
899 width: 1%;
900 padding: 0 var(--space-xs) 0 var(--space-sm);
901 color: var(--text-disabled);
902 user-select: none;
903 -webkit-user-select: none;
904}
905
906.code.diff .lc {
907 padding-left: 0;
908}
909
910.code.diff tr.add .ln:first-child {
911 border-left-color: var(--success);
912}
913
914.code.diff tr.add .sign {
915 color: var(--success);
916}
917
918.code.diff tr.del .ln:first-child {
919 border-left-color: var(--accent);
920}
921
922.code.diff tr.del .sign {
923 color: var(--accent);
924}
925
926.code.diff tr.del .lc {
927 opacity: 0.55;
928}
929
930.code.diff tr.hunk td {
931 padding-block: var(--space-xs);
932 color: var(--text-disabled);
933}
934
935.code.diff tr.hunk .lc {
936 font-family: var(--font-mono);
937 font-size: 12px;
938}
939
940.code.diff tr.hunk:not(:first-child) td {
941 border-top: 1px solid var(--border);
942}
943
944/* ---- Find ----------------------------------------------------------------- */
945
946.find-count {
947 margin-top: var(--space-lg);
948}
949
950.find-list {
951 margin-top: var(--space-sm);
952}
953
954.find-dir {
955 color: var(--text-disabled);
956}
957
958/* ---- Blame ---------------------------------------------------------------- */
959
960.code.blame .blame-meta {
961 width: 1%;
962 max-width: 320px;
963 padding: 0 var(--space-md) 0 var(--space-sm);
964 border-left: 2px solid transparent;
965 font-family: var(--font-mono);
966 font-size: var(--caption);
967 line-height: 20px;
968 color: var(--text-secondary);
969 white-space: nowrap;
970 vertical-align: top;
971 overflow: hidden;
972 text-overflow: ellipsis;
973}
974
975.code.blame .blame-meta .sha {
976 color: var(--interactive);
977}
978
979.code.blame .blame-meta time {
980 color: var(--text-disabled);
981}
982
983.code.blame tr.hunk-start td {
984 border-top: 1px solid var(--border);
985}
986
987.code.blame tr:first-child td {
988 border-top: 0;
989}
990
991/* The one break on the blame page: heat by opacity, newest to oldest. */
992.code.blame .age-8 {
993 border-left-color: var(--text-display);
994}
995
996.code.blame .age-7 {
997 border-left-color: color-mix(in srgb, var(--text-display) 90%, transparent);
998}
999
1000.code.blame .age-6 {
1001 border-left-color: color-mix(in srgb, var(--text-display) 80%, transparent);
1002}
1003
1004.code.blame .age-5 {
1005 border-left-color: color-mix(in srgb, var(--text-display) 70%, transparent);
1006}
1007
1008.code.blame .age-4 {
1009 border-left-color: color-mix(in srgb, var(--text-display) 60%, transparent);
1010}
1011
1012.code.blame .age-3 {
1013 border-left-color: color-mix(in srgb, var(--text-display) 50%, transparent);
1014}
1015
1016.code.blame .age-2 {
1017 border-left-color: color-mix(in srgb, var(--text-display) 40%, transparent);
1018}
1019
1020.code.blame .age-1 {
1021 border-left-color: color-mix(in srgb, var(--text-display) 30%, transparent);
1022}
1023
1024.code.blame .age-0 {
1025 border-left-color: color-mix(in srgb, var(--text-display) 20%, transparent);
1026}
1027
1028/* ---- Markdown ------------------------------------------------------------ */
1029
1030.markdown {
1031 max-width: 72ch;
1032 overflow-wrap: break-word;
1033 color: var(--text-primary);
1034}
1035
1036.markdown > * + * {
1037 margin-top: var(--space-md);
1038}
1039
1040.markdown h1,
1041.markdown h2,
1042.markdown h3,
1043.markdown h4,
1044.markdown h5,
1045.markdown h6 {
1046 margin-top: var(--space-xl);
1047 line-height: 1.25;
1048}
1049
1050.markdown > :first-child {
1051 margin-top: 0;
1052}
1053
1054.markdown h1 {
1055 font-size: var(--heading);
1056}
1057
1058.markdown h2 {
1059 font-size: var(--subheading);
1060}
1061
1062.markdown h3,
1063.markdown h4,
1064.markdown h5,
1065.markdown h6 {
1066 font-size: var(--body);
1067}
1068
1069.markdown a.anchor {
1070 display: none;
1071}
1072
1073.markdown ul,
1074.markdown ol {
1075 padding-left: var(--space-lg);
1076}
1077
1078.markdown li + li,
1079.markdown li > ul,
1080.markdown li > ol {
1081 margin-top: var(--space-xs);
1082}
1083
1084.markdown .contains-task-list {
1085 list-style: none;
1086 padding-left: var(--space-xs);
1087}
1088
1089.markdown input[type="checkbox"] {
1090 margin: 0 var(--space-sm) 0 0;
1091 vertical-align: middle;
1092 accent-color: var(--text-display);
1093}
1094
1095.markdown code {
1096 padding: 1px var(--space-xs);
1097 border-radius: 4px;
1098 background: var(--surface-raised);
1099 font-size: 0.875em;
1100}
1101
1102.markdown pre {
1103 padding: var(--space-md);
1104 border: 1px solid var(--border);
1105 border-radius: 8px;
1106 background: var(--surface);
1107 overflow-x: auto;
1108 line-height: 20px;
1109 tab-size: 4;
1110}
1111
1112.markdown pre code {
1113 padding: 0;
1114 background: none;
1115 font-size: 13px;
1116}
1117
1118.markdown pre.plain {
1119 max-width: none;
1120 white-space: pre-wrap;
1121}
1122
1123.markdown blockquote {
1124 padding-left: var(--space-md);
1125 border-left: 2px solid var(--border-visible);
1126 color: var(--text-secondary);
1127}
1128
1129.markdown hr {
1130 border: 0;
1131 border-top: 1px solid var(--border);
1132}
1133
1134.markdown img {
1135 display: inline-block;
1136}
1137
1138.markdown table {
1139 display: block;
1140 max-width: 100%;
1141 overflow-x: auto;
1142 border-collapse: collapse;
1143}
1144
1145.markdown th,
1146.markdown td {
1147 padding: var(--space-sm) var(--space-md) var(--space-sm) 0;
1148 border-bottom: 1px solid var(--border);
1149}
1150
1151.markdown th {
1152 border-bottom-color: var(--border-visible);
1153 font-weight: 500;
1154 text-align: left;
1155}
1156
1157.markdown .markdown-alert {
1158 padding-left: var(--space-md);
1159 border-left: 2px solid var(--border-visible);
1160}
1161
1162.markdown .markdown-alert-warning,
1163.markdown .markdown-alert-caution {
1164 border-left-color: var(--accent);
1165}
1166
1167.markdown .markdown-alert-title {
1168 font-family: var(--font-mono);
1169 font-size: var(--label);
1170 letter-spacing: 0.08em;
1171 text-transform: uppercase;
1172 color: var(--text-secondary);
1173}
1174
1175.markdown .footnotes {
1176 font-size: var(--body-sm);
1177 color: var(--text-secondary);
1178 border-top: 1px solid var(--border);
1179 padding-top: var(--space-md);
1180}