loading up the forgejo repo on tangled to test page performance
at forgejo 31 kB view raw
1:root { 2 /* fonts */ 3 --fonts-proportional: -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial; 4 --fonts-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace, var(--fonts-emoji); 5 --fonts-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla"; 6 /* font weights - use between 400 and 600 for general purposes. Avoid 700 as it is perceived too bold */ 7 --font-weight-light: 300; 8 --font-weight-normal: 400; 9 --font-weight-medium: 500; 10 --font-weight-semibold: 600; 11 --font-weight-bold: 700; 12 /* line-height: use the default value as "modules/normalize.css" */ 13 --line-height-default: normal; 14 /* images */ 15 --checkbox-mask-checked: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 18 18" width="16" height="16"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>'); 16 --checkbox-mask-indeterminate: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z"></path></svg>'); 17 --octicon-chevron-right: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path></svg>'); 18 /* other variables */ 19 --border-radius: 4px; 20 --border-radius-medium: 6px; 21 --border-radius-full: 99999px; /* TODO: use calc(infinity * 1px) */ 22 --opacity-disabled: 0.55; 23 --height-loading: 16rem; 24 --repo-header-issue-min-height: 41px; 25 --min-height-textarea: 132px; /* padding + 6 lines + border = calc(1.57142em + 6lh + 2px), but lh is not fully supported */ 26 --tab-size: 4; 27 --checkbox-size: 15px; /* height and width of checkbox and radio inputs */ 28 --page-spacing: 16px; /* space between page elements */ 29 --page-margin-x: 32px; /* minimum space on left and right side of page */ 30 --button-spacing: 0.33rem; 31} 32 33@media (min-width: 768px) and (max-width: 1200px) { 34 :root { 35 --page-margin-x: 16px; 36 } 37} 38 39@media (max-width: 767.98px) { 40 :root { 41 --page-margin-x: 8px; 42 } 43} 44 45@media (pointer: coarse) { 46 :root { 47 --button-spacing: 0.5rem; 48 } 49} 50 51:root * { 52 --fonts-regular: var(--fonts-override, var(--fonts-proportional)), "Noto Sans", "Liberation Sans", sans-serif, var(--fonts-emoji); 53} 54 55*, ::before, ::after { 56 /* these are needed for tailwind borders to work because we do not load tailwind's base 57 https://github.com/tailwindlabs/tailwindcss/blob/master/src/css/preflight.css */ 58 border-width: 0; 59 border-style: solid; 60 border-color: currentcolor; 61} 62 63html, body { 64 height: 100%; 65 font-size: 14px; 66} 67 68body { 69 line-height: 20px; 70 font-family: var(--fonts-regular); 71 color: var(--color-text); 72 background-color: var(--color-body); 73 tab-size: var(--tab-size); 74 display: flex; 75 flex-direction: column; 76 overflow-x: visible; 77 overflow-wrap: break-word; 78} 79 80textarea { 81 font-family: var(--fonts-regular); 82} 83 84pre, 85code, 86kbd, 87samp { 88 font-family: var(--fonts-monospace); 89} 90 91pre, 92code, 93kbd, 94samp, 95.tw-font-mono { 96 font-size: 0.95em; /* compensate for monospace fonts being usually slightly larger */ 97} 98 99b, 100strong, 101h1, 102h2, 103h3, 104h4, 105h5, 106h6 { 107 font-weight: var(--font-weight-semibold); 108} 109 110h1, 111h2, 112h3, 113h4, 114h5 { 115 line-height: 1.28571429; 116 margin: calc(2rem - 0.1428571428571429em) 0 1rem; 117 font-weight: var(--font-weight-medium); 118 padding: 0; 119} 120 121h1 { 122 min-height: 1rem; 123 font-size: 2rem; 124} 125 126h2 { 127 font-size: 1.71428571rem; 128} 129 130h3 { 131 font-size: 1.28571429rem; 132} 133 134h4 { 135 font-size: 1.07142857rem; 136} 137 138h5 { 139 font-size: 1rem; 140} 141 142h1:first-child, 143h2:first-child, 144h3:first-child, 145h4:first-child, 146h5:first-child { 147 margin-top: 0; 148} 149 150h1:last-child, 151h2:last-child, 152h3:last-child, 153h4:last-child, 154h5:last-child { 155 margin-bottom: 0; 156} 157 158p { 159 margin: 0 0 1em; 160 line-height: 1.4285; 161} 162 163p:first-child { 164 margin-top: 0; 165} 166 167p:last-child { 168 margin-bottom: 0; 169} 170 171table { 172 border-collapse: collapse; 173} 174 175button { 176 cursor: pointer; 177} 178 179details summary { 180 cursor: pointer; 181} 182 183details summary > * { 184 display: inline; 185} 186 187progress { 188 background: var(--color-secondary-dark-1); 189 border-radius: var(--border-radius); 190 border: none; 191 overflow: hidden; 192} 193 194progress::-webkit-progress-bar { 195 background: var(--color-secondary-dark-1); 196} 197 198progress::-webkit-progress-value { 199 background-color: var(--color-accent); 200} 201 202progress::-moz-progress-bar { 203 background-color: var(--color-accent); 204} 205 206h1.error-code { 207 font-size: 15em; 208 font-weight: var(--font-weight-bold); 209 color: transparent; 210 --error-code-color-1: #a2a2a2; 211 --error-code-color-2: #797979; 212 --gradient: repeating-linear-gradient(45deg, var(--error-code-color-1), var(--error-code-color-1) 10px, var(--error-code-color-2) 10px, var(--error-code-color-2) 20px); 213 background: var(--gradient); 214 background-clip: text; 215} 216 217* { 218 caret-color: var(--color-caret); 219} 220 221::file-selector-button { 222 border: 1px solid var(--color-light-border); 223 color: var(--color-text-light); 224 background: var(--color-light); 225 border-radius: var(--border-radius); 226} 227 228::file-selector-button:hover { 229 color: var(--color-text); 230 background: var(--color-hover); 231} 232 233::selection { 234 background: var(--color-primary-light-1); 235 color: var(--color-white); 236} 237 238::placeholder, 239.ui.dropdown:not(.button) > .default.text, 240.ui.default.dropdown:not(.button) > .text { 241 color: var(--color-placeholder-text) !important; 242 opacity: 1 !important; 243} 244 245.unselectable, 246.button, 247.lines-num, 248.lines-commit, 249.lines-commit .blame-info, 250.ellipsis-button { 251 -webkit-touch-callout: none; 252 -webkit-user-select: none; 253 user-select: none; 254} 255 256.button-row { 257 gap: var(--button-spacing); 258} 259 260.button-sequence { 261 display: flex; 262 flex-flow: wrap; 263 gap: var(--button-spacing); 264} 265 266.button-sequence.right { 267 justify-content: end; 268} 269 270.button-sequence .ui.button { 271 margin: 0 !important; 272} 273 274.button-row .ui.button { 275 margin-right: 0; 276} 277 278.ui.partial.secondary.menu { 279 margin-bottom: 0; 280} 281 282a { 283 color: var(--color-primary); 284 cursor: pointer; 285 text-decoration-line: none; 286 text-decoration-skip-ink: all; 287} 288 289a:hover { 290 text-decoration-line: underline; 291} 292 293/* a = always colored, underlined on hover */ 294/* a.muted = colored on hover, underlined on hover */ 295/* a.suppressed = never colored, underlined on hover */ 296/* a.silenced = never colored, never underlined */ 297 298a.muted, 299a.suppressed, 300a.silenced, 301.muted-links a { 302 color: inherit; 303} 304 305a:hover, 306a.suppressed:hover, 307a.muted:hover, 308a.muted:hover [class*="color-text"], 309.muted-links a:hover { 310 color: var(--color-primary); 311} 312 313a.silenced:hover, 314a.suppressed:hover { 315 color: inherit; 316} 317 318a.silenced:hover { 319 text-decoration-line: none; 320} 321 322a.label, 323.ui.search .results a, 324.ui .menu a, 325.ui.cards a.card, 326.issue-keyword a { 327 text-decoration-line: none !important; 328} 329 330.ui.search > .results { 331 background: var(--color-body); 332 border-color: var(--color-secondary); 333 overflow-wrap: anywhere; /* allow text to wrap as fomantic limits this to 18em width */ 334} 335 336.ui.search > .results .result { 337 background: var(--color-body); 338 border-color: var(--color-secondary); 339 display: flex; 340 align-items: center; 341} 342 343.ui.search > .results .result .title { 344 color: var(--color-text-dark); 345} 346 347.ui.search > .results .result .description { 348 color: var(--color-text-light-2); 349} 350 351.ui.search > .results .result .image { 352 width: auto; 353 height: auto; 354} 355 356.ui.search > .results .result:hover, 357.ui.category.search > .results .category .result:hover { 358 background: var(--color-hover); 359} 360 361.inline-code-block { 362 padding: 2px 4px; 363 border-radius: .24em; 364 background-color: var(--color-label-bg); 365} 366 367.ui.menu { 368 display: flex; 369} 370 371.ui.menu, 372.ui.vertical.menu { 373 background: var(--color-menu); 374 border-color: var(--color-secondary); 375 box-shadow: none; 376} 377 378.ui.menu .item { 379 color: var(--color-text); 380 user-select: auto; 381 line-height: var(--line-height-default); /* fomantic uses "1" which causes overflow problems because "1" doesn't consider the descent part */ 382} 383 384.ui.menu .item > .svg { 385 margin-right: 0.35em; 386} 387 388.ui.menu .dropdown.item:hover, 389.ui.menu a.item:hover, 390.ui.menu details.item summary:hover { 391 color: var(--color-text); 392 background: var(--color-hover); 393} 394 395.ui.menu .active.item, 396.ui.menu .active.item:hover, 397.ui.vertical.menu .active.item, 398.ui.vertical.menu .active.item:hover { 399 color: var(--color-text); 400 background: var(--color-active); 401} 402 403.ui.menu a.item:active { 404 color: var(--color-text); 405 background: none; 406} 407 408.ui.ui.menu .item.disabled { 409 color: var(--color-text-light-3); 410} 411 412.ui.menu .item::before, .ui.vertical.menu .item::before { 413 background: var(--color-secondary); 414} 415 416/* sub menu of vertical menu */ 417.ui.vertical.menu .item .menu .item { 418 color: var(--color-text-light-2); 419 text-indent: 16px; 420} 421 422.ui.vertical.menu .item .menu .item:hover, 423.ui.vertical.menu .item .menu a.item:hover { 424 color: var(--color-text-light-1); 425} 426 427.ui.vertical.menu .item .menu .active.item { 428 color: var(--color-text); 429} 430 431/* slightly more contrast for filters on issue list */ 432.ui.ui.menu .dropdown.item.disabled { 433 color: var(--color-text-light-2); 434} 435 436.ui.dropdown .menu { 437 background: var(--color-menu); 438 border-color: var(--color-secondary); 439} 440 441.ui.dropdown .menu > .header:not(.ui) { 442 color: var(--color-text); 443} 444 445.ui.dropdown .menu > .item { 446 color: var(--color-text); 447 overflow: hidden; 448 text-overflow: ellipsis; 449} 450 451.ui.dropdown .menu > .item:hover { 452 color: var(--color-text); 453 background: var(--color-hover); 454} 455 456.ui.dropdown .menu > .item:active { 457 color: var(--color-text); 458 background: var(--color-active); 459} 460 461.ui.dropdown .menu .active.item { 462 color: var(--color-text); 463 background: var(--color-active); 464 border-radius: 0; 465 font-weight: var(--font-weight-normal); 466} 467 468/* fix misaligned images in webhook dropdown */ 469.ui.dropdown .menu > .item > img { 470 margin-top: -0.25rem; 471 margin-bottom: -0.25rem; 472} 473.ui.dropdown .menu > .item > svg { 474 margin-right: .78rem; /* use the same margin as for <img> */ 475} 476 477.ui.selection.dropdown .menu > .item { 478 border-color: var(--color-secondary); 479 white-space: nowrap; 480} 481 482.ui.selection.visible.dropdown > .text:not(.default) { 483 color: var(--color-text); 484} 485 486.ui.dropdown.selected, 487.ui.dropdown .menu .selected.item { 488 color: var(--color-text); 489 background: var(--color-hover); 490} 491 492.ui.menu .ui.dropdown .menu > .selected.item { 493 color: var(--color-text) !important; 494 background: var(--color-hover) !important; 495} 496 497.ui.dropdown .menu > .message:not(.ui) { 498 color: var(--color-text-light-2); 499} 500 501/* extend fomantic style '.ui.dropdown > .text > img' to include svg.img */ 502.ui.dropdown > .text > .img { 503 margin-left: 0; 504 float: none; 505 margin-right: 0.78571429rem; 506} 507 508.ui.dropdown > .text > .description, 509.ui.dropdown .menu > .item > .description { 510 color: var(--color-text-light-2); 511} 512 513/* replace item margin on secondary menu items with gap and remove both the 514 negative margins on the menu as well as margin on the items */ 515.ui.secondary.menu { 516 margin-left: 0; 517 margin-right: 0; 518 gap: .35714286em; 519} 520.ui.secondary.menu .item { 521 margin-left: 0; 522 margin-right: 0; 523} 524 525.ui.secondary.menu .dropdown.item:hover, 526.ui.secondary.menu a.item:hover { 527 color: var(--color-text); 528 background: var(--color-hover); 529} 530 531.ui.secondary.menu .active.item, 532.ui.secondary.menu .active.item:hover { 533 color: var(--color-text); 534 background: var(--color-active); 535} 536 537.ui.secondary.menu.tight .item { 538 padding-left: 0.85714286em; 539 padding-right: 0.85714286em; 540} 541 542/* remove the menu clearfix so that it won't add undesired gaps when using "gap" */ 543.ui.menu::after { 544 content: normal; 545} 546 547.ui.menu .dropdown.item .menu { 548 background: var(--color-body); 549} 550 551.ui.menu .ui.dropdown .menu > .item { 552 color: var(--color-text) !important; 553} 554 555.ui.menu .ui.dropdown .menu > .item:hover { 556 color: var(--color-text) !important; 557 background: var(--color-hover) !important; 558} 559 560.ui.menu .ui.dropdown .menu > .active.item { 561 color: var(--color-text) !important; 562 background: var(--color-active) !important; 563} 564 565.ui.form textarea:not([rows]) { 566 height: var(--min-height-textarea); /* override fomantic default 12em */ 567 min-height: var(--min-height-textarea); /* override fomantic default 8em */ 568} 569 570/* styles from removed fomantic transition module */ 571.hidden.transition { 572 visibility: hidden; 573 display: none; 574} 575.visible.transition { 576 display: block !important; 577 visibility: visible !important; 578} 579 580.ui.selection.active.dropdown, 581.ui.selection.active.dropdown:hover, 582.ui.selection.active.dropdown .menu, 583.ui.selection.active.dropdown:hover .menu { 584 border-color: var(--color-primary); 585} 586 587.ui.pointing.dropdown > .menu:not(.hidden)::after { 588 background: var(--color-menu); 589 box-shadow: -1px -1px 0 0 var(--color-secondary); 590} 591 592.ui.pointing.upward.dropdown .menu::after, 593.ui.top.pointing.upward.dropdown .menu::after { 594 box-shadow: 1px 1px 0 0 var(--color-secondary); 595} 596 597.ui.comments .comment .text { 598 margin: 0; 599} 600 601.ui.comments .comment .text, 602.ui.comments .comment .author { 603 color: var(--color-text); 604} 605 606.ui.comments .comment a.author:hover { 607 color: var(--color-primary); 608} 609 610.ui.comments .comment .metadata { 611 color: var(--color-text-light-2); 612} 613 614.ui.comments .comment .actions a { 615 color: var(--color-text-light); 616} 617 618.ui.comments .comment .actions a.active, 619.ui.comments .comment .actions a:hover { 620 color: var(--color-primary); 621} 622 623img.ui.avatar, 624.ui.avatar img, 625.ui.avatar svg { 626 border-radius: var(--border-radius); 627 object-fit: contain; 628 aspect-ratio: 1; 629} 630 631.ui.error.message .header, 632.ui.warning.message .header { 633 color: inherit; 634 filter: saturate(2); 635} 636 637.full.height { 638 flex-grow: 1; 639 padding-bottom: 80px; 640} 641 642/* add margin below .secondary nav when it is the first child */ 643.page-content > :first-child.secondary-nav { 644 margin-bottom: 14px; 645} 646 647/* add margin to all pages when there is no .secondary.nav */ 648.page-content > :first-child:not(.secondary-nav) { 649 margin-top: var(--page-spacing); 650} 651/* if .ui.grid is the first child the first grid-column has 'padding-top: 1rem' which we need 652 to compensate here */ 653.page-content > :first-child.ui.grid { 654 margin-top: calc(var(--page-spacing) - 1rem); 655} 656 657.ui.pagination.menu .active.item { 658 color: var(--color-text); 659 background: var(--color-active); 660} 661 662.text.primary { 663 color: var(--color-primary) !important; 664} 665 666.text.red { 667 color: var(--color-red) !important; 668} 669 670.text.orange { 671 color: var(--color-orange) !important; 672} 673 674.text.yellow { 675 color: var(--color-yellow) !important; 676} 677 678.text.olive { 679 color: var(--color-olive) !important; 680} 681 682.text.green { 683 color: var(--color-green) !important; 684} 685 686.text.teal { 687 color: var(--color-teal) !important; 688} 689 690.text.blue { 691 color: var(--color-blue) !important; 692} 693 694.text.violet { 695 color: var(--color-violet) !important; 696} 697 698.text.purple { 699 color: var(--color-purple) !important; 700} 701 702.text.pink { 703 color: var(--color-pink) !important; 704} 705 706.text.brown { 707 color: var(--color-brown) !important; 708} 709 710.text.black { 711 color: var(--color-text) !important; 712} 713 714.text.grey { 715 color: var(--color-text-light) !important; 716} 717 718.text.light { 719 color: var(--color-text-light) !important; 720} 721 722.text.light-2 { 723 color: var(--color-text-light-2) !important; 724} 725 726.text.light-3 { 727 color: var(--color-text-light-3) !important; 728} 729 730.text.light.grey { 731 color: var(--color-grey-light) !important; 732} 733 734.text.gold { 735 color: var(--color-gold) !important; 736} 737 738.text.small { 739 font-size: 0.75em; 740} 741 742.ui.form .ui.button { 743 font-weight: var(--font-weight-normal); 744} 745 746/* replace fomantic popover box shadows */ 747.ui.dropdown .menu, 748.ui.upward.dropdown > .menu, 749.ui.menu .dropdown.item .menu, 750.ui.selection.active.dropdown .menu, 751.ui.upward.selection.dropdown .menu, 752.ui.selection.active.dropdown:hover .menu, 753.ui.upward.active.selection.dropdown:hover .menu { 754 box-shadow: 0 6px 18px var(--color-shadow); 755} 756.ui.floating.dropdown .menu { 757 box-shadow: 0 6px 18px var(--color-shadow) !important; 758} 759 760/* Override semantic selector '.ui.menu:not(.vertical) .item > .button' */ 761/* This fixes the commit graph button on the commits page */ 762/* modal svg icons, copied from fomantic except width and height */ 763/* center text in fomantic modal dialogs */ 764.ui .menu:not(.vertical) .item > .button.compact { 765 padding: 0.58928571em 1.125em; 766} 767 768.ui .menu:not(.vertical) .item > .button.small { 769 font-size: 0.92857143rem; 770} 771 772.ui.menu .ui.dropdown.item .menu .item { 773 width: 100%; 774} 775 776.ui.dropdown .menu > .header { 777 font-size: 0.8em; 778} 779 780.ui .text.left { 781 text-align: left !important; 782} 783 784.ui .text.right { 785 text-align: right !important; 786} 787 788.ui .text.truncate { 789 overflow-x: hidden; 790 text-overflow: ellipsis; 791 white-space: nowrap; 792 display: inline-block; 793} 794 795.ui .message.flash-message { 796 text-align: center; 797} 798 799.ui .message > ul { 800 margin-left: auto; 801 margin-right: auto; 802 display: table; 803 text-align: left; 804} 805 806.ui .header > i + .content { 807 padding-left: 0.75rem; 808 vertical-align: middle; 809} 810 811.ui .form .autofill-dummy { 812 position: absolute; 813 width: 1px; 814 height: 1px; 815 overflow: hidden; 816 z-index: -10000; 817} 818 819.ui .form .sub.field { 820 margin-left: 25px; 821} 822 823.ui .sha.label { 824 font-family: var(--fonts-monospace); 825 font-size: 13px; 826 font-weight: var(--font-weight-normal); 827 margin: 0 6px; 828 padding: 5px 10px; 829 flex-shrink: 0; 830} 831 832.ui .sha.label .shortsha { 833 display: inline-block; /* not sure whether it is still needed */ 834} 835 836.ui .button.truncate { 837 display: inline-block; 838 max-width: 100%; 839 overflow: hidden; 840 text-overflow: ellipsis; 841 vertical-align: top; 842 white-space: nowrap; 843 margin-right: 6px; 844} 845 846.ui.status.buttons .svg { 847 margin-right: 4px; 848} 849 850.ui.inline.delete-button { 851 padding: 8px 15px; 852 font-weight: var(--font-weight-normal); 853} 854 855.ui .background.red { 856 background-color: var(--color-red) !important; 857} 858 859.ui .background.blue { 860 background-color: var(--color-blue) !important; 861} 862 863.ui .background.black { 864 background-color: var(--color-black) !important; 865} 866 867.ui .background.grey { 868 background-color: var(--color-grey) !important; 869} 870 871.ui .background.light.grey { 872 background-color: var(--color-grey) !important; 873} 874 875.ui .background.green { 876 background-color: var(--color-green) !important; 877} 878 879.ui .background.purple { 880 background-color: var(--color-purple) !important; 881} 882 883.ui .background.yellow { 884 background-color: var(--color-yellow) !important; 885} 886 887.ui .background.orange { 888 background-color: var(--color-orange) !important; 889} 890 891.ui .background.gold { 892 background-color: var(--color-gold) !important; 893} 894 895.ui .migrate { 896 color: var(--color-text-light-2) !important; 897} 898 899.ui .migrate a { 900 color: var(--color-text-light) !important; 901} 902 903.ui .migrate a:hover { 904 color: var(--color-text) !important; 905} 906 907.ui .border { 908 border: 1px solid; 909} 910 911.ui .border.red { 912 border-color: var(--color-red) !important; 913} 914 915.ui .border.blue { 916 border-color: var(--color-blue) !important; 917} 918 919.ui .border.black { 920 border-color: var(--color-black) !important; 921} 922 923.ui .border.grey { 924 border-color: var(--color-grey) !important; 925} 926 927.ui .border.light.grey { 928 border-color: var(--color-grey) !important; 929} 930 931.ui .border.green { 932 border-color: var(--color-green) !important; 933} 934 935.ui .border.purple { 936 border-color: var(--color-purple) !important; 937} 938 939.ui .border.yellow { 940 border-color: var(--color-yellow) !important; 941} 942 943.ui .border.orange { 944 border-color: var(--color-orange) !important; 945} 946 947.ui .border.gold { 948 border-color: var(--color-gold) !important; 949} 950 951@media (max-width: 767.98px) { 952 .ui.pagination.menu .item:not(.active,.navigation), 953 .ui.pagination.menu .item.navigation span.navigation_label { 954 display: none; 955 } 956} 957 958.ui.pagination.menu.narrow .item { 959 padding-left: 8px; 960 padding-right: 8px; 961 min-width: 1em; 962 text-align: center; 963} 964 965.ui.pagination.menu.narrow .item .icon { 966 margin-right: 0; 967} 968 969.ui.floating.dropdown .overflow.menu .scrolling.menu.items { 970 border-radius: 0 !important; 971 box-shadow: none !important; 972 border-bottom: 1px solid var(--color-secondary); 973} 974 975.user-menu > .item { 976 width: 100%; 977 border-radius: 0 !important; 978} 979 980.scrolling.menu .item.selected { 981 font-weight: var(--font-weight-semibold) !important; 982} 983 984.ui.dropdown .scrolling.menu { 985 border-color: var(--color-secondary); 986} 987 988.color-preview { 989 display: inline-block; 990 margin-left: 0.4em; 991 height: 0.67em; 992 width: 0.67em; 993 border-radius: var(--border-radius); 994} 995 996.attention-icon { 997 margin: auto 0.5em auto 0; 998} 999 1000.attention-title { 1001 align-items: center; 1002 display: flex; 1003} 1004 1005blockquote.attention-note { 1006 border-left-color: var(--color-blue-dark-1); 1007} 1008strong.attention-note, svg.attention-note { 1009 color: var(--color-blue-dark-1); 1010} 1011 1012blockquote.attention-tip { 1013 border-left-color: var(--color-success-text); 1014} 1015strong.attention-tip, svg.attention-tip { 1016 color: var(--color-success-text); 1017} 1018 1019blockquote.attention-important { 1020 border-left-color: var(--color-violet-dark-1); 1021} 1022strong.attention-important, svg.attention-important { 1023 color: var(--color-violet-dark-1); 1024} 1025 1026blockquote.attention-warning { 1027 border-left-color: var(--color-warning-text); 1028} 1029strong.attention-warning, svg.attention-warning { 1030 color: var(--color-warning-text); 1031} 1032 1033blockquote.attention-caution { 1034 border-left-color: var(--color-red-dark-1); 1035} 1036strong.attention-caution, svg.attention-caution { 1037 color: var(--color-red-dark-1); 1038} 1039 1040.center:not(.popup) { 1041 text-align: center; 1042} 1043 1044overflow-menu { 1045 border-bottom: 1px solid var(--color-secondary) !important; 1046 display: flex; 1047} 1048 1049overflow-menu .overflow-menu-items { 1050 display: flex; 1051 flex: 1; 1052} 1053 1054overflow-menu .overflow-menu-items .item { 1055 margin-bottom: 0 !important; /* reset fomantic's margin, because the active menu has special bottom border */ 1056} 1057 1058overflow-menu .overflow-menu-items .item > .svg { 1059 align-self: baseline; 1060} 1061 1062overflow-menu .ui.label { 1063 margin-left: 7px !important; /* save some space */ 1064} 1065 1066.activity-bar-graph { 1067 background-color: var(--color-primary); 1068 color: var(--color-primary-contrast); 1069} 1070 1071.archived-icon { 1072 color: var(--color-secondary-dark-2) !important; 1073} 1074 1075/* colors of colorful icons */ 1076svg.text.green, 1077.text.green svg { 1078 color: var(--color-icon-green) !important; 1079} 1080svg.text.red, 1081.text.red svg { 1082 color: var(--color-icon-red) !important; 1083} 1084svg.text.purple, 1085.text.purple svg { 1086 color: var(--color-icon-purple) !important; 1087} 1088 1089.oauth2-authorize-application-box { 1090 margin-top: 3em !important; 1091} 1092 1093/* multiple radio or checkboxes as inline element */ 1094.inline-grouped-list { 1095 display: inline-block; 1096 vertical-align: top; 1097} 1098 1099.inline-grouped-list > .ui { 1100 display: block; 1101 margin-top: 5px; 1102 margin-bottom: 10px; 1103} 1104 1105.inline-grouped-list > .ui:first-child { 1106 margin-top: 1px; 1107} 1108 1109.ui.menu .item > .label { 1110 background: var(--color-label-bg); 1111 color: var(--color-label-text); 1112} 1113 1114.ui.menu .active.item > .label, 1115.ui.menu.tabs-with-labels .item:hover > .label { 1116 background: var(--color-label-bg-alt, var(--color-label-bg)); 1117} 1118 1119.lines-blame-btn { 1120 padding: 0 0 0 5px; 1121 display: flex; 1122 justify-content: center; 1123} 1124 1125.lines-num { 1126 padding: 0 8px; 1127 text-align: right !important; 1128 color: var(--color-text-light-2); 1129 width: 1%; 1130 font-family: var(--fonts-monospace); 1131} 1132 1133.lines-num span.bottom-line::after { 1134 border-bottom: 1px solid var(--color-secondary); 1135} 1136 1137.lines-num span::after { 1138 content: attr(data-line-number); 1139 line-height: 20px !important; 1140 padding: 0 10px; 1141 cursor: pointer; 1142 display: block; 1143} 1144 1145.lines-type-marker { 1146 vertical-align: top; 1147} 1148 1149.lines-num, 1150.lines-code { 1151 font-size: 12px; 1152 font-family: var(--fonts-monospace); 1153 line-height: 20px; 1154 padding-top: 0; 1155 padding-bottom: 0; 1156 vertical-align: top; 1157} 1158 1159.lines-num pre, 1160.lines-code pre, 1161.lines-num ol, 1162.lines-code ol { 1163 background-color: inherit; 1164 margin: 0; 1165 padding: 0 !important; 1166} 1167 1168.lines-num pre li, 1169.lines-code pre li, 1170.lines-num ol li, 1171.lines-code ol li { 1172 display: block; 1173 width: calc(100% - 1ch); 1174 padding-left: 1ch; 1175} 1176 1177.lines-escape { 1178 width: 0; 1179} 1180 1181.lines-code { 1182 padding-left: 5px; 1183} 1184 1185.file-view tr.active { 1186 color: inherit !important; 1187 background: inherit !important; 1188} 1189 1190.file-view tr.active .lines-num, 1191.file-view tr.active .lines-code { 1192 background: var(--color-highlight-bg) !important; 1193} 1194 1195.file-view tr.active:last-of-type .lines-code { 1196 border-bottom-right-radius: var(--border-radius); 1197} 1198 1199.file-view tr.active .lines-num { 1200 position: relative; 1201} 1202 1203.file-view tr.active .lines-num::before { 1204 content: ""; 1205 position: absolute; 1206 left: 0; 1207 width: 2px; 1208 height: 100%; 1209 background: var(--color-highlight-fg); 1210} 1211 1212.code-inner { 1213 font: 12px var(--fonts-monospace); 1214 white-space: pre-wrap; 1215 word-break: break-all; 1216 overflow-wrap: anywhere; 1217 line-height: inherit; /* needed for inline code preview in markup */ 1218} 1219 1220.blame .code-inner { 1221 white-space: pre-wrap; 1222 overflow-wrap: anywhere; 1223} 1224 1225.lines-commit { 1226 vertical-align: top; 1227 color: var(--color-text-light-1); 1228 padding: 0 !important; 1229 width: 1%; 1230} 1231 1232.lines-commit .blame-info { 1233 width: min(26vw, 300px); 1234 display: block; 1235 padding: 0 0 0 6px; 1236 line-height: 20px; 1237 box-sizing: content-box; 1238} 1239 1240.lines-commit .blame-info .blame-data { 1241 display: flex; 1242 font-family: var(--fonts-regular); 1243} 1244 1245.lines-commit .blame-info .blame-data .blame-message { 1246 flex-grow: 2; 1247 overflow: hidden; 1248 white-space: nowrap; 1249 text-overflow: ellipsis; 1250} 1251 1252.lines-commit .blame-info .blame-data .blame-time, 1253.lines-commit .blame-info .blame-data .blame-avatar { 1254 flex-shrink: 0; 1255} 1256 1257.blame-avatar { 1258 display: flex; 1259 align-items: center; 1260 margin-right: 4px; 1261} 1262 1263.top-line-blame { 1264 border-top: 1px solid var(--color-secondary); 1265} 1266 1267.code-view tr.top-line-blame:first-of-type { 1268 border-top: none; 1269} 1270 1271.lines-code .bottom-line, 1272.lines-commit .bottom-line { 1273 border-bottom: 1px solid var(--color-secondary); 1274} 1275 1276.code-view { 1277 background: var(--color-code-bg); 1278 border-radius: var(--border-radius); 1279} 1280 1281.code-view table { 1282 width: 100%; 1283} 1284 1285.migrate .svg.gitea-git { 1286 color: var(--color-git); 1287} 1288 1289.color-icon { 1290 display: inline-block; 1291 border-radius: var(--border-radius-full); 1292 height: 14px; 1293 width: 14px; 1294} 1295 1296.rss-icon { 1297 display: inline-flex; 1298 color: var(--color-text-light-1); 1299} 1300 1301table th[data-sortt-asc]:hover, 1302table th[data-sortt-desc]:hover { 1303 background: var(--color-hover) !important; 1304 cursor: pointer !important; 1305} 1306 1307table th[data-sortt-asc] .svg, 1308table th[data-sortt-desc] .svg { 1309 margin-left: 0.25rem; 1310} 1311 1312.ui.dropdown .menu .item { 1313 border-radius: 0; 1314} 1315 1316.ui.dropdown .menu .item:first-of-type { 1317 border-radius: var(--border-radius) var(--border-radius) 0 0; 1318} 1319 1320.ui.dropdown .menu .item:last-of-type { 1321 border-radius: 0 0 var(--border-radius) var(--border-radius); 1322} 1323 1324.ui.multiple.dropdown > .label { 1325 box-shadow: 0 0 0 1px var(--color-secondary) inset; 1326} 1327 1328.emoji, 1329.reaction { 1330 font-size: 1.25em; 1331 line-height: var(--line-height-default); 1332 font-style: normal !important; 1333 font-weight: var(--font-weight-normal) !important; 1334 vertical-align: -0.075em; 1335} 1336 1337.emoji img, 1338.reaction img { 1339 border-width: 0 !important; 1340 margin: 0 !important; 1341 width: 1em !important; 1342 height: 1em !important; 1343 vertical-align: -0.15em; 1344} 1345 1346.ui.tabular.menu { 1347 border-color: var(--color-secondary); 1348} 1349 1350.ui.tabular.menu .active.item, 1351.ui.tabular.menu .active.item:hover { 1352 background: var(--color-body); 1353 border-color: var(--color-secondary); 1354 color: var(--color-text); 1355} 1356 1357.ui.segment .ui.tabular.menu .active.item, 1358.ui.segment .ui.tabular.menu .active.item:hover { 1359 background: var(--color-box-body); 1360} 1361 1362.ui.secondary.pointing.menu { 1363 border-color: var(--color-secondary); 1364} 1365 1366.ui.tabular.menu .item { 1367 height: 100%; 1368} 1369 1370.ui.tabular.menu .item, 1371.ui.secondary.pointing.menu .item { 1372 padding: 11px 12px !important; 1373 color: var(--color-text-light-2); 1374} 1375 1376.ui.tabular.menu .item:hover, 1377.ui.secondary.pointing.menu a.item:hover, .ui.secondary.pointing.menu a.item:focus { 1378 color: var(--color-text); 1379} 1380 1381.ui.secondary.pointing.menu .active.item, 1382.ui.secondary.pointing.menu .active.item:hover, .ui.secondary.pointing.menu .active.item:focus, 1383.ui.secondary.pointing.menu .dropdown.item:hover, .ui.secondary.pointing.menu .dropdown.item:focus { 1384 color: var(--color-text-dark); 1385} 1386 1387.ui.tabular.menu .active.item, 1388.ui.secondary.pointing.menu .active.item, 1389.resize-for-semibold::before { 1390 font-weight: var(--font-weight-semibold); 1391} 1392 1393.resize-for-semibold::before { 1394 content: attr(data-text); 1395 visibility: hidden; 1396 display: block; 1397 height: 0; 1398} 1399 1400.flash-error details code, 1401.flash-warning details code { 1402 display: block; 1403 text-align: left; 1404} 1405 1406.truncated-item-container { 1407 display: flex !important; 1408 align-items: center; 1409} 1410 1411.ellipsis-button { 1412 padding: 0 5px 8px !important; 1413 display: inline-block !important; 1414 font-weight: var(--font-weight-semibold) !important; 1415 line-height: 6px !important; 1416 vertical-align: middle !important; 1417} 1418 1419.truncated-item-name { 1420 line-height: 2; 1421 white-space: nowrap; 1422 overflow: hidden; 1423 text-overflow: ellipsis; 1424 margin-top: -0.5em; 1425 margin-bottom: -0.5em; 1426} 1427 1428.precolors { 1429 display: flex; 1430 flex-direction: column; 1431 justify-content: center; 1432 margin-left: 1em; 1433} 1434 1435.precolors .color { 1436 display: inline-block; 1437 width: 15px; 1438 height: 15px; 1439} 1440 1441.ui.dropdown:not(.button) { 1442 line-height: var(--line-height-default); /* the dropdown doesn't have default line-height, use this to make the dropdown icon align with plain dropdown */ 1443} 1444 1445/* dropdown has some kinds of icons: 1446- "> .dropdown.icon": the arrow for opening the dropdown 1447- "> .remove.icon": the "x" icon for clearing the dropdown, only used in selection dropdown 1448- "> .ui.label > .delete.icon": the "x" icon for removing a label item in multiple selection dropdown 1449*/ 1450 1451.ui.dropdown.mini.button, 1452.ui.dropdown.tiny.button { 1453 padding-right: 20px; 1454} 1455.ui.dropdown.button { 1456 padding-right: 22px; 1457} 1458.ui.dropdown.large.button { 1459 padding-right: 24px; 1460} 1461 1462/* Gitea uses SVG images instead of Fomantic builtin "<i>" font icons, so we need to reset the icon styles */ 1463.ui.ui.dropdown > .icon.icon { 1464 position: initial; /* plain dropdown and button dropdown use flex layout for icons */ 1465 padding: 0; 1466 margin: 0; 1467 height: auto; 1468} 1469 1470.ui.ui.dropdown > .icon.icon:hover { 1471 opacity: 1; 1472} 1473 1474.ui.ui.button.dropdown > .icon.icon, 1475.ui.ui.selection.dropdown > .icon.icon { 1476 position: absolute; /* selection dropdown uses absolute layout for icons */ 1477 top: 50%; 1478 transform: translateY(-50%); 1479} 1480 1481.ui.ui.dropdown > .dropdown.icon { 1482 right: 0.5em; 1483} 1484 1485.ui.ui.dropdown > .remove.icon { 1486 right: 2em; 1487} 1488 1489.btn, 1490.ui.ui.button, 1491.ui.ui.dropdown, 1492.flex-items-inline > .item, 1493.flex-text-inline { 1494 display: inline-flex; 1495 align-items: center; 1496 gap: .25rem; 1497 vertical-align: middle; 1498 min-width: 0; 1499} 1500 1501.ui.ui.button { 1502 justify-content: center; 1503} 1504 1505.ui.dropdown .ui.label .svg { 1506 vertical-align: middle; 1507} 1508 1509.ui.ui.labeled.button { 1510 gap: 0; 1511 align-items: stretch; 1512} 1513 1514.flex-items-block > .item, 1515.flex-text-block { 1516 display: flex; 1517 align-items: center; 1518 gap: .25rem; 1519 min-width: 0; 1520}