1
0
Fork 0
forked from forgejo/forgejo

Replace Less with CSS (#23508)

Backport https://github.com/go-gitea/gitea/pull/23481,
https://github.com/go-gitea/gitea/pull/23504 and
https://github.com/go-gitea/gitea/pull/23520 to 1.19, just so we have an
easier time with future backports.

Seems to work on a basic level. There was a merge conflict in
`RepoActionView.vue`, otherwise it merged cleanly.

---------

Co-authored-by: John Olheiser <john.olheiser@gmail.com>
Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
silverwind 2023-03-17 02:04:39 +01:00 committed by GitHub
parent 23a6fa9421
commit 8f8bd3c0cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
72 changed files with 8236 additions and 4176 deletions

110
web_src/css/admin.css Normal file
View file

@ -0,0 +1,110 @@
.admin.hooks .list > .item:not(:first-child) {
border-top: 1px solid var(--color-secondary);
padding: 0.25rem 1rem;
margin: 12px -1rem -1rem;
}
.admin .table.segment {
padding: 0;
font-size: 13px;
overflow-x: auto;
}
.admin .table.segment:not(.striped) thead th:last-child {
padding-right: 5px !important;
}
.admin .table.segment th {
padding-top: 5px;
padding-bottom: 5px;
}
.admin .table.segment:not(.select) th:first-of-type,
.admin .table.segment:not(.select) td:first-of-type {
padding-left: 15px !important;
}
.admin .table.segment form tbody button[type="submit"] {
padding: 5px 8px;
}
.admin .settings .button.adopt,
.admin .settings .button.delete {
margin-top: -15px;
margin-bottom: -15px;
}
.admin .settings .button.adopt .label,
.admin .settings .button.delete .label {
vertical-align: middle;
}
.admin.user .email {
max-width: 200px;
}
.admin dl.admin-dl-horizontal {
padding: 20px;
margin: 0;
}
.admin dl.admin-dl-horizontal dd {
margin-left: 275px;
}
@media (max-width: 767px) {
.admin dl.admin-dl-horizontal dd {
margin-left: 5%;
}
}
.admin dl.admin-dl-horizontal dt {
font-weight: 600;
float: left;
width: 285px;
clear: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@media (max-width: 767px) {
.admin dl.admin-dl-horizontal dt {
width: auto;
margin-right: 0.5em;
}
}
.admin.config #test-mail-btn {
margin-left: 5px;
}
.admin code,
.admin pre {
white-space: pre-wrap;
word-wrap: break-word;
}
@media (max-width: 767px) {
.admin #notice-table .notice-description {
max-width: 80vw;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.admin #notice-table .notice-description {
max-width: 360px;
}
}
@media (min-width: 992px) and (max-width: 1200px) {
.admin #notice-table .notice-description {
max-width: 510px;
}
}
@media (min-width: 1201px) {
.admin #notice-table .notice-description {
max-width: 640px;
}
}

View file

@ -0,0 +1,81 @@
@keyframes isloadingspin {
0% { transform: translate(-50%, -50%) rotate(0deg); }
100% { transform: translate(-50%, -50%) rotate(360deg); }
}
.is-loading {
background: transparent !important;
color: transparent !important;
border: transparent !important;
pointer-events: none !important;
position: relative !important;
overflow: hidden !important;
}
.is-loading::after {
content: "";
position: absolute;
display: block;
width: 4rem;
height: 4rem;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
animation: isloadingspin 500ms infinite linear;
border-width: 4px;
border-style: solid;
border-color: var(--color-secondary) var(--color-secondary) var(--color-secondary-dark-8) var(--color-secondary-dark-8);
border-radius: 100%;
}
.markup pre.is-loading,
.editor-loading.is-loading {
height: var(--height-loading);
}
.btn-octicon.is-loading::after {
border-width: 2px;
height: 1.25rem;
width: 1.25rem;
}
code.language-math.is-loading::after {
padding: 0;
border-width: 2px;
width: 1.25rem;
height: 1.25rem;
}
@keyframes fadein {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fadeout {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.8);
}
100% {
transform: scale(1);
}
}
.pulse {
animation: pulse 2s linear;
}

2766
web_src/css/base.css Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,50 @@
.chroma {
background-color: var(--color-code-bg);
}
/* LineTableTD */
.chroma .lntd {
vertical-align: top;
padding: 0;
margin: 0;
border: 0;
}
/* LineTable */
.chroma .lntable {
border-spacing: 0;
padding: 0;
margin: 0;
border: 0;
width: auto;
overflow: auto;
display: block;
}
/* LineHighlight */
.chroma .hl {
display: block;
width: 100%;
}
/* LineNumbersTable */
.chroma .lnt {
margin-right: 0.4em;
padding: 0 0.4em;
}
/* LineNumbers */
.chroma .ln {
margin-right: 0.4em;
padding: 0 0.4em;
}
/* GenericStrong */
.chroma .gs {
font-weight: 600;
}
/* GenericUnderline */
.chroma .gl {
text-decoration: underline;
}

View file

@ -0,0 +1,74 @@
.chroma .bp { color: #fabd2f; } /* NameBuiltinPseudo */
.chroma .c { color: #777e94; } /* Comment */
.chroma .c1 { color: #777e94; } /* CommentSingle */
.chroma .ch { color: #777e94; } /* CommentHashbang */
.chroma .cm { color: #777e94; } /* CommentMultiline */
.chroma .cp { color: #8ec07c; } /* CommentPreproc */
.chroma .cpf { color: #649bc4; } /* CommentPreprocFile */
.chroma .cs { color: #9075cd; } /* CommentSpecial */
.chroma .dl { color: #649bc4; } /* LiteralStringDelimiter */
.chroma .fm {} /* NameFunctionMagic */
.chroma .g {} /* Generic */
.chroma .gd { color: #ffffff; background-color: #5f3737; } /* GenericDeleted */
.chroma .ge { color: #ddee30; } /* GenericEmph */
.chroma .gh { color: #ffaa10; } /* GenericHeading */
.chroma .gi { color: #ffffff; background-color: #3a523a; } /* GenericInserted */
.chroma .gl {} /* GenericUnderline */
.chroma .go { color: #777e94; } /* GenericOutput */
.chroma .gp { color: #ebdbb2; } /* GenericPrompt */
.chroma .gr { color: #ff4433; } /* GenericError */
.chroma .gs { color: #ebdbb2; } /* GenericStrong */
.chroma .gt { color: #ff7540; } /* GenericTraceback */
.chroma .gu { color: #b8bb26; } /* GenericSubheading */
.chroma .il { color: #649bc4; } /* LiteralNumberIntegerLong */
.chroma .k { color: #ff7540; } /* Keyword */
.chroma .kc { color: #649bc4; } /* KeywordConstant */
.chroma .kd { color: #ff7540; } /* KeywordDeclaration */
.chroma .kn { color: #ffaa10; } /* KeywordNamespace */
.chroma .kp { color: #5f8700; } /* KeywordPseudo */
.chroma .kr { color: #ff7540; } /* KeywordReserved */
.chroma .kt { color: #ff7b72; } /* KeywordType */
.chroma .l {} /* Literal */
.chroma .ld {} /* LiteralDate */
.chroma .m { color: #649bc4; } /* LiteralNumber */
.chroma .mb { color: #649bc4; } /* LiteralNumberBin */
.chroma .mf { color: #649bc4; } /* LiteralNumberFloat */
.chroma .mh { color: #649bc4; } /* LiteralNumberHex */
.chroma .mi { color: #649bc4; } /* LiteralNumberInteger */
.chroma .mo { color: #649bc4; } /* LiteralNumberOct */
.chroma .n { color: #c9d1d9; } /* Name */
.chroma .na { color: #b8bb26; } /* NameAttribute */
.chroma .nb { color: #fabd2f; } /* NameBuiltin */
.chroma .nc { color: #ffaa10; } /* NameClass */
.chroma .nd { color: #8ec07c; } /* NameDecorator */
.chroma .ne { color: #ff7540; } /* NameException */
.chroma .nf { color: #fabd2f; } /* NameFunction */
.chroma .ni { color: #fabd2f; } /* NameEntity */
.chroma .nl { color: #ff7540; } /* NameLabel */
.chroma .nn { color: #ffaa10; } /* NameNamespace */
.chroma .no { color: #649bc4; } /* NameConstant */
.chroma .nt { color: #ff7540; } /* NameTag */
.chroma .nv { color: #ebdbb2; } /* NameVariable */
.chroma .nx { color: #b6bac5; } /* NameOther */
.chroma .o { color: #ff7540; } /* Operator */
.chroma .ow { color: #5f8700; } /* OperatorWord */
.chroma .p { color: #d2d4db; } /* Punctuation */
.chroma .py {} /* NameProperty */
.chroma .s { color: #b8bb26; } /* LiteralString */
.chroma .s1 { color: #b8bb26; } /* LiteralStringSingle */
.chroma .s2 { color: #b8bb26; } /* LiteralStringDouble */
.chroma .sa { color: #649bc4; } /* LiteralStringAffix */
.chroma .sb { color: #b8bb26; } /* LiteralStringBacktick */
.chroma .sc { color: #649bc4; } /* LiteralStringChar */
.chroma .sd { color: #777e94; } /* LiteralStringDoc */
.chroma .se { color: #ff7540; } /* LiteralStringEscape */
.chroma .sh { color: #649bc4; } /* LiteralStringHeredoc */
.chroma .si { color: #ffaa10; } /* LiteralStringInterpol */
.chroma .sr { color: #9075cd; } /* LiteralStringRegex */
.chroma .ss { color: #ff7540; } /* LiteralStringSymbol */
.chroma .sx { color: #ffaa10; } /* LiteralStringOther */
.chroma .vc { color: #ff7540; } /* NameVariableClass */
.chroma .vg { color: #ffaa10; } /* NameVariableGlobal */
.chroma .vi { color: #ffaa10; } /* NameVariableInstance */
.chroma .vm {} /* NameVariableMagic */
.chroma .w { color: #7f8699; } /* TextWhitespace */

View file

@ -0,0 +1,74 @@
.chroma .bp { color: #999999; } /* NameBuiltinPseudo */
.chroma .c { color: #6a737d; } /* Comment */
.chroma .c1 { color: #6a737d; } /* CommentSingle */
.chroma .ch { color: #6a737d; } /* CommentHashbang */
.chroma .cm { color: #999988; } /* CommentMultiline */
.chroma .cp { color: #109295; } /* CommentPreproc */
.chroma .cpf { color: #4c4dbc; } /* CommentPreprocFile */
.chroma .cs { color: #999999; } /* CommentSpecial */
.chroma .dl { color: #106303; } /* LiteralStringDelimiter */
.chroma .fm {} /* NameFunctionMagic */
.chroma .g {} /* Generic */
.chroma .gd { color: #000000; background-color: #ffdddd; } /* GenericDeleted */
.chroma .ge { color: #000000; } /* GenericEmph */
.chroma .gh { color: #999999; } /* GenericHeading */
.chroma .gi { color: #000000; background-color: #ddffdd; } /* GenericInserted */
.chroma .gl {} /* GenericUnderline */
.chroma .go { color: #888888; } /* GenericOutput */
.chroma .gp { color: #555555; } /* GenericPrompt */
.chroma .gr { color: #aa0000; } /* GenericError */
.chroma .gs {} /* GenericStrong */
.chroma .gt { color: #aa0000; } /* GenericTraceback */
.chroma .gu { color: #aaaaaa; } /* GenericSubheading */
.chroma .il { color: #009999; } /* LiteralNumberIntegerLong */
.chroma .k { color: #d73a49; } /* Keyword */
.chroma .kc { color: #d73a49; } /* KeywordConstant */
.chroma .kd { color: #d73a49; } /* KeywordDeclaration */
.chroma .kn { color: #d73a49; } /* KeywordNamespace */
.chroma .kp { color: #d73a49; } /* KeywordPseudo */
.chroma .kr { color: #d73a49; } /* KeywordReserved */
.chroma .kt { color: #445588; } /* KeywordType */
.chroma .l {} /* Literal */
.chroma .ld {} /* LiteralDate */
.chroma .m { color: #009999; } /* LiteralNumber */
.chroma .mb { color: #009999; } /* LiteralNumberBin */
.chroma .mf { color: #009999; } /* LiteralNumberFloat */
.chroma .mh { color: #009999; } /* LiteralNumberHex */
.chroma .mi { color: #009999; } /* LiteralNumberInteger */
.chroma .mo { color: #009999; } /* LiteralNumberOct */
.chroma .n {} /* Name */
.chroma .na { color: #d73a49; } /* NameAttribute */
.chroma .nb { color: #005cc5; } /* NameBuiltin */
.chroma .nc { color: #445588; } /* NameClass */
.chroma .nd { color: #3c5d5d; } /* NameDecorator */
.chroma .ne { color: #990000; } /* NameException */
.chroma .nf { color: #005cc5; } /* NameFunction */
.chroma .ni { color: #6f42c1; } /* NameEntity */
.chroma .nl { color: #990000; } /* NameLabel */
.chroma .nn { color: #555555; } /* NameNamespace */
.chroma .no { color: #008080; } /* NameConstant */
.chroma .nt { color: #22863a; } /* NameTag */
.chroma .nv { color: #008080; } /* NameVariable */
.chroma .nx { color: #24292e; } /* NameOther */
.chroma .o { color: #d73a49; } /* Operator */
.chroma .ow { color: #d73a49; } /* OperatorWord */
.chroma .p {} /* Punctuation */
.chroma .py {} /* NameProperty */
.chroma .s { color: #106303; } /* LiteralString */
.chroma .s1 { color: #cc7a00; } /* LiteralStringSingle */
.chroma .s2 { color: #106303; } /* LiteralStringDouble */
.chroma .sa { color: #106303; } /* LiteralStringAffix */
.chroma .sb { color: #106303; } /* LiteralStringBacktick */
.chroma .sc { color: #106303; } /* LiteralStringChar */
.chroma .sd { color: #106303; } /* LiteralStringDoc */
.chroma .se { color: #106303; } /* LiteralStringEscape */
.chroma .sh { color: #106303; } /* LiteralStringHeredoc */
.chroma .si { color: #106303; } /* LiteralStringInterpol */
.chroma .sr { color: #22863a; } /* LiteralStringRegex */
.chroma .ss { color: #106303; } /* LiteralStringSymbol */
.chroma .sx { color: #106303; } /* LiteralStringOther */
.chroma .vc { color: #008080; } /* NameVariableClass */
.chroma .vg { color: #008080; } /* NameVariableGlobal */
.chroma .vi { color: #008080; } /* NameVariableInstance */
.chroma .vm {} /* NameVariableMagic */
.chroma .w { color: #bbbbbb; } /* TextWhitespace */

View file

@ -0,0 +1,24 @@
.code-view .lines-num:hover {
color: var(--color-text-dark) !important;
}
.code-line-menu {
width: auto !important;
}
.code-line-button {
background-color: var(--color-menu);
color: var(--color-text-light);
border: 1px solid var(--color-secondary);
border-radius: var(--border-radius);
padding: 1px 10px;
position: absolute;
font-family: var(--fonts-regular);
left: 0;
transform: translateX(-70%);
cursor: pointer;
&:hover {
color: var(--color-primary);
}
}

View file

@ -0,0 +1,45 @@
.ui .field:not(:last-child) .EasyMDEContainer .editor-statusbar {
margin-bottom: -1em; /* when there is a statusbar, the "margin-bottom: 1em" of the "field" is not needed, because the statusbar is likely a blank line */
}
.EasyMDEContainer .CodeMirror {
color: var(--color-input-text);
background-color: var(--color-input-background);
border-color: var(--color-secondary);
font: 14px var(--fonts-monospace);
}
.EasyMDEContainer .CodeMirror.cm-s-default {
border-radius: var(--border-radius);
padding: 0 !important;
}
.EasyMDEContainer .CodeMirror.CodeMirror-fullscreen.CodeMirror-focused {
border-right: 1px solid var(--color-primary) !important;
}
.CodeMirror-cursor {
border-color: var(--color-caret) !important;
}
.CodeMirror .cm-comment {
background: inherit !important;
}
.CodeMirror .CodeMirror-code {
font: 14px var(--fonts-monospace);
}
.CodeMirror-selected {
background: var(--color-primary-light-1) !important;
color: var(--color-white) !important;
}
.CodeMirror-placeholder {
color: var(--color-placeholder-text) !important;
opacity: 1 !important;
}
.CodeMirror-focused {
border-color: var(--color-primary) !important;
}

View file

@ -0,0 +1,106 @@
.CodeMirror.cm-s-default .cm-property,
.CodeMirror.cm-s-paper .cm-property {
color: #a0cc75;
}
.CodeMirror.cm-s-default .cm-header,
.CodeMirror.cm-s-paper .cm-header {
color: #9daccc;
}
.CodeMirror.cm-s-default .cm-quote,
.CodeMirror.cm-s-paper .cm-quote {
color: #009900;
}
.CodeMirror.cm-s-default .cm-keyword,
.CodeMirror.cm-s-paper .cm-keyword {
color: #cc8a61;
}
.CodeMirror.cm-s-default .cm-atom,
.CodeMirror.cm-s-paper .cm-atom {
color: #ef5e77;
}
.CodeMirror.cm-s-default .cm-number,
.CodeMirror.cm-s-paper .cm-number {
color: #ff5656;
}
.CodeMirror.cm-s-default .cm-def,
.CodeMirror.cm-s-paper .cm-def {
color: #e4e4e4;
}
.CodeMirror.cm-s-default .cm-variable-2,
.CodeMirror.cm-s-paper .cm-variable-2 {
color: #00bdbf;
}
.CodeMirror.cm-s-default .cm-variable-3,
.CodeMirror.cm-s-paper .cm-variable-3 {
color: #008855;
}
.CodeMirror.cm-s-default .cm-comment,
.CodeMirror.cm-s-paper .cm-comment {
color: #8e9ab3;
}
.CodeMirror.cm-s-default .cm-string,
.CodeMirror.cm-s-paper .cm-string {
color: #a77272;
}
.CodeMirror.cm-s-default .cm-string-2,
.CodeMirror.cm-s-paper .cm-string-2 {
color: #ff5500;
}
.CodeMirror.cm-s-default .cm-meta,
.CodeMirror.cm-s-paper .cm-meta,
.CodeMirror.cm-s-default .cm-qualifier,
.CodeMirror.cm-s-paper .cm-qualifier {
color: #ffb176;
}
.CodeMirror.cm-s-default .cm-builtin,
.CodeMirror.cm-s-paper .cm-builtin {
color: #b7c951;
}
.CodeMirror.cm-s-default .cm-bracket,
.CodeMirror.cm-s-paper .cm-bracket {
color: #999977;
}
.CodeMirror.cm-s-default .cm-tag,
.CodeMirror.cm-s-paper .cm-tag {
color: #f1d273;
}
.CodeMirror.cm-s-default .cm-attribute,
.CodeMirror.cm-s-paper .cm-attribute {
color: #bfcc70;
}
.CodeMirror.cm-s-default .cm-hr,
.CodeMirror.cm-s-paper .cm-hr {
color: #999999;
}
.CodeMirror.cm-s-default .cm-url,
.CodeMirror.cm-s-paper .cm-url {
color: #c5cfd0;
}
.CodeMirror.cm-s-default .cm-link,
.CodeMirror.cm-s-paper .cm-link {
color: #d8c792;
}
.CodeMirror.cm-s-default .cm-error,
.CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb;
}

View file

@ -0,0 +1 @@
/* Placeholder, there is no light theme, it uses CM defaults */

View file

@ -0,0 +1,299 @@
/* Based on https://github.com/buildkite/terminal-to-html/blob/697ff23bd8dc48b9d23f11f259f5256dae2455f0/assets/terminal.css */
.console {
background: var(--color-console-bg);
color: var(--color-console-fg);
font-family: var(--fonts-monospace);
border-radius: 5px;
word-break: break-word;
overflow-wrap: break-word;
}
.console img { max-width: 100%; }
.console a {
color: inherit;
text-decoration: underline;
text-decoration-style: dashed;
}
.console a:hover { color: var(--color-primary); }
@keyframes blink-animation {
to {
visibility: hidden;
}
}
.term-fg2 { color: #838887; } /* faint (decreased intensity) - same as gray really */
.term-fg3 { font-style: italic; } /* italic */
.term-fg4 { text-decoration: underline; } /* underline */
.term-fg5 { animation: blink-animation 1s steps(3, start) infinite; } /* blink */
.term-fg9 { text-decoration: line-through; } /* crossed-out */
.term-fg30 { color: #666666; } /* black (but we can't use black, so a diff color) */
.term-fg31 { color: #ff7070; } /* red */
.term-fg32 { color: #b0f986; } /* green */
.term-fg33 { color: #c6c502; } /* yellow */
.term-fg34 { color: #8db7e0; } /* blue */
.term-fg35 { color: #f271fb; } /* magenta */
.term-fg36 { color: #6bf7ff; } /* cyan */
/* high intense colors */
.term-fgi1 { color: #5ef765; }
.term-fgi90 { color: #838887; } /* grey */
.term-fgi91 { color: #ff3333; } /* red */
.term-fgi92 { color: #00ff00; } /* green */
.term-fgi93 { color: #fffc67; } /* yellow */
.term-fgi94 { color: #6871ff; } /* blue */
.term-fgi95 { color: #ff76ff; } /* magenta */
.term-fgi96 { color: #60fcff; } /* cyan */
/* background colors */
.term-bg40 { background: #676767; } /* grey */
.term-bg41 { background: #ff4343; } /* red */
.term-bg42 { background: #99ff5f; } /* green */
/* custom foreground/background combos for readability */
.term-fg31.term-bg40 { color: #f8a39f; }
/* xterm colors */
.term-fgx16 { color: #000000; }
.term-fgx17 { color: #00005f; }
.term-fgx18 { color: #000087; }
.term-fgx19 { color: #0000af; }
.term-fgx20 { color: #0000d7; }
.term-fgx21 { color: #0000ff; }
.term-fgx22 { color: #005f00; }
.term-fgx23 { color: #005f5f; }
.term-fgx24 { color: #005f87; }
.term-fgx25 { color: #005faf; }
.term-fgx26 { color: #005fd7; }
.term-fgx27 { color: #005fff; }
.term-fgx28 { color: #008700; }
.term-fgx29 { color: #00875f; }
.term-fgx30 { color: #008787; }
.term-fgx31 { color: #0087af; }
.term-fgx32 { color: #0087d7; }
.term-fgx33 { color: #0087ff; }
.term-fgx34 { color: #00af00; }
.term-fgx35 { color: #00af5f; }
.term-fgx36 { color: #00af87; }
.term-fgx37 { color: #00afaf; }
.term-fgx38 { color: #00afd7; }
.term-fgx39 { color: #00afff; }
.term-fgx40 { color: #00d700; }
.term-fgx41 { color: #00d75f; }
.term-fgx42 { color: #00d787; }
.term-fgx43 { color: #00d7af; }
.term-fgx44 { color: #00d7d7; }
.term-fgx45 { color: #00d7ff; }
.term-fgx46 { color: #00ff00; }
.term-fgx47 { color: #00ff5f; }
.term-fgx48 { color: #00ff87; }
.term-fgx49 { color: #00ffaf; }
.term-fgx50 { color: #00ffd7; }
.term-fgx51 { color: #00ffff; }
.term-fgx52 { color: #5f0000; }
.term-fgx53 { color: #5f005f; }
.term-fgx54 { color: #5f0087; }
.term-fgx55 { color: #5f00af; }
.term-fgx56 { color: #5f00d7; }
.term-fgx57 { color: #5f00ff; }
.term-fgx58 { color: #5f5f00; }
.term-fgx59 { color: #5f5f5f; }
.term-fgx60 { color: #5f5f87; }
.term-fgx61 { color: #5f5faf; }
.term-fgx62 { color: #5f5fd7; }
.term-fgx63 { color: #5f5fff; }
.term-fgx64 { color: #5f8700; }
.term-fgx65 { color: #5f875f; }
.term-fgx66 { color: #5f8787; }
.term-fgx67 { color: #5f87af; }
.term-fgx68 { color: #5f87d7; }
.term-fgx69 { color: #5f87ff; }
.term-fgx70 { color: #5faf00; }
.term-fgx71 { color: #5faf5f; }
.term-fgx72 { color: #5faf87; }
.term-fgx73 { color: #5fafaf; }
.term-fgx74 { color: #5fafd7; }
.term-fgx75 { color: #5fafff; }
.term-fgx76 { color: #5fd700; }
.term-fgx77 { color: #5fd75f; }
.term-fgx78 { color: #5fd787; }
.term-fgx79 { color: #5fd7af; }
.term-fgx80 { color: #5fd7d7; }
.term-fgx81 { color: #5fd7ff; }
.term-fgx82 { color: #5fff00; }
.term-fgx83 { color: #5fff5f; }
.term-fgx84 { color: #5fff87; }
.term-fgx85 { color: #5fffaf; }
.term-fgx86 { color: #5fffd7; }
.term-fgx87 { color: #5fffff; }
.term-fgx88 { color: #870000; }
.term-fgx89 { color: #87005f; }
.term-fgx90 { color: #870087; }
.term-fgx91 { color: #8700af; }
.term-fgx92 { color: #8700d7; }
.term-fgx93 { color: #8700ff; }
.term-fgx94 { color: #875f00; }
.term-fgx95 { color: #875f5f; }
.term-fgx96 { color: #875f87; }
.term-fgx97 { color: #875faf; }
.term-fgx98 { color: #875fd7; }
.term-fgx99 { color: #875fff; }
.term-fgx100 { color: #878700; }
.term-fgx101 { color: #87875f; }
.term-fgx102 { color: #878787; }
.term-fgx103 { color: #8787af; }
.term-fgx104 { color: #8787d7; }
.term-fgx105 { color: #8787ff; }
.term-fgx106 { color: #87af00; }
.term-fgx107 { color: #87af5f; }
.term-fgx108 { color: #87af87; }
.term-fgx109 { color: #87afaf; }
.term-fgx110 { color: #87afd7; }
.term-fgx111 { color: #87afff; }
.term-fgx112 { color: #87d700; }
.term-fgx113 { color: #87d75f; }
.term-fgx114 { color: #87d787; }
.term-fgx115 { color: #87d7af; }
.term-fgx116 { color: #87d7d7; }
.term-fgx117 { color: #87d7ff; }
.term-fgx118 { color: #87ff00; }
.term-fgx119 { color: #87ff5f; }
.term-fgx120 { color: #87ff87; }
.term-fgx121 { color: #87ffaf; }
.term-fgx122 { color: #87ffd7; }
.term-fgx123 { color: #87ffff; }
.term-fgx124 { color: #af0000; }
.term-fgx125 { color: #af005f; }
.term-fgx126 { color: #af0087; }
.term-fgx127 { color: #af00af; }
.term-fgx128 { color: #af00d7; }
.term-fgx129 { color: #af00ff; }
.term-fgx130 { color: #af5f00; }
.term-fgx131 { color: #af5f5f; }
.term-fgx132 { color: #af5f87; }
.term-fgx133 { color: #af5faf; }
.term-fgx134 { color: #af5fd7; }
.term-fgx135 { color: #af5fff; }
.term-fgx136 { color: #af8700; }
.term-fgx137 { color: #af875f; }
.term-fgx138 { color: #af8787; }
.term-fgx139 { color: #af87af; }
.term-fgx140 { color: #af87d7; }
.term-fgx141 { color: #af87ff; }
.term-fgx142 { color: #afaf00; }
.term-fgx143 { color: #afaf5f; }
.term-fgx144 { color: #afaf87; }
.term-fgx145 { color: #afafaf; }
.term-fgx146 { color: #afafd7; }
.term-fgx147 { color: #afafff; }
.term-fgx148 { color: #afd700; }
.term-fgx149 { color: #afd75f; }
.term-fgx150 { color: #afd787; }
.term-fgx151 { color: #afd7af; }
.term-fgx152 { color: #afd7d7; }
.term-fgx153 { color: #afd7ff; }
.term-fgx154 { color: #afff00; }
.term-fgx155 { color: #afff5f; }
.term-fgx156 { color: #afff87; }
.term-fgx157 { color: #afffaf; }
.term-fgx158 { color: #afffd7; }
.term-fgx159 { color: #afffff; }
.term-fgx160 { color: #d70000; }
.term-fgx161 { color: #d7005f; }
.term-fgx162 { color: #d70087; }
.term-fgx163 { color: #d700af; }
.term-fgx164 { color: #d700d7; }
.term-fgx165 { color: #d700ff; }
.term-fgx166 { color: #d75f00; }
.term-fgx167 { color: #d75f5f; }
.term-fgx168 { color: #d75f87; }
.term-fgx169 { color: #d75faf; }
.term-fgx170 { color: #d75fd7; }
.term-fgx171 { color: #d75fff; }
.term-fgx172 { color: #d78700; }
.term-fgx173 { color: #d7875f; }
.term-fgx174 { color: #d78787; }
.term-fgx175 { color: #d787af; }
.term-fgx176 { color: #d787d7; }
.term-fgx177 { color: #d787ff; }
.term-fgx178 { color: #d7af00; }
.term-fgx179 { color: #d7af5f; }
.term-fgx180 { color: #d7af87; }
.term-fgx181 { color: #d7afaf; }
.term-fgx182 { color: #d7afd7; }
.term-fgx183 { color: #d7afff; }
.term-fgx184 { color: #d7d700; }
.term-fgx185 { color: #d7d75f; }
.term-fgx186 { color: #d7d787; }
.term-fgx187 { color: #d7d7af; }
.term-fgx188 { color: #d7d7d7; }
.term-fgx189 { color: #d7d7ff; }
.term-fgx190 { color: #d7ff00; }
.term-fgx191 { color: #d7ff5f; }
.term-fgx192 { color: #d7ff87; }
.term-fgx193 { color: #d7ffaf; }
.term-fgx194 { color: #d7ffd7; }
.term-fgx195 { color: #d7ffff; }
.term-fgx196 { color: #ff0000; }
.term-fgx197 { color: #ff005f; }
.term-fgx198 { color: #ff0087; }
.term-fgx199 { color: #ff00af; }
.term-fgx200 { color: #ff00d7; }
.term-fgx201 { color: #ff00ff; }
.term-fgx202 { color: #ff5f00; }
.term-fgx203 { color: #ff5f5f; }
.term-fgx204 { color: #ff5f87; }
.term-fgx205 { color: #ff5faf; }
.term-fgx206 { color: #ff5fd7; }
.term-fgx207 { color: #ff5fff; }
.term-fgx208 { color: #ff8700; }
.term-fgx209 { color: #ff875f; }
.term-fgx210 { color: #ff8787; }
.term-fgx211 { color: #ff87af; }
.term-fgx212 { color: #ff87d7; }
.term-fgx213 { color: #ff87ff; }
.term-fgx214 { color: #ffaf00; }
.term-fgx215 { color: #ffaf5f; }
.term-fgx216 { color: #ffaf87; }
.term-fgx217 { color: #ffafaf; }
.term-fgx218 { color: #ffafd7; }
.term-fgx219 { color: #ffafff; }
.term-fgx220 { color: #ffd700; }
.term-fgx221 { color: #ffd75f; }
.term-fgx222 { color: #ffd787; }
.term-fgx223 { color: #ffd7af; }
.term-fgx224 { color: #ffd7d7; }
.term-fgx225 { color: #ffd7ff; }
.term-fgx226 { color: #ffff00; }
.term-fgx227 { color: #ffff5f; }
.term-fgx228 { color: #ffff87; }
.term-fgx229 { color: #ffffaf; }
.term-fgx230 { color: #ffffd7; }
.term-fgx231 { color: #ffffff; }
.term-fgx232 { color: #080808; }
.term-fgx233 { color: #121212; }
.term-fgx234 { color: #1c1c1c; }
.term-fgx235 { color: #262626; }
.term-fgx236 { color: #303030; }
.term-fgx237 { color: #3a3a3a; }
.term-fgx238 { color: #444444; }
.term-fgx239 { color: #4e4e4e; }
.term-fgx240 { color: #585858; }
.term-fgx241 { color: #626262; }
.term-fgx242 { color: #6c6c6c; }
.term-fgx243 { color: #767676; }
.term-fgx244 { color: #808080; }
.term-fgx245 { color: #8a8a8a; }
.term-fgx246 { color: #949494; }
.term-fgx247 { color: #9e9e9e; }
.term-fgx248 { color: #a8a8a8; }
.term-fgx249 { color: #b2b2b2; }
.term-fgx250 { color: #bcbcbc; }
.term-fgx251 { color: #c6c6c6; }
.term-fgx252 { color: #d0d0d0; }
.term-fgx253 { color: #dadada; }
.term-fgx254 { color: #e4e4e4; }
.term-fgx255 { color: #eeeeee; }

203
web_src/css/dashboard.css Normal file
View file

@ -0,0 +1,203 @@
.dashboard.feeds .context.user.menu,
.dashboard.issues .context.user.menu {
z-index: 101;
min-width: 200px;
}
.dashboard.feeds .context.user.menu .ui.header,
.dashboard.issues .context.user.menu .ui.header {
font-size: 1rem;
text-transform: none;
}
.dashboard.feeds .filter.menu,
.dashboard.issues .filter.menu {
width: initial;
}
.dashboard.feeds .filter.menu .item,
.dashboard.issues .filter.menu .item {
text-align: left;
display: flex;
align-items: center;
justify-content: space-between;
}
.dashboard.feeds .filter.menu .item .text,
.dashboard.issues .filter.menu .item .text {
height: 16px;
vertical-align: middle;
}
.dashboard.feeds .filter.menu .item .text.truncate,
.dashboard.issues .filter.menu .item .text.truncate {
width: 75%;
}
.dashboard.feeds .filter.menu .item .floating.label,
.dashboard.issues .filter.menu .item .floating.label {
top: 7px;
left: 90%;
width: 15%;
}
@media (max-width: 767px) {
.dashboard.feeds .filter.menu .item .floating.label,
.dashboard.issues .filter.menu .item .floating.label {
top: 10px;
left: auto;
width: auto;
right: 13px;
}
}
/* Sort */
.dashboard.feeds .filter.menu .jump.item,
.dashboard.issues .filter.menu .jump.item {
margin: 1px;
padding-right: 0;
}
.dashboard.feeds .filter.menu .menu,
.dashboard.issues .filter.menu .menu {
max-height: 300px;
overflow-x: auto;
right: 0 !important;
left: auto !important;
}
@media (max-width: 767px) {
.dashboard.feeds .filter.menu,
.dashboard.issues .filter.menu {
width: 100%;
}
}
.dashboard.feeds .right.stackable.menu > .item.active,
.dashboard.issues .right.stackable.menu > .item.active {
color: var(--color-red);
}
.dashboard .dashboard-repos,
.dashboard .dashboard-orgs {
margin: 0 1px; /* Accommodate for Semantic's 1px hacks on .attached elements */
}
.dashboard .dashboard-navbar {
width: 100vw;
padding-left: 0.5rem;
padding-right: 0.5rem;
}
.dashboard .dashboard-navbar .org-visibility .label {
margin-left: 5px;
}
.dashboard .dashboard-navbar .ui.dropdown {
max-width: 100%;
}
@media (max-width: 767px) {
.dashboard .dashboard-navbar .ui.dropdown > .menu {
position: static;
}
}
.feeds .news li {
display: flex;
align-items: baseline;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
.feeds .news li img {
align-self: flex-start;
}
.feeds .news li > * + * {
margin-left: 0.35rem;
}
.feeds .news > .ui.grid {
margin-left: auto;
margin-right: auto;
}
.feeds .news .left .ui.avatar {
margin-top: 13px;
}
.feeds .news .time-since {
font-size: 13px;
}
.feeds .news .issue.title {
width: 80%;
margin: 0 0 1em;
}
.feeds .news .push.news .content ul {
line-height: 18px;
font-size: 13px;
list-style: none;
padding-left: 10px;
}
.feeds .news .push.news .content ul .text.truncate {
width: 80%;
}
.feeds .news .commit-id {
font-family: var(--fonts-monospace);
}
.feeds .news code {
padding: 2px 4px;
border-radius: 3px;
background-color: var(--color-markup-code-block);
word-break: break-all;
}
.feeds .news:last-of-type .divider {
display: none !important;
}
.feeds .list ul {
list-style: none;
margin: 0;
padding-left: 0;
}
.feeds .list ul li:not(:last-child) {
border-bottom: 1px solid var(--color-secondary);
}
.feeds .list ul li.private {
background-color: var(--color-box-body-highlight);
}
.feeds .list ul li .repo-list-link {
padding: 6px 1em;
display: block;
}
.feeds .list ul li .repo-list-link .svg {
color: var(--color-text-light-2);
}
.feeds .list ul li .repo-list-link .star-num {
font-size: 12px;
}
.feeds .list #privateFilterCheckbox .svg {
color: var(--color-grey);
margin-right: 0.25rem;
}
.feeds .list .repo-owner-name-list .item-name {
min-width: 0;
}
.feeds .list .repo-owner-name-list .item-name svg {
min-width: 16px;
}

82
web_src/css/editor.css Normal file
View file

@ -0,0 +1,82 @@
.repository.file.editor .tab[data-tab="write"] {
padding: 0 !important;
}
.repository.file.editor .tab[data-tab="write"] .editor-toolbar {
border: 0 !important;
}
.repository.file.editor .tab[data-tab="write"] .CodeMirror {
border-left: 0;
border-right: 0;
border-bottom: 0;
}
.editor-toolbar {
max-width: calc(100vw - 80px);
border-color: var(--color-secondary);
}
.editor-toolbar.fullscreen {
background: var(--color-body);
}
.editor-toolbar button {
border: none !important;
color: var(--color-text-light);
}
.editor-toolbar button:not(:hover) {
background-color: transparent !important;
}
.editor-toolbar i.separator {
border-left: none;
border-right-color: var(--color-secondary);
}
.editor-toolbar button:hover {
background: var(--color-hover);
}
.editor-toolbar button.active {
background: var(--color-active);
}
/* hide preview button, we have the preview tab for this */
.editor-toolbar:not(.fullscreen) .preview {
display: none;
}
/* hide revert button in fullscreen, it breaks the page */
.editor-toolbar.fullscreen .revert-to-textarea {
display: none;
}
.editor-preview {
background-color: var(--color-body);
}
.editor-preview-side {
border-color: var(--color-secondary);
}
.editor-statusbar {
color: var(--color-text-light);
}
.editor-loading {
padding: 1rem;
text-align: center;
}
.edit-diff {
padding: 0 !important;
}
.edit-diff > div > .ui.table {
border-top: none !important;
border-bottom: none !important;
border-left: 1px solid var(--color-secondary) !important;
border-right: 1px solid var(--color-secondary) !important;
}

88
web_src/css/explore.css Normal file
View file

@ -0,0 +1,88 @@
.explore .navbar {
justify-content: center;
margin-bottom: 15px !important;
background-color: var(--color-navbar) !important;
border-width: 1px !important;
}
.explore .navbar .svg {
width: 16px;
text-align: center;
margin-right: 5px;
}
.ui.repository.list .item {
padding-bottom: 1.5rem;
}
.ui.repository.list .item:not(:first-child) {
border-top: 1px solid var(--color-secondary);
padding-top: 1.5rem;
}
.ui.repository.list .item .ui.header {
font-size: 1.5rem;
margin-bottom: 0.5rem;
}
.ui.repository.list .item .ui.header .name {
word-break: break-all;
}
.ui.repository.list .item .ui.header .metas {
font-size: 14px;
}
.ui.repository.list .item .time {
font-size: 12px;
}
.ui.repository.list .item .ui.tags {
margin-bottom: 0.5rem;
}
.ui.repository.branches .info {
font-size: 12px;
color: var(--color-text-light);
display: flex;
white-space: pre;
}
.ui.repository.branches .info .commit-message {
max-width: 72em;
overflow: hidden;
text-overflow: ellipsis;
}
.ui.repository.branches .overflow-visible {
overflow: visible;
}
/* fix alignment of PR popup in branches table */
.ui.repository.branches table .ui.popup {
text-align: left;
}
.ui.user.list .item {
padding-bottom: 25px;
display: flex;
}
.ui.user.list .item:not(:first-child) {
border-top: 1px solid var(--color-secondary);
padding-top: 25px;
}
.ui.user.list .item img.ui.avatar {
width: 40px;
height: 40px;
margin-right: 10px;
}
.ui.user.list .item .description {
margin-top: 5px;
}
.ui.user.list .item .description .svg:not(:first-child) {
margin-left: 5px;
}

View file

@ -0,0 +1,33 @@
.monaco-editor-container,
.editor-loading.is-loading {
width: 100%;
min-height: 200px;
height: 90vh;
}
.edit.githook .monaco-editor-container {
border: 1px solid var(--color-secondary);
height: 70vh;
}
/* overwrite conflicting styles from fomantic */
.monaco-editor-container .inputarea {
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
resize: none !important;
border: none !important;
color: transparent !important;
background-color: transparent !important;
}
/* these seem unthemeable */
.monaco-scrollable-element > .scrollbar > .slider {
background: var(--color-primary) !important;
}
.monaco-scrollable-element > .scrollbar > .slider:hover {
background: var(--color-primary-dark-1) !important;
}
.monaco-scrollable-element > .scrollbar > .slider:active {
background: var(--color-primary-dark-2) !important;
}

View file

@ -0,0 +1,53 @@
.ui .field .dropzone {
border: 2px dashed var(--color-secondary);
background: none;
box-shadow: none;
padding: 0;
border-radius: 4px;
min-height: 0;
}
.ui .field .dropzone .dz-message {
margin: 10px 0;
}
.dropzone .dz-button {
color: var(--color-text-light) !important;
}
.dropzone:hover .dz-button {
color: var(--color-text) !important;
}
.dropzone .dz-error-message {
top: 145px !important;
}
.dropzone .dz-image {
display: flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 0 !important;
}
.dropzone .dz-image img {
max-width: 100% !important;
max-height: 100% !important;
object-fit: contain !important;
}
.dropzone .dz-preview.dz-image-preview,
.dropzone-attachments .thumbnails img {
background: transparent !important;
}
.dropzone-attachments .thumbnails img {
height: 120px !important;
width: 120px !important;
object-fit: contain !important;
margin-bottom: 0 !important;
}
.dropzone .dz-preview:hover .dz-image img {
filter: opacity(0.5) !important;
}

View file

@ -0,0 +1,317 @@
#git-graph-container {
overflow-x: auto;
width: 100%;
min-height: 350px;
}
#git-graph-container > .ui.segment.loading {
border: 0;
z-index: 1;
min-height: 246px;
}
#git-graph-container h2 {
display: flex;
justify-content: space-between;
align-items: center;
}
#git-graph-container .color-buttons {
margin-right: 0;
}
#git-graph-container .ui.header.dividing {
padding-bottom: 10px;
}
#git-graph-container #flow-select-refs-dropdown {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
min-width: 250px;
border-right: none;
}
#git-graph-container #flow-select-refs-dropdown .ui.label {
max-width: 180px;
display: inline-flex !important;
align-items: center;
}
#git-graph-container #flow-select-refs-dropdown .ui.label .truncate {
display: inline-block;
max-width: 140px;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: top;
white-space: nowrap;
}
#git-graph-container #flow-select-refs-dropdown .dropdown.icon {
display: none;
}
#git-graph-container #flow-select-refs-dropdown .default.text {
padding-top: 4px;
padding-bottom: 4px;
}
#git-graph-container #flow-select-refs-dropdown input.search {
position: relative;
top: 1px;
}
#git-graph-container li {
list-style-type: none;
height: 24px;
line-height: 24px;
white-space: nowrap;
display: flex;
align-items: center;
}
#git-graph-container li .node-relation {
font-family: var(--fonts-monospace);
}
#git-graph-container li .author {
color: var(--color-text-light);
}
#git-graph-container li .time {
color: var(--color-text-light-3);
font-size: 80%;
}
#git-graph-container li a:not(.ui):hover {
text-decoration: underline;
}
#git-graph-container li a em {
color: var(--color-red);
border-bottom: 1px dotted var(--color-secondary);
text-decoration: none;
font-style: normal;
}
#git-graph-container #rel-container {
max-width: 30%;
overflow-x: auto;
float: left;
}
#git-graph-container #rev-container {
width: 100%;
}
#git-graph-container #rev-list {
margin: 0;
padding: 0;
width: 100%;
}
#git-graph-container #rev-list li.highlight.hover {
background-color: var(--color-secondary-alpha-30);
}
#git-graph-container #rev-list .tags a.button {
padding: 2px 4px;
}
#git-graph-container #rev-list .sha.label {
padding-top: 5px;
padding-bottom: 3px;
}
#git-graph-container #rev-list .sha.label .shortsha {
padding-top: 0;
}
#git-graph-container #rev-list .sha.label .shortsha-pad {
padding-right: 10px;
}
#git-graph-container #rev-list .sha.label .ui.detail.icon.button {
padding-top: 3px;
margin-top: -5px;
padding-bottom: 1px;
}
#git-graph-container #rev-list .author img.ui.avatar {
width: auto;
height: 18px;
max-width: none;
}
#git-graph-container #graph-raw-list {
margin: 0;
}
#git-graph-container.monochrome #rel-container .flow-group {
stroke: var(--color-secondary-dark-5);
fill: var(--color-secondary-dark-5);
}
#git-graph-container.monochrome #rel-container .flow-group.highlight {
stroke: var(--color-secondary-dark-12);
fill: var(--color-secondary-dark-12);
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-1 {
stroke: #499a37;
fill: #499a37;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-2 {
stroke: #ce4751;
fill: #ce4751;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-3 {
stroke: #8f9121;
fill: #8f9121;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-4 {
stroke: #ac32a6;
fill: #ac32a6;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-5 {
stroke: #7445e9;
fill: #7445e9;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-6 {
stroke: #c67d28;
fill: #c67d28;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-7 {
stroke: #4db392;
fill: #4db392;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-8 {
stroke: #aa4d30;
fill: #aa4d30;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-9 {
stroke: #2a6f84;
fill: #2a6f84;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-10 {
stroke: #c45327;
fill: #c45327;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-11 {
stroke: #3d965c;
fill: #3d965c;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-12 {
stroke: #792a93;
fill: #792a93;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-13 {
stroke: #439d73;
fill: #439d73;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-14 {
stroke: #103aad;
fill: #103aad;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-15 {
stroke: #982e85;
fill: #982e85;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.flow-color-16-0 {
stroke: #7db233;
fill: #7db233;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-1 {
stroke: #5ac144;
fill: #5ac144;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-2 {
stroke: #ed5a8b;
fill: #ed5a8b;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-3 {
stroke: #ced049;
fill: #ced048;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-4 {
stroke: #db61d7;
fill: #db62d6;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-5 {
stroke: #8455f9;
fill: #8455f9;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-6 {
stroke: #e6a151;
fill: #e6a151;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-7 {
stroke: #44daaa;
fill: #44daaa;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-8 {
stroke: #dd7a5c;
fill: #dd7a5c;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-9 {
stroke: #38859c;
fill: #38859c;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-10 {
stroke: #d95520;
fill: #d95520;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-11 {
stroke: #42ae68;
fill: #42ae68;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-12 {
stroke: #9126b5;
fill: #9126b5;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-13 {
stroke: #4ab080;
fill: #4ab080;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-14 {
stroke: #284fb8;
fill: #284fb8;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-15 {
stroke: #971c80;
fill: #971c80;
}
#git-graph-container:not(.monochrome) #rel-container .flow-group.highlight.flow-color-16-0 {
stroke: #87ca28;
fill: #87ca28;
}

View file

@ -0,0 +1,68 @@
#user-heatmap {
width: 100%;
font-size: 9px;
position: relative;
min-height: 125px;
}
#user-heatmap text {
fill: currentcolor !important;
}
/* for the "Less" and "More" legend */
#user-heatmap .vch__legend .vch__legend {
display: flex;
font-size: 11px;
align-items: center;
justify-content: right;
}
#user-heatmap .vch__legend .vch__legend div:first-child,
#user-heatmap .vch__legend .vch__legend div:last-child {
display: inline-block;
padding: 0 5px;
}
/* move the "? contributions in the last ? months" text from top to bottom */
#user-heatmap .total-contributions {
font-size: 11px;
position: absolute;
bottom: 0;
left: 25px;
}
@media (max-width: 1200px) {
#user-heatmap {
min-height: 105px;
}
#user-heatmap .total-contributions {
left: 21px;
}
}
@media (max-width: 1000px) {
#user-heatmap {
min-height: 80px;
}
#user-heatmap .total-contributions {
font-size: 10px;
left: 17px;
bottom: -4px;
}
}
.user.profile #user-heatmap {
min-height: 135px;
}
@media (max-width: 1200px) {
.user.profile #user-heatmap {
min-height: 115px;
}
}
@media (max-width: 1000px) {
.user.profile #user-heatmap {
min-height: 90px;
}
}

View file

@ -0,0 +1,107 @@
.image-diff-container {
text-align: center;
padding: 1em 0;
}
.image-diff-container img {
border: 1px solid var(--color-primary-light-7);
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAG0lEQVQYlWN4+vTpf3SMDTAMBYXYBLFpHgoKAeiOf0SGE9kbAAAAAElFTkSuQmCC") right bottom var(--color-primary-light-7);
}
.image-diff-container .before-container {
border: 1px solid var(--color-red);
display: block;
}
.image-diff-container .after-container {
border: 1px solid var(--color-green);
display: block;
}
.image-diff-container .diff-side-by-side .side {
display: inline-block;
line-height: 0;
vertical-align: top;
margin: 0 1em;
}
.image-diff-container .diff-side-by-side .side .side-header {
font-weight: bold;
}
.image-diff-container .diff-swipe {
margin: auto;
}
.image-diff-container .diff-swipe .swipe-frame {
position: absolute;
}
.image-diff-container .diff-swipe .swipe-frame .before-container {
position: absolute;
}
.image-diff-container .diff-swipe .swipe-frame .swipe-container {
position: absolute;
right: 0;
display: block;
border-left: 2px solid var(--color-secondary-dark-8);
height: 100%;
overflow: hidden;
}
.image-diff-container
.diff-swipe
.swipe-frame
.swipe-container
.after-container {
position: absolute;
right: 0;
}
.image-diff-container .diff-swipe .swipe-frame .swipe-bar {
position: absolute;
height: 100%;
top: 0;
left: 0;
}
.image-diff-container .diff-swipe .swipe-frame .swipe-bar .handle {
background: var(--color-secondary-dark-8);
left: -5px;
height: 12px;
width: 12px;
position: absolute;
transform: rotate(45deg);
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
.image-diff-container .diff-swipe .swipe-frame .swipe-bar .top-handle {
top: -12px;
}
.image-diff-container .diff-swipe .swipe-frame .swipe-bar .bottom-handle {
bottom: -14px;
}
.image-diff-container .diff-overlay {
margin: 0 auto;
}
.image-diff-container .diff-overlay .overlay-frame {
margin: 0 auto;
position: relative;
}
.image-diff-container .diff-overlay .before-container,
.image-diff-container .diff-overlay .after-container {
position: absolute;
}
.image-diff-container .diff-overlay input {
max-width: 300px;
}

View file

@ -0,0 +1,147 @@
.board {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
overflow-x: auto;
margin: 0 0.5em;
}
.board-column {
background-color: var(--color-project-board-bg) !important;
border: 1px solid var(--color-secondary) !important;
margin: 0 0.5rem !important;
padding: 0.5rem !important;
width: 320px;
height: calc(100vh - 450px);
min-height: 60vh;
overflow-y: scroll;
flex: 0 0 auto;
overflow: visible;
display: flex;
flex-direction: column;
}
.board-column-header {
display: flex;
justify-content: space-between;
}
.board-column-header.dark-label {
color: var(--color-project-board-dark-label) !important;
}
.board-column-header.dark-label .board-label {
color: var(--color-project-board-dark-label) !important;
}
.board-column-header.light-label {
color: var(--color-project-board-light-label) !important;
}
.board-column-header.light-label .board-label {
color: var(--color-project-board-light-label) !important;
}
.board-label {
background: none !important;
line-height: 1.25 !important;
}
.board-column > .cards {
flex: 1;
display: flex;
align-content: baseline;
margin: 0 !important;
padding: 0 !important;
flex-wrap: nowrap !important;
flex-direction: column;
}
.project-board-title {
word-break: break-word;
}
.board-column > .divider {
margin: 5px 0;
}
.board-column:first-child {
margin-left: auto !important;
}
.board-column:last-child {
margin-right: auto !important;
}
.board-column .ui.cards > .card > .content {
border: none;
}
.board-card {
margin: 4px 2px !important;
border-radius: 5px !important;
cursor: move;
width: calc(100% - 4px) !important;
padding: 0.5rem !important;
min-height: auto !important;
}
.board-card .meta * {
margin-right: 0 !important;
}
.board-card .header {
margin-top: 0 !important;
font-size: 16px !important;
}
.board-card .card-attachment-images {
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-align: center;
}
.board-card .card-attachment-images img {
display: inline-block;
max-height: 50px;
border-radius: var(--border-radius);
margin-right: 2px;
}
.board-card .card-attachment-images img:only-child {
max-height: 90px;
margin: auto;
}
.card-ghost {
border-style: dashed !important;
background: none !important;
}
.card-ghost * {
opacity: 0;
}
.color-field .minicolors.minicolors-theme-default {
display: block;
}
.color-field .minicolors.minicolors-theme-default .minicolors-input {
height: 38px;
padding-left: 2rem;
}
.color-field .minicolors.minicolors-theme-default .minicolors-swatch {
top: 10px;
}
.edit-project-board .color.picker.column,
.new-board-modal .color.picker.column {
display: flex;
}
.edit-project-board .color.picker.column .minicolors,
.new-board-modal .color.picker.column .minicolors {
flex: 1;
}

393
web_src/css/font_i18n.css Normal file
View file

@ -0,0 +1,393 @@
:root :lang(ja) {
--fonts-override: var(--fonts-default-override-ja);
}
:root :lang(zh-CN) {
--fonts-override: var(--fonts-default-override-zh-cn);
}
:root :lang(zh-TW) {
--fonts-override: var(--fonts-default-override-zh-tw);
}
:root :lang(zh-HK) {
--fonts-override: var(--fonts-default-override-zh-hk);
}
:root :lang(ko) {
--fonts-override: var(--fonts-default-override-ko);
}
[lang] {
font-family: var(--fonts-regular);
}
:root {
--fonts-default-override-ja: system-ui-ja, var(--fonts-proportional);
--fonts-default-override-zh-cn: system-ui-zh-cn, var(--fonts-proportional);
--fonts-default-override-zh-tw: system-ui-zh-tw, var(--fonts-proportional);
--fonts-default-override-zh-hk: system-ui-zh-hk, var(--fonts-proportional);
--fonts-default-override-ko: system-ui-ko, var(--fonts-proportional);
}
/* Special handling for Firefox on Windows/Linux */
@supports (-moz-appearance: none) {
:root {
--fonts-default-override-ja: var(--fonts-proportional), system-ui-ja;
--fonts-default-override-zh-cn: var(--fonts-proportional), system-ui-zh-cn;
--fonts-default-override-zh-tw: var(--fonts-proportional), system-ui-zh-tw;
--fonts-default-override-zh-hk: var(--fonts-proportional), system-ui-zh-hk;
--fonts-default-override-ko: var(--fonts-proportional), system-ui-ko;
}
}
@font-face {
font-family: system-ui-ja;
src: local("HiraKakuProN-W3"), local("Hiragino Kaku Gothic ProN W3"),
local("HiraginoSans-W2"), local("Source Han Sans JP Light"),
local("SourceHanSansJP-Light"), local("Source Han Sans J Light"),
local("SourceHanSansJ-Light"), local("Noto Sans CJK JP Light"),
local("NotoSansCJKJP-Light"), local("Source Han Sans Light"),
local("SourceHanSans-Light"), local("Yu Gothic Regular"),
local("YuGothic Regular"), local("Droid Sans Japanese"), local("Meiryo"),
local("MS PGothic");
font-weight: 300;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-ja;
src: local("HiraKakuProN-W3"), local("Hiragino Kaku Gothic ProN W3"),
local("HiraginoSans-W4"), local("Source Han Sans JP Regular"),
local("SourceHanSansJP-Regular"), local("Source Han Sans J Regular"),
local("SourceHanSansJ-Regular"), local("Noto Sans CJK JP Regular"),
local("NotoSansCJKJP-Regular"), local("Source Han Sans Regular"),
local("SourceHanSans-Regular"), local("Yu Gothic Medium"),
local("YuGothic Medium"), local("Droid Sans Japanese"), local("Meiryo"),
local("MS PGothic");
font-weight: 400;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-ja;
src: local("HiraKakuProN-W3"), local("Hiragino Kaku Gothic ProN W3"),
local("HiraginoSans-W5"), local("Source Han Sans JP Medium"),
local("SourceHanSansJP-Medium"), local("Source Han Sans J Medium"),
local("SourceHanSansJ-Medium"), local("Noto Sans CJK JP Medium"),
local("NotoSansCJKJP-Medium"), local("Source Han Sans Medium"),
local("SourceHanSans-Medium"), local("Yu Gothic Medium"),
local("YuGothic Medium"), local("Droid Sans Japanese"), local("Meiryo"),
local("MS PGothic");
font-weight: 500;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-ja;
src: local("HiraKakuProN-W6"), local("Hiragino Kaku Gothic ProN W6"),
local("HiraginoSans-W6"), local("Source Han Sans JP Bold"),
local("SourceHanSansJP-Bold"), local("Source Han Sans J Bold"),
local("SourceHanSansJ-Bold"), local("Noto Sans CJK JP Bold"),
local("NotoSansCJKJP-Bold"), local("Source Han Sans Bold"),
local("SourceHanSans-Bold"), local("Yu Gothic Bold"), local("YuGothic Bold"),
local("Droid Sans Japanese"), local("Meiryo Bold"), local("MS PGothic");
font-weight: 700;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
/* Safari on macOS/iOS */
@font-face {
font-family: system-ui-ja;
src: local("HelveticaNeue");
unicode-range: U+A0;
}
/* Other browsers on macOS/iOS */
@supports not (-webkit-hyphens: none) {
@font-face {
font-family: system-ui-ja;
src: local("HelveticaNeue");
unicode-range: U+20;
}
}
@font-face {
font-family: system-ui-zh-cn;
src: local("PingFangSC-Light"), local("Source Han Sans CN Light"),
local("SourceHanSansCN-Light"), local("Source Han Sans SC Light"),
local("SourceHanSansSC-Light"), local("Noto Sans CJK SC Light"),
local("NotoSansCJKSC-Light"), local("HiraginoSansGB-W3"),
local("Hiragino Sans GB W3"), local("Microsoft YaHei Light"),
local("Heiti SC Light"), local("SimHei");
font-weight: 300;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-cn;
src: local("PingFangSC-Regular"), local("Source Han Sans CN Regular"),
local("SourceHanSansCN-Regular"), local("Source Han Sans SC Regular"),
local("SourceHanSansSC-Regular"), local("Noto Sans CJK SC Regular"),
local("NotoSansCJKSC-Regular"), local("HiraginoSansGB-W3"),
local("Hiragino Sans GB W3"), local("Microsoft YaHei"),
local("Heiti SC Light"), local("SimHei");
font-weight: 400;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-cn;
src: local("PingFangSC-Medium"), local("Source Han Sans CN Medium"),
local("SourceHanSansCN-Medium"), local("Source Han Sans SC Medium"),
local("SourceHanSansSC-Medium"), local("Noto Sans CJK SC Medium"),
local("NotoSansCJKSC-Medium"), local("HiraginoSansGB-W3"),
local("Hiragino Sans GB W3"), local("Microsoft YaHei"),
local("Heiti SC Light"), local("SimHei");
font-weight: 500;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-cn;
src: local("PingFangSC-Semibold"), local("Source Han Sans CN Bold"),
local("SourceHanSansCN-Bold"), local("Source Han Sans SC Bold"),
local("SourceHanSansSC-Bold"), local("Noto Sans CJK SC Bold"),
local("NotoSansCJKSC-Bold"), local("HiraginoSansGB-W6"),
local("Hiragino Sans GB W6"), local("Microsoft YaHei Bold"),
local("Heiti SC Medium"), local("SimHei");
font-weight: 700;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
/* Safari on macOS/iOS */
@font-face {
font-family: system-ui-zh-cn;
src: local("HelveticaNeue");
unicode-range: U+A0;
}
/* Other browsers on macOS/iOS */
@supports not (-webkit-hyphens: none) {
@font-face {
font-family: system-ui-zh-cn;
src: local("HelveticaNeue");
unicode-range: U+20;
}
}
@font-face {
font-family: system-ui-zh-tw;
src: local("PingFangTC-Light"), local("Source Han Sans TW Light"),
local("SourceHanSansTW-Light"), local("Source Han Sans TC Light"),
local("SourceHanSansTC-Light"), local("Noto Sans CJK TC Light"),
local("NotoSansCJKTC-Light"), local("HiraginoSansTC-W3"),
local("Hiragino Sans TC W3"), local("Microsoft JhengHei Light"),
local("Heiti TC Light"), local("PMingLiU");
font-weight: 300;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-tw;
src: local("PingFangTC-Regular"), local("Source Han Sans TW Regular"),
local("SourceHanSansTW-Regular"), local("Source Han Sans TC Regular"),
local("SourceHanSansTC-Regular"), local("Noto Sans CJK TC Regular"),
local("NotoSansCJKTC-Regular"), local("HiraginoSansTC-W3"),
local("Hiragino Sans TC W3"), local("Microsoft JhengHei"),
local("Heiti TC Light"), local("PMingLiU");
font-weight: 400;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-tw;
src: local("PingFangTC-Medium"), local("Source Han Sans TW Medium"),
local("SourceHanSansTW-Medium"), local("Source Han Sans TC Medium"),
local("SourceHanSansTC-Medium"), local("Noto Sans CJK TC Medium"),
local("NotoSansCJKTC-Medium"), local("HiraginoSansTC-W3"),
local("Hiragino Sans TC W3"), local("Microsoft JhengHei"),
local("Heiti TC Light"), local("PMingLiU");
font-weight: 500;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-tw;
src: local("PingFangTC-Semibold"), local("Source Han Sans TW Bold"),
local("SourceHanSansTW-Bold"), local("Source Han Sans TC Bold"),
local("SourceHanSansTC-Bold"), local("Noto Sans CJK TC Bold"),
local("NotoSansCJKTC-Bold"), local("HiraginoSansTC-W6"),
local("Hiragino Sans TC W6"), local("Microsoft JhengHei Bold"),
local("Heiti TC Medium"), local("PMingLiU");
font-weight: 700;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
/* Safari on macOS/iOS */
@font-face {
font-family: system-ui-zh-tw;
src: local("HelveticaNeue");
unicode-range: U+A0;
}
/* Other browsers on macOS/iOS */
@supports not (-webkit-hyphens: none) {
@font-face {
font-family: system-ui-zh-tw;
src: local("HelveticaNeue");
unicode-range: U+20;
}
}
@font-face {
font-family: system-ui-zh-hk;
src: local("PingFangHK-Light"), local("Source Han Sans HK Light"),
local("SourceHanSansHK-Light"), local("Source Han Sans HC Light"),
local("SourceHanSansHC-Light"), local("Noto Sans CJK HK Light"),
local("NotoSansCJKHK-Light"), local("Source Han Sans TC Light"),
local("SourceHanSansTC-Light"), local("Noto Sans CJK TC Light"),
local("NotoSansCJKTC-Light"), local("HiraginoSansTC-W3"),
local("Hiragino Sans TC W3"), local("Microsoft JhengHei Light"),
local("Heiti TC Light"), local("PMingLiU_HKSCS"), local("PMingLiU");
font-weight: 300;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-hk;
src: local("PingFangHK-Regular"), local("Source Han Sans HK Regular"),
local("SourceHanSansHK-Regular"), local("Source Han Sans HC Regular"),
local("SourceHanSansHC-Regular"), local("Noto Sans CJK HK Regular"),
local("NotoSansCJKHK-Regular"), local("Source Han Sans TC Regular"),
local("SourceHanSansTC-Regular"), local("Noto Sans CJK TC Regular"),
local("NotoSansCJKTC-Regular"), local("HiraginoSansTC-W3"),
local("Hiragino Sans TC W3"), local("Microsoft JhengHei"),
local("Heiti TC Light"), local("PMingLiU_HKSCS"), local("PMingLiU");
font-weight: 400;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-hk;
src: local("PingFangHK-Medium"), local("Source Han Sans HK Medium"),
local("SourceHanSansHK-Medium"), local("Source Han Sans HC Medium"),
local("SourceHanSansHC-Medium"), local("Noto Sans CJK HK Medium"),
local("NotoSansCJKHK-Medium"), local("Source Han Sans TC Medium"),
local("SourceHanSansTC-Medium"), local("Noto Sans CJK TC Medium"),
local("NotoSansCJKTC-Medium"), local("HiraginoSansTC-W3"),
local("Hiragino Sans TC W3"), local("Microsoft JhengHei"),
local("Heiti TC Light"), local("PMingLiU_HKSCS"), local("PMingLiU");
font-weight: 500;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-zh-hk;
src: local("PingFangHK-Semibold"), local("Source Han Sans HK Bold"),
local("SourceHanSansHK-Bold"), local("Source Han Sans HC Bold"),
local("SourceHanSansHC-Bold"), local("Noto Sans CJK HK Bold"),
local("NotoSansCJKHK-Bold"), local("Source Han Sans TC Bold"),
local("SourceHanSansTC-Bold"), local("Noto Sans CJK TC Bold"),
local("NotoSansCJKTC-Bold"), local("HiraginoSansTC-W6"),
local("Hiragino Sans TC W6"), local("Microsoft JhengHei Bold"),
local("Heiti TC Medium"), local("PMingLiU_HKSCS"), local("PMingLiU");
font-weight: 700;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
/* Safari on macOS/iOS */
@font-face {
font-family: system-ui-zh-hk;
src: local("HelveticaNeue");
unicode-range: U+A0;
}
/* Other browsers on macOS/iOS */
@supports not (-webkit-hyphens: none) {
@font-face {
font-family: system-ui-zh-hk;
src: local("HelveticaNeue");
unicode-range: U+20;
}
}
@font-face {
font-family: system-ui-ko;
src: local("AppleSDGothicNeo-Light"), local("Source Han Sans KR Light"),
local("SourceHanSansKR-Light"), local("Source Han Sans K Light"),
local("SourceHanSansK-Light"), local("Noto Sans CJK KR Light"),
local("NotoSansCJKKR-Light"), local("NanumBarunGothic Light"),
local("Malgun Gothic Semilight"), local("Nanum Gothic"), local("Dotum");
font-weight: 300;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-ko;
src: local("AppleSDGothicNeo-Regular"), local("Source Han Sans KR Regular"),
local("SourceHanSansKR-Regular"), local("Source Han Sans K Regular"),
local("SourceHanSansK-Regular"), local("Noto Sans CJK KR Regular"),
local("NotoSansCJKKR-Regular"), local("NanumBarunGothic"),
local("Malgun Gothic"), local("Nanum Gothic"), local("Dotum");
font-weight: 400;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-ko;
src: local("AppleSDGothicNeo-Medium"), local("Source Han Sans KR Medium"),
local("SourceHanSansKR-Medium"), local("Source Han Sans K Medium"),
local("SourceHanSansK-Medium"), local("Noto Sans CJK KR Medium"),
local("NotoSansCJKKR-Medium"), local("NanumBarunGothic"),
local("Malgun Gothic"), local("Nanum Gothic"), local("Dotum");
font-weight: 500;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
@font-face {
font-family: system-ui-ko;
src: local("AppleSDGothicNeo-SemiBold"), local("Source Han Sans KR Bold"),
local("SourceHanSansKR-Bold"), local("Source Han Sans K Bold"),
local("SourceHanSansK-Bold"), local("Noto Sans CJK KR Bold"),
local("NotoSansCJKKR-Bold"), local("NanumBarunGothic Bold"),
local("Malgun Gothic Bold"), local("Nanum Gothic Bold"), local("Dotum");
font-weight: 700;
unicode-range: U+11??, U+2E80-4DBF, U+4E00-9FFF, U+A960-A97F, U+AC00-D7FF,
U+F900-FAFF, U+FE00-FE6F, U+FF00-FFEF, U+1F2??, U+2????;
}
/* Safari on macOS/iOS */
@font-face {
font-family: system-ui-ko;
src: local("HelveticaNeue");
unicode-range: U+A0;
}
/* Other browsers on macOS/iOS */
@supports not (-webkit-hyphens: none) {
@font-face {
font-family: system-ui-ko;
src: local("HelveticaNeue");
unicode-range: U+20;
}
}

547
web_src/css/form.css Normal file
View file

@ -0,0 +1,547 @@
input,
textarea,
.ui.input > input,
.ui.form input:not([type]),
.ui.form select,
.ui.form textarea,
.ui.form input[type="date"],
.ui.form input[type="datetime-local"],
.ui.form input[type="email"],
.ui.form input[type="file"],
.ui.form input[type="number"],
.ui.form input[type="password"],
.ui.form input[type="search"],
.ui.form input[type="tel"],
.ui.form input[type="text"],
.ui.form input[type="time"],
.ui.form input[type="url"],
.ui.selection.dropdown,
.ui.checkbox label::before,
.ui.checkbox input:checked ~ label::before,
.ui.checkbox input:not([type="radio"]):indeterminate ~ label::before {
background: var(--color-input-background);
border-color: var(--color-input-border);
color: var(--color-input-text);
}
input:hover,
textarea:hover,
.ui.input input:hover,
.ui.form input:not([type]):hover,
.ui.form select:hover,
.ui.form textarea:hover,
.ui.form input[type="date"]:hover,
.ui.form input[type="datetime-local"]:hover,
.ui.form input[type="email"]:hover,
.ui.form input[type="file"]:hover,
.ui.form input[type="number"]:hover,
.ui.form input[type="password"]:hover,
.ui.form input[type="search"]:hover,
.ui.form input[type="tel"]:hover,
.ui.form input[type="text"]:hover,
.ui.form input[type="time"]:hover,
.ui.form input[type="url"]:hover,
.ui.selection.dropdown:hover,
.ui.checkbox label:hover::before,
.ui.checkbox label:active::before,
.ui.radio.checkbox label::after,
.ui.radio.checkbox input:focus ~ label::before,
.ui.radio.checkbox input:checked ~ label::before {
background: var(--color-input-background);
border-color: var(--color-input-border-hover);
color: var(--color-input-text);
}
input:focus,
textarea:focus,
.ui.input input:focus,
.ui.form input:not([type]):focus,
.ui.form select:focus,
.ui.form textarea:focus,
.ui.form input[type="date"]:focus,
.ui.form input[type="datetime-local"]:focus,
.ui.form input[type="email"]:focus,
.ui.form input[type="file"]:focus,
.ui.form input[type="number"]:focus,
.ui.form input[type="password"]:focus,
.ui.form input[type="search"]:focus,
.ui.form input[type="tel"]:focus,
.ui.form input[type="text"]:focus,
.ui.form input[type="time"]:focus,
.ui.form input[type="url"]:focus,
.ui.selection.dropdown:focus,
.ui.checkbox input:focus ~ label::before,
.ui.checkbox input:not([type="radio"]):indeterminate:focus ~ label::before,
.ui.checkbox input:checked:focus ~ label::before,
.ui.radio.checkbox input:focus:checked ~ label::before {
background: var(--color-input-background);
border-color: var(--color-primary);
color: var(--color-input-text);
}
.ui.form .field > label,
.ui.form .inline.fields > label,
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.field > label,
.ui.form .inline.field > p,
.ui.checkbox label,
.ui.checkbox + label,
.ui.checkbox label:hover,
.ui.checkbox + label:hover,
.ui.checkbox input:focus ~ label,
.ui.checkbox input:active ~ label {
color: var(--color-text);
}
.ui.input,
.ui.checkbox input:focus ~ label::after,
.ui.checkbox input:checked ~ label::after,
.ui.checkbox label:active::after,
.ui.checkbox input:not([type="radio"]):indeterminate ~ label::after,
.ui.checkbox input:not([type="radio"]):indeterminate:focus ~ label::after,
.ui.checkbox input:checked:focus ~ label::after,
.ui.disabled.checkbox label,
.ui.checkbox input[disabled] ~ label {
color: var(--color-input-text);
}
.ui.radio.checkbox input:focus ~ label::after,
.ui.radio.checkbox input:checked ~ label::after,
.ui.radio.checkbox input:focus:checked ~ label::after {
background: var(--color-input-text);
}
.ui.toggle.checkbox label::before {
background: var(--color-input-toggle-background);
}
.ui.toggle.checkbox label,
.ui.toggle.checkbox input:checked ~ label,
.ui.toggle.checkbox input:focus:checked ~ label {
color: var(--color-text) !important;
}
.ui.toggle.checkbox input:checked ~ label::before,
.ui.toggle.checkbox input:focus:checked ~ label::before {
background: var(--color-primary) !important;
}
/* match <select> padding to <input> */
.ui.form select {
padding: 0.67857143em 1em;
}
.form .help {
color: var(--color-secondary-dark-5);
padding-bottom: 0.6em;
display: inline-block;
}
#create-page-form form {
margin: auto;
}
#create-page-form form .ui.message {
text-align: center;
}
@media (min-width: 768px) {
#create-page-form form {
width: 800px !important;
}
#create-page-form form .header {
padding-left: 280px !important;
}
#create-page-form form .inline.field > label,
#create-page-form form .inline.field.captcha-field > span {
text-align: right;
width: 250px !important;
word-wrap: break-word;
}
#create-page-form form .help {
margin-left: 265px !important;
}
#create-page-form form .optional .title {
margin-left: 250px !important;
}
#create-page-form form .inline.field > input,
#create-page-form form .inline.field > textarea {
width: 50%;
}
}
@media (max-width: 767px) {
#create-page-form form .optional .title {
margin-left: 15px;
}
#create-page-form form .inline.field > label {
display: block;
}
}
.signin .oauth2 div {
display: inline-block;
}
.signin .oauth2 div p {
margin: 10px 5px 0 0;
float: left;
}
.signin .oauth2 a {
margin-right: 3px;
}
.signin .oauth2 a:last-child {
margin-right: 0;
}
.signin .oauth2 img {
width: 32px;
height: 32px;
}
.signin .oauth2 img.openidConnect {
width: auto;
}
@media (min-width: 768px) {
.g-recaptcha-style,
.h-captcha-style {
margin: 0 auto !important;
width: 304px;
padding-left: 30px;
}
.g-recaptcha-style iframe,
.h-captcha-style iframe {
border-radius: 5px !important;
width: 302px !important;
height: 76px !important;
}
}
@media (max-height: 575px) {
#rc-imageselect,
.g-recaptcha-style,
.h-captcha-style {
transform: scale(0.77);
transform-origin: 0 0;
}
}
.user.activate form,
.user.forgot.password form,
.user.reset.password form,
.user.link-account form,
.user.signin form,
.user.signup form {
margin: auto;
width: 700px !important;
}
.user.activate form .ui.message,
.user.forgot.password form .ui.message,
.user.reset.password form .ui.message,
.user.link-account form .ui.message,
.user.signin form .ui.message,
.user.signup form .ui.message {
text-align: center;
}
@media (min-width: 768px) {
.user.activate form,
.user.forgot.password form,
.user.reset.password form,
.user.link-account form,
.user.signin form,
.user.signup form {
width: 800px !important;
}
.user.activate form .header,
.user.forgot.password form .header,
.user.reset.password form .header,
.user.link-account form .header,
.user.signin form .header,
.user.signup form .header {
padding-left: 280px !important;
}
.user.activate form .inline.field > label,
.user.forgot.password form .inline.field > label,
.user.reset.password form .inline.field > label,
.user.link-account form .inline.field > label,
.user.signin form .inline.field > label,
.user.signup form .inline.field > label,
.user.activate form .inline.field.captcha-field > span,
.user.forgot.password form .inline.field.captcha-field > span,
.user.reset.password form .inline.field.captcha-field > span,
.user.link-account form .inline.field.captcha-field > span,
.user.signin form .inline.field.captcha-field > span,
.user.signup form .inline.field.captcha-field > span {
text-align: right;
width: 250px !important;
word-wrap: break-word;
}
.user.activate form .help,
.user.forgot.password form .help,
.user.reset.password form .help,
.user.link-account form .help,
.user.signin form .help,
.user.signup form .help {
margin-left: 265px !important;
}
.user.activate form .optional .title,
.user.forgot.password form .optional .title,
.user.reset.password form .optional .title,
.user.link-account form .optional .title,
.user.signin form .optional .title,
.user.signup form .optional .title {
margin-left: 250px !important;
}
.user.activate form .inline.field > input,
.user.forgot.password form .inline.field > input,
.user.reset.password form .inline.field > input,
.user.link-account form .inline.field > input,
.user.signin form .inline.field > input,
.user.signup form .inline.field > input,
.user.activate form .inline.field > textarea,
.user.forgot.password form .inline.field > textarea,
.user.reset.password form .inline.field > textarea,
.user.link-account form .inline.field > textarea,
.user.signin form .inline.field > textarea,
.user.signup form .inline.field > textarea {
width: 50%;
}
}
@media (max-width: 767px) {
.user.activate form .optional .title,
.user.forgot.password form .optional .title,
.user.reset.password form .optional .title,
.user.link-account form .optional .title,
.user.signin form .optional .title,
.user.signup form .optional .title {
margin-left: 15px;
}
.user.activate form .inline.field > label,
.user.forgot.password form .inline.field > label,
.user.reset.password form .inline.field > label,
.user.link-account form .inline.field > label,
.user.signin form .inline.field > label,
.user.signup form .inline.field > label {
display: block;
}
}
.user.activate form .header,
.user.forgot.password form .header,
.user.reset.password form .header,
.user.link-account form .header,
.user.signin form .header,
.user.signup form .header {
padding-left: 0 !important;
text-align: center;
}
.user.activate form .inline.field > label,
.user.forgot.password form .inline.field > label,
.user.reset.password form .inline.field > label,
.user.link-account form .inline.field > label,
.user.signin form .inline.field > label,
.user.signup form .inline.field > label {
width: 200px;
}
@media (max-width: 767px) {
.user.activate form .inline.field > label,
.user.forgot.password form .inline.field > label,
.user.reset.password form .inline.field > label,
.user.link-account form .inline.field > label,
.user.signin form .inline.field > label,
.user.signup form .inline.field > label,
.user.activate form input,
.user.forgot.password form input,
.user.reset.password form input,
.user.link-account form input,
.user.signin form input,
.user.signup form input {
width: 100% !important;
}
}
.user.activate form input[type="number"],
.user.forgot.password form input[type="number"],
.user.reset.password form input[type="number"],
.user.link-account form input[type="number"],
.user.signin form input[type="number"],
.user.signup form input[type="number"] {
-moz-appearance: textfield;
}
.user.activate form input::-webkit-outer-spin-button,
.user.forgot.password form input::-webkit-outer-spin-button,
.user.reset.password form input::-webkit-outer-spin-button,
.user.link-account form input::-webkit-outer-spin-button,
.user.signin form input::-webkit-outer-spin-button,
.user.signup form input::-webkit-outer-spin-button,
.user.activate form input::-webkit-inner-spin-button,
.user.forgot.password form input::-webkit-inner-spin-button,
.user.reset.password form input::-webkit-inner-spin-button,
.user.link-account form input::-webkit-inner-spin-button,
.user.signin form input::-webkit-inner-spin-button,
.user.signup form input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.user.signin.webauthn-prompt {
margin-top: 15px;
}
.repository.new.repo form,
.repository.new.migrate form,
.repository.new.fork form {
margin: auto;
}
.repository.new.repo form .ui.message,
.repository.new.migrate form .ui.message,
.repository.new.fork form .ui.message {
text-align: center;
}
@media (min-width: 768px) {
.repository.new.repo form,
.repository.new.migrate form,
.repository.new.fork form {
width: 800px !important;
}
.repository.new.repo form .header,
.repository.new.migrate form .header,
.repository.new.fork form .header {
padding-left: 280px !important;
}
.repository.new.repo form .inline.field > label,
.repository.new.migrate form .inline.field > label,
.repository.new.fork form .inline.field > label,
.repository.new.repo form .inline.field.captcha-field > span,
.repository.new.migrate form .inline.field.captcha-field > span,
.repository.new.fork form .inline.field.captcha-field > span {
text-align: right;
width: 250px !important;
word-wrap: break-word;
}
.repository.new.repo form .help,
.repository.new.migrate form .help,
.repository.new.fork form .help {
margin-left: 265px !important;
}
.repository.new.repo form .optional .title,
.repository.new.migrate form .optional .title,
.repository.new.fork form .optional .title {
margin-left: 250px !important;
}
.repository.new.repo form .inline.field > input,
.repository.new.migrate form .inline.field > input,
.repository.new.fork form .inline.field > input,
.repository.new.repo form .inline.field > textarea,
.repository.new.migrate form .inline.field > textarea,
.repository.new.fork form .inline.field > textarea {
width: 50%;
}
}
@media (max-width: 767px) {
.repository.new.repo form .optional .title,
.repository.new.migrate form .optional .title,
.repository.new.fork form .optional .title {
margin-left: 15px;
}
.repository.new.repo form .inline.field > label,
.repository.new.migrate form .inline.field > label,
.repository.new.fork form .inline.field > label {
display: block;
}
}
.repository.new.repo form .dropdown .text,
.repository.new.migrate form .dropdown .text,
.repository.new.fork form .dropdown .text {
margin-right: 0 !important;
}
.repository.new.repo form .header,
.repository.new.migrate form .header,
.repository.new.fork form .header {
padding-left: 0 !important;
text-align: center;
}
.repository.new.repo form .selection.dropdown,
.repository.new.migrate form .selection.dropdown,
.repository.new.fork form .selection.dropdown {
vertical-align: middle;
width: 50% !important;
}
@media (max-width: 767px) {
.repository.new.repo form label,
.repository.new.migrate form label,
.repository.new.fork form label,
.repository.new.repo form input,
.repository.new.migrate form input,
.repository.new.fork form input,
.repository.new.repo form .selection.dropdown,
.repository.new.migrate form .selection.dropdown,
.repository.new.fork form .selection.dropdown {
width: 100% !important;
}
.repository.new.repo form .field button,
.repository.new.migrate form .field button,
.repository.new.fork form .field button,
.repository.new.repo form .field a,
.repository.new.migrate form .field a,
.repository.new.fork form .field a {
margin-bottom: 1em;
width: 100%;
}
}
@media (min-width: 768px) {
.repository.new.repo .ui.form #auto-init {
margin-left: 265px !important;
}
}
.repository.new.repo .ui.form .selection.dropdown:not(.owner) {
width: 50% !important;
}
@media (max-width: 767px) {
.repository.new.repo .ui.form .selection.dropdown:not(.owner) {
width: 100% !important;
}
}
.new.webhook form .help {
margin-left: 25px;
}
.new.webhook .events.fields .column {
padding-left: 40px;
}
.githook textarea {
font-family: var(--fonts-monospace);
}
@media (max-width: 767px) {
.new.org .ui.form .field button,
.new.org .ui.form .field a {
margin-bottom: 1em;
width: 100%;
}
.new.org .ui.form .field input {
width: 100% !important;
}
}

216
web_src/css/helpers.css Normal file
View file

@ -0,0 +1,216 @@
.gt-df { display: flex !important; }
.gt-di { display: inline !important; }
.gt-dif { display: inline-flex !important; }
.gt-dib { display: inline-block !important; }
.gt-ac { align-items: center !important; }
.gt-ab { align-items: baseline !important; }
.gt-tc { text-align: center !important; }
.gt-tl { text-align: left !important; }
.gt-tdn { text-decoration: none !important; }
.gt-jc { justify-content: center !important; }
.gt-js { justify-content: flex-start !important; }
.gt-je { justify-content: flex-end !important; }
.gt-sb { justify-content: space-between !important; }
.gt-fc { flex-direction: column !important; }
.gt-f1 { flex: 1 !important; }
.gt-fw { flex-wrap: wrap !important; }
.gt-vm { vertical-align: middle !important; }
.gt-w-100 { width: 100% !important; }
.gt-h-100 { height: 100% !important; }
.gt-br-0 { border-radius: 0 !important; }
/* below class names match Tailwind CSS */
.gt-pointer-events-none { pointer-events: none !important; }
.gt-relative { position: relative !important; }
.gt-mono {
font-family: var(--fonts-monospace) !important;
font-size: .9em !important; /* compensate for monospace fonts being usually slightly larger */
}
.gt-bold { font-weight: 600 !important; }
.gt-word-break {
word-wrap: break-word !important;
word-break: break-word; /* compat: Safari */
overflow-wrap: anywhere;
}
.gt-ellipsis {
overflow: hidden !important;
white-space: nowrap !important;
text-overflow: ellipsis !important;
}
.gt-full-screen-width { width: 100vw !important; }
.gt-full-screen-height { height: 100vh !important; }
.gt-rounded { border-radius: var(--border-radius) !important; }
.gt-rounded-top { border-radius: var(--border-radius) var(--border-radius) 0 0 !important; }
.gt-rounded-bottom { border-radius: 0 0 var(--border-radius) var(--border-radius) !important; }
.gt-rounded-left { border-radius: var(--border-radius) 0 0 var(--border-radius) !important; }
.gt-rounded-right { border-radius: 0 var(--border-radius) var(--border-radius) 0 !important; }
.gt-border-secondary { border: 1px solid var(--color-secondary) !important; }
.gt-border-secondary-top { border-top: 1px solid var(--color-secondary) !important; }
.gt-border-secondary-bottom { border-bottom: 1px solid var(--color-secondary) !important; }
.gt-border-secondary-left { border-left: 1px solid var(--color-secondary) !important; }
.gt-border-secondary-right { border-right: 1px solid var(--color-secondary) !important; }
.gt-no-transition { transition: none !important; }
.gt-bg-red { background: var(--color-red) !important; }
.gt-bg-orange { background: var(--color-orange) !important; }
.gt-bg-yellow { background: var(--color-yellow) !important; }
.gt-bg-olive { background: var(--color-olive) !important; }
.gt-bg-green { background: var(--color-green) !important; }
.gt-bg-teal { background: var(--color-teal) !important; }
.gt-bg-blue { background: var(--color-blue) !important; }
.gt-bg-violet { background: var(--color-violet) !important; }
.gt-bg-purple { background: var(--color-purple) !important; }
.gt-bg-pink { background: var(--color-pink) !important; }
.gt-bg-brown { background: var(--color-brown) !important; }
.gt-bg-grey { background: var(--color-grey) !important; }
.gt-bg-gold { background: var(--color-gold) !important; }
.gt-text-white { color: var(--color-white) !important; }
.gt-m-0 { margin: 0 !important; }
.gt-m-1 { margin: .125rem !important; }
.gt-m-2 { margin: .25rem !important; }
.gt-m-3 { margin: .5rem !important; }
.gt-m-4 { margin: 1rem !important; }
.gt-m-5 { margin: 2rem !important; }
.gt-ml-0 { margin-left: 0 !important; }
.gt-ml-1 { margin-left: .125rem !important; }
.gt-ml-2 { margin-left: .25rem !important; }
.gt-ml-3 { margin-left: .5rem !important; }
.gt-ml-4 { margin-left: 1rem !important; }
.gt-ml-5 { margin-left: 2rem !important; }
.gt-mr-0 { margin-right: 0 !important; }
.gt-mr-1 { margin-right: .125rem !important; }
.gt-mr-2 { margin-right: .25rem !important; }
.gt-mr-3 { margin-right: .5rem !important; }
.gt-mr-4 { margin-right: 1rem !important; }
.gt-mr-5 { margin-right: 2rem !important; }
.gt-mt-0 { margin-top: 0 !important; }
.gt-mt-1 { margin-top: .125rem !important; }
.gt-mt-2 { margin-top: .25rem !important; }
.gt-mt-3 { margin-top: .5rem !important; }
.gt-mt-4 { margin-top: 1rem !important; }
.gt-mt-5 { margin-top: 2rem !important; }
.gt-mb-0 { margin-bottom: 0 !important; }
.gt-mb-1 { margin-bottom: .125rem !important; }
.gt-mb-2 { margin-bottom: .25rem !important; }
.gt-mb-3 { margin-bottom: .5rem !important; }
.gt-mb-4 { margin-bottom: 1rem !important; }
.gt-mb-5 { margin-bottom: 2rem !important; }
.gt-mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.gt-mx-1 { margin-left: .125rem !important; margin-right: .125rem !important; }
.gt-mx-2 { margin-left: .25rem !important; margin-right: .25rem !important; }
.gt-mx-3 { margin-left: .5rem !important; margin-right: .5rem !important; }
.gt-mx-4 { margin-left: 1rem !important; margin-right: 1rem !important; }
.gt-mx-5 { margin-left: 2rem !important; margin-right: 2rem !important; }
.gt-my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.gt-my-1 { margin-top: .125rem !important; margin-bottom: .125rem !important; }
.gt-my-2 { margin-top: .25rem !important; margin-bottom: .25rem !important; }
.gt-my-3 { margin-top: .5rem !important; margin-bottom: .5rem !important; }
.gt-my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.gt-my-5 { margin-top: 2rem !important; margin-bottom: 2rem !important; }
.gt-p-0 { padding: 0 !important; }
.gt-p-1 { padding: .125rem !important; }
.gt-p-2 { padding: .25rem !important; }
.gt-p-3 { padding: .5rem !important; }
.gt-p-4 { padding: 1rem !important; }
.gt-p-5 { padding: 2rem !important; }
.gt-pl-0 { padding-left: 0 !important; }
.gt-pl-1 { padding-left: .125rem !important; }
.gt-pl-2 { padding-left: .25rem !important; }
.gt-pl-3 { padding-left: .5rem !important; }
.gt-pl-4 { padding-left: 1rem !important; }
.gt-pl-5 { padding-left: 2rem !important; }
.gt-pr-0 { padding-right: 0 !important; }
.gt-pr-1 { padding-right: .125rem !important; }
.gt-pr-2 { padding-right: .25rem !important; }
.gt-pr-3 { padding-right: .5rem !important; }
.gt-pr-4 { padding-right: 1rem !important; }
.gt-pr-5 { padding-right: 2rem !important; }
.gt-pt-0 { padding-top: 0 !important; }
.gt-pt-1 { padding-top: .125rem !important; }
.gt-pt-2 { padding-top: .25rem !important; }
.gt-pt-3 { padding-top: .5rem !important; }
.gt-pt-4 { padding-top: 1rem !important; }
.gt-pt-5 { padding-top: 2rem !important; }
.gt-pb-0 { padding-bottom: 0 !important; }
.gt-pb-1 { padding-bottom: .125rem !important; }
.gt-pb-2 { padding-bottom: .25rem !important; }
.gt-pb-3 { padding-bottom: .5rem !important; }
.gt-pb-4 { padding-bottom: 1rem !important; }
.gt-pb-5 { padding-bottom: 2rem !important; }
.gt-px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.gt-px-1 { padding-left: .125rem !important; padding-right: .125rem !important; }
.gt-px-2 { padding-left: .25rem !important; padding-right: .25rem !important; }
.gt-px-3 { padding-left: .5rem !important; padding-right: .5rem !important; }
.gt-px-4 { padding-left: 1rem !important; padding-right: 1rem !important; }
.gt-px-5 { padding-left: 2rem !important; padding-right: 2rem !important; }
.gt-py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.gt-py-1 { padding-top: .125rem !important; padding-bottom: .125rem !important; }
.gt-py-2 { padding-top: .25rem !important; padding-bottom: .25rem !important; }
.gt-py-3 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.gt-py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.gt-py-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.gt-gap-0 { gap: 0 !important; }
.gt-gap-1 { gap: .125rem !important; }
.gt-gap-2 { gap: .25rem !important; }
.gt-gap-3 { gap: .5rem !important; }
.gt-gap-4 { gap: 1rem !important; }
.gt-gap-5 { gap: 2rem !important; }
.gt-gap-x-0 { column-gap: 0 !important; }
.gt-gap-x-1 { column-gap: .125rem !important; }
.gt-gap-x-2 { column-gap: .25rem !important; }
.gt-gap-x-3 { column-gap: .5rem !important; }
.gt-gap-x-4 { column-gap: 1rem !important; }
.gt-gap-x-5 { column-gap: 2rem !important; }
.gt-gap-y-0 { row-gap: 0 !important; }
.gt-gap-y-1 { row-gap: .125rem !important; }
.gt-gap-y-2 { row-gap: .25rem !important; }
.gt-gap-y-3 { row-gap: .5rem !important; }
.gt-gap-y-4 { row-gap: 1rem !important; }
.gt-gap-y-5 { row-gap: 2rem !important; }
.gt-content-center { align-content: center !important; }
@media (max-width: 767px) {
.gt-db-small { display: block !important; }
.gt-w-100-small { width: 100% !important; }
.gt-js-small { justify-content: flex-start !important; }
}
/*
gt-hidden must be placed after all other "display: xxx !important" classes to win the chance
do not use:
* "[hidden]" attribute: it's too weak, can not be applied to an element with "display: flex"
* ".hidden" class: it has been polluted by Fomantic UI in many cases
* inline style="display: none": it's difficult to tweak
* jQuery's show/hide/toggle: it can not show/hide elements with "display: xxx !important"
only use:
* this ".gt-hidden" class
* showElem/hideElem/toggleElem functions in "utils/dom.js"
*/
.gt-hidden { display: none !important; }

53
web_src/css/home.css Normal file
View file

@ -0,0 +1,53 @@
.home .logo {
max-width: 220px;
}
@media (max-width: 767px) {
.home .hero h1 {
font-size: 3.5em;
}
.home .hero h2 {
font-size: 2em;
}
}
@media (min-width: 768px) {
.home .hero h1 {
font-size: 5.5em;
}
.home .hero h2 {
font-size: 3em;
}
}
.home .hero .svg {
color: var(--color-green);
height: 40px;
width: 50px;
vertical-align: bottom;
}
.home .hero.header {
font-size: 20px;
}
.home p.large {
font-size: 16px;
}
.home .stackable {
padding-top: 30px;
}
.home a {
color: var(--color-green);
}
@media (max-width: 880px) {
footer .ui.container .left,
footer .ui.container .right {
display: block;
text-align: center;
float: none;
}
}

40
web_src/css/index.css Normal file
View file

@ -0,0 +1,40 @@
@import "font-awesome/css/font-awesome.css";
@import "./animations.css";
@import "./shared/issuelist.css";
@import "./features/dropzone.css";
@import "./features/gitgraph.css";
@import "./features/heatmap.css";
@import "./features/imagediff.css";
@import "./features/codeeditor.css";
@import "./features/projects.css";
@import "./modules/tippy.css";
@import "./code/linebutton.css";
@import "./markup/content.css";
@import "./markup/codecopy.css";
@import "./markup/asciicast.css";
@import "./chroma/base.css";
@import "./chroma/light.css";
@import "./codemirror/base.css";
@import "./codemirror/light.css";
@import "./console/console.css";
@import "./svg.css";
@import "./tribute.css";
@import "./font_i18n.css";
@import "./base.css";
@import "./home.css";
@import "./install.css";
@import "./form.css";
@import "./repository.css";
@import "./editor.css";
@import "./organization.css";
@import "./user.css";
@import "./dashboard.css";
@import "./admin.css";
@import "./explore.css";
@import "./review.css";
@import "./package.css";
@import "./runner.css";
@import "./helpers.css";

65
web_src/css/install.css Normal file
View file

@ -0,0 +1,65 @@
.page-content.install {
padding-top: 45px;
}
.page-content.install form.ui.form .inline.field > label {
text-align: right;
width: 30%;
padding-right: 10px;
margin-right: 0;
}
.page-content.install form.ui.form .inline.field > .ui.checkbox:first-child {
margin-left: 30%;
padding-left: 5px;
}
.page-content.install form.ui.form .inline.field > .ui.checkbox:first-child label {
width: auto;
}
.page-content.install form.ui.form .title {
margin-left: 30%;
padding-left: 5px;
}
.page-content.install form.ui.form input {
width: 60%;
}
.page-content.install form.ui.form details.optional.field[open] {
border-bottom: 1px solid var(--color-secondary);
padding-bottom: 10px;
}
.page-content.install form.ui.form details.optional.field[open] summary {
margin-bottom: 10px;
}
.page-content.install form.ui.form details.optional.field * {
box-sizing: border-box;
}
.page-content.install form.ui.form .field {
text-align: left;
}
.page-content.install form.ui.form .field .help {
margin-left: 30%;
padding-left: 5px;
width: 60%;
}
.page-content.install .ui .reinstall-message {
width: 70%;
margin: 20px auto;
color: var(--color-red);
text-align: left;
font-weight: bold;
}
.page-content.install .ui .reinstall-confirm {
width: 70%;
text-align: left;
margin: 10px auto;
}

View file

@ -0,0 +1,8 @@
.asciinema-player-container {
width: 100%;
height: auto;
}
.asciinema-terminal {
overflow: hidden !important;
}

View file

@ -0,0 +1,35 @@
.markup .code-block,
.markup .mermaid-block {
position: relative;
}
.markup .code-copy {
position: absolute;
top: 8px;
right: 6px;
padding: 9px;
visibility: hidden;
animation: fadeout 0.2s both;
}
/* adjustments for comment content having only 14px font size */
.repository.view.issue .comment-list .comment .markup .code-copy {
right: 5px;
padding: 8px;
}
/* can not use regular transparent button colors for hover and active states because
we need opaque colors here as code can appear behind the button */
.markup .code-copy:hover {
background: var(--color-secondary) !important;
}
.markup .code-copy:active {
background: var(--color-secondary-dark-1) !important;
}
.markup .code-block:hover .code-copy,
.markup .mermaid-block:hover .code-copy {
visibility: visible;
animation: fadein 0.2s both;
}

View file

@ -0,0 +1,559 @@
.markup {
overflow: hidden;
font-size: 16px;
line-height: 1.5 !important;
word-wrap: break-word;
}
.markup.ui.segment {
padding: 3em;
}
.markup.file-view {
padding: 2em !important;
}
.markup > *:first-child {
margin-top: 0 !important;
}
.markup > *:last-child {
margin-bottom: 0 !important;
}
.markup a:not([href]) {
color: inherit;
text-decoration: none;
}
.markup .absent {
color: var(--color-red);
}
.markup .anchor {
padding-right: 4px;
margin-left: -20px;
line-height: 1;
color: inherit;
}
.markup .anchor .svg {
vertical-align: middle;
}
.markup .anchor:focus {
outline: none;
}
.markup h1 .anchor .svg,
.markup h2 .anchor .svg,
.markup h3 .anchor .svg,
.markup h4 .anchor .svg,
.markup h5 .anchor .svg,
.markup h6 .anchor .svg {
visibility: hidden;
}
.markup h1:hover .anchor .svg,
.markup h2:hover .anchor .svg,
.markup h3:hover .anchor .svg,
.markup h4:hover .anchor .svg,
.markup h5:hover .anchor .svg,
.markup h6:hover .anchor .svg {
visibility: visible;
}
.markup h2 .anchor .svg,
.markup h3 .anchor .svg,
.markup h4 .anchor .svg {
position: relative;
top: -2px;
}
.markup h1,
.markup h2,
.markup h3,
.markup h4,
.markup h5,
.markup h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25;
}
.markup h1 tt,
.markup h1 code,
.markup h2 tt,
.markup h2 code,
.markup h3 tt,
.markup h3 code,
.markup h4 tt,
.markup h4 code,
.markup h5 tt,
.markup h5 code,
.markup h6 tt,
.markup h6 code {
font-size: inherit;
}
.markup h1 {
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid var(--color-secondary);
}
.markup h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid var(--color-secondary);
}
.markup h3 {
font-size: 1.25em;
}
.markup h4 {
font-size: 1em;
}
.markup h5 {
font-size: 0.875em;
}
.markup h6 {
font-size: 0.85em;
color: var(--color-text-light-2);
}
.markup p,
.markup blockquote,
.markup details,
.markup ul,
.markup ol,
.markup dl,
.markup table,
.markup pre {
margin-top: 0;
margin-bottom: 16px;
}
.markup hr {
height: 4px;
padding: 0;
margin: 16px 0;
background-color: var(--color-secondary);
border: 0;
}
.markup ul,
.markup ol {
padding-left: 2em;
}
.markup ul.no-list,
.markup ol.no-list {
padding: 0;
list-style-type: none;
}
.markup .task-list-item {
list-style-type: none;
position: relative;
line-height: 1.5rem;
min-height: 1.5rem; /* // to render a checkbox list without content `- [ ]`, we need this min-height to make sure the <li> can be visible */
}
.markup .task-list-item input[type="checkbox"] {
position: absolute;
top: 0.25em;
left: -1.6em;
}
.markup .task-list-item p {
line-height: 1.5rem;
}
.markup .task-list-item + .task-list-item {
margin-top: 3px;
}
.markup input[type="checkbox"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
position: relative;
border: 1px solid var(--color-secondary);
border-radius: 2px;
background: var(--color-input-background);
height: 14px;
width: 14px;
opacity: 1 !important; /* override fomantic on edit preview */
pointer-events: auto !important; /* override fomantic on edit preview */
vertical-align: middle !important; /* override fomantic on edit preview */
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
.markup input[type="checkbox"]:not([disabled]):hover,
.markup input[type="checkbox"]:not([disabled]):active {
border-color: var(--color-primary);
}
.markup input[type="checkbox"]::after {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
pointer-events: none;
background: var(--color-text);
mask-size: cover;
-webkit-mask-size: cover;
}
.markup input[type="checkbox"]:checked::after {
content: "";
mask-image: var(--checkbox-mask-checked);
-webkit-mask-image: var(--checkbox-mask-checked);
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
.markup input[type="checkbox"]:indeterminate::after {
content: "";
mask-image: var(--checkbox-mask-indeterminate);
-webkit-mask-image: var(--checkbox-mask-indeterminate);
}
.markup ul ul,
.markup ul ol,
.markup ol ol,
.markup ol ul {
margin-top: 0;
margin-bottom: 0;
}
.markup ol ol,
.markup ul ol {
list-style-type: lower-roman;
}
.markup li > p {
margin-top: 16px;
}
.markup li + li {
margin-top: 0.25em;
}
.markup dl {
padding: 0;
}
.markup dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: 600;
}
.markup dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.markup blockquote {
margin-left: 0;
padding: 0 15px;
color: var(--color-text-light-2);
border-left: 4px solid var(--color-secondary);
}
.markup blockquote > :first-child {
margin-top: 0;
}
.markup blockquote > :last-child {
margin-bottom: 0;
}
.markup table {
display: block;
width: 100%;
width: max-content;
max-width: 100%;
overflow: auto;
}
.markup table th {
font-weight: 600;
}
.markup table th,
.markup table td {
padding: 6px 13px !important;
border: 1px solid var(--color-secondary) !important;
}
.markup table tr {
border-top: 1px solid var(--color-secondary);
}
.markup table tr:nth-child(2n) {
background-color: var(--color-markup-table-row);
}
.markup img {
max-width: 100%;
box-sizing: initial;
}
.markup img[align="right"] {
padding-left: 20px;
}
.markup img[align="left"] {
padding-right: 20px;
}
.markup .emoji {
max-width: none;
vertical-align: text-top;
}
.markup span.frame {
display: block;
overflow: hidden;
}
.markup span.frame > span {
display: block;
float: left;
width: auto;
padding: 7px;
margin: 13px 0 0;
overflow: hidden;
border: 1px solid var(--color-secondary);
}
.markup span.frame span img {
display: block;
float: left;
}
.markup span.frame span span {
display: block;
padding: 5px 0 0;
clear: both;
color: var(--color-text);
}
.markup span.align-center {
display: block;
overflow: hidden;
clear: both;
}
.markup span.align-center > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: center;
}
.markup span.align-center span img {
margin: 0 auto;
text-align: center;
}
.markup span.align-right {
display: block;
overflow: hidden;
clear: both;
}
.markup span.align-right > span {
display: block;
margin: 13px 0 0;
overflow: hidden;
text-align: right;
}
.markup span.align-right span img {
margin: 0;
text-align: right;
}
.markup span.float-left {
display: block;
float: left;
margin-right: 13px;
overflow: hidden;
}
.markup span.float-left span {
margin: 13px 0 0;
}
.markup span.float-right {
display: block;
float: right;
margin-left: 13px;
overflow: hidden;
}
.markup span.float-right > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: right;
}
.markup code,
.markup tt {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
white-space: break-spaces;
background-color: var(--color-markup-code-block);
border-radius: 4px;
}
.markup code br,
.markup tt br {
display: none;
}
.markup del code {
text-decoration: inherit;
}
.markup pre > code {
padding: 0;
margin: 0;
font-size: 100%;
white-space: pre-wrap;
word-break: break-all;
overflow-wrap: break-word;
background: transparent;
border: 0;
}
.markup .highlight {
margin-bottom: 16px;
}
.markup .highlight pre,
.markup pre {
padding: 16px;
font-size: 85%;
line-height: 1.45;
background-color: var(--color-markup-code-block);
border-radius: 4px;
}
.markup .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.markup pre {
word-wrap: normal;
}
.markup pre code,
.markup pre tt {
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.markup pre code::before,
.markup pre code::after,
.markup pre tt::before,
.markup pre tt::after {
content: normal;
}
.markup kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: var(--color-text-light);
vertical-align: middle;
background-color: var(--color-markup-code-block);
border: 1px solid var(--color-secondary);
border-radius: 3px;
box-shadow: inset 0 -1px 0 var(--color-secondary);
}
.markup .ui.list .list,
.markup ol.ui.list ol,
.markup ul.ui.list ul {
padding-left: 2em;
}
.repository.wiki.revisions .ui.container > .ui.stackable.grid {
-ms-flex-direction: row-reverse;
flex-direction: row-reverse;
}
.repository.wiki.revisions .ui.container > .ui.stackable.grid > .header {
margin-top: 0;
}
.repository.wiki.revisions .ui.container > .ui.stackable.grid > .header .sub.header {
padding-left: 52px;
word-break: break-word;
}
.file-revisions-btn {
display: block;
float: left;
margin-bottom: 2px !important;
padding: 11px !important;
margin-right: 10px !important;
}
.file-revisions-btn i {
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}
.markup-render {
display: block;
border: none;
width: 100%;
height: var(--height-loading); /* actual height is set in JS after loading */
overflow: hidden;
color-scheme: normal; /* match the value inside the iframe to allow it to become transparent */
}
.markup-block-error {
border: 1px solid var(--color-error-border) !important;
margin-bottom: 0 !important;
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
box-shadow: none !important;
font-size: 85% !important;
white-space: pre-wrap !important;
padding: 0.5rem 1rem !important;
text-align: left !important;
}
.markup-block-error + pre {
border-top: none !important;
margin-top: 0 !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}

View file

@ -0,0 +1,116 @@
/* styles are based on node_modules/tippy.js/dist/tippy.css */
/* class to hide tippy target elements on page load */
.tippy-target {
display: none !important;
}
[data-tippy-root] {
max-width: calc(100vw - 10px);
}
.tippy-box {
position: relative;
background-color: var(--color-body);
color: var(--color-secondary-dark-6);
border: 1px solid var(--color-secondary);
border-radius: var(--border-radius);
font-size: 1rem;
}
.tippy-box[data-theme="tooltip"] {
background-color: var(--color-tooltip-bg);
color: var(--color-tooltip-text);
border: none;
}
.tippy-box[data-theme="menu"] {
background-color: transparent;
color: var(--color-tooltip-text);
}
.tippy-box[data-theme="menu"] .ui.menu {
border: none;
}
.tippy-content {
position: relative;
padding: 1rem;
z-index: 1;
}
.tippy-box[data-theme="tooltip"] .tippy-content {
padding: 0.5rem 1rem;
}
.tippy-box[data-theme="menu"] .tippy-content {
padding: 0;
}
.tippy-box[data-placement^="top"] > .tippy-svg-arrow {
bottom: 0;
}
.tippy-box[data-placement^="top"] > .tippy-svg-arrow::after,
.tippy-box[data-placement^="top"] > .tippy-svg-arrow > svg {
top: 16px;
transform: rotate(180deg);
}
.tippy-box[data-placement^="bottom"] > .tippy-svg-arrow {
top: 0;
}
.tippy-box[data-placement^="bottom"] > .tippy-svg-arrow > svg {
bottom: 16px;
}
.tippy-box[data-placement^="left"] > .tippy-svg-arrow {
right: 0;
}
.tippy-box[data-placement^="left"] > .tippy-svg-arrow::after,
.tippy-box[data-placement^="left"] > .tippy-svg-arrow > svg {
transform: rotate(90deg);
top: calc(50% - 3px);
left: 11px;
}
.tippy-box[data-placement^="right"] > .tippy-svg-arrow {
left: 0;
}
.tippy-box[data-placement^="right"] > .tippy-svg-arrow::after,
.tippy-box[data-placement^="right"] > .tippy-svg-arrow > svg {
transform: rotate(-90deg);
top: calc(50% - 3px);
right: 11px;
}
.tippy-svg-arrow {
width: 16px;
height: 16px;
text-align: initial;
}
.tippy-svg-arrow,
.tippy-svg-arrow > svg {
position: absolute;
}
.tippy-svg-arrow-outer {
fill: var(--color-secondary);
}
.tippy-svg-arrow-inner {
fill: var(--color-body);
}
.tippy-box[data-theme="tooltip"] .tippy-svg-arrow-inner,
.tippy-box[data-theme="tooltip"] .tippy-svg-arrow-outer {
fill: var(--color-tooltip-bg);
}
.tippy-box[data-theme="menu"] .tippy-svg-arrow-inner {
fill: var(--color-menu);
}

View file

@ -0,0 +1,250 @@
#create-page-form form {
margin: auto;
}
#create-page-form form .ui.message {
text-align: center;
}
@media (min-width: 768px) {
#create-page-form form {
width: 800px !important;
}
#create-page-form form .header {
padding-left: 280px !important;
}
#create-page-form form .inline.field > label,
#create-page-form form .inline.field.captcha-field > span {
text-align: right;
width: 250px !important;
word-wrap: break-word;
}
#create-page-form form .help {
margin-left: 265px !important;
}
#create-page-form form .optional .title {
margin-left: 250px !important;
}
#create-page-form form .inline.field > input,
#create-page-form form .inline.field > textarea {
width: 50%;
}
}
@media (max-width: 767px) {
#create-page-form form .optional .title {
margin-left: 15px;
}
#create-page-form form .inline.field > label {
display: block;
}
}
.organization .head .ui.header .text {
vertical-align: middle;
font-size: 1.6rem;
margin-left: 15px;
}
.organization .head .ui.header .org-visibility .label {
margin-left: 5px;
margin-top: 5px;
}
.organization .head .ui.header .ui.right {
margin-top: 5px;
}
.organization .ui.secondary.stackable.pointing.menu {
flex-wrap: wrap;
margin-top: 5px;
margin-bottom: 10px;
}
.organization.new.org form {
margin: auto;
}
.organization.new.org form .ui.message {
text-align: center;
}
@media (min-width: 768px) {
.organization.new.org form {
width: 800px !important;
}
.organization.new.org form .header {
padding-left: 280px !important;
}
.organization.new.org form .inline.field > label,
.organization.new.org form .inline.field.captcha-field > span {
text-align: right;
width: 250px !important;
word-wrap: break-word;
}
.organization.new.org form .help {
margin-left: 265px !important;
}
.organization.new.org form .optional .title {
margin-left: 250px !important;
}
.organization.new.org form .inline.field > input,
.organization.new.org form .inline.field > textarea {
width: 50%;
}
}
@media (max-width: 767px) {
.organization.new.org form .optional .title {
margin-left: 15px;
}
.organization.new.org form .inline.field > label {
display: block;
}
}
.organization.new.org form .header {
padding-left: 0 !important;
text-align: center;
}
.organization.options input {
min-width: 300px;
}
.organization.profile .org-avatar {
width: 100px;
height: 100px;
margin-right: 15px;
}
.organization.profile #org-info {
overflow-wrap: anywhere;
}
.organization.profile #org-info .ui.header {
display: flex;
align-items: center;
font-size: 36px;
margin-bottom: 0;
}
.organization.profile #org-info .ui.header .org-visibility .label {
margin-left: 5px;
margin-top: 2px;
}
.organization.profile #org-info .desc {
font-size: 16px;
margin-bottom: 10px;
}
.organization.profile #org-info .meta .item {
display: inline-block;
margin-right: 10px;
}
.organization.profile #org-info .meta .item .icon {
margin-right: 5px;
}
.organization.profile .ui.top.header .ui.right {
margin-top: 0;
}
.organization.profile .teams .item {
padding: 10px 15px;
}
.organization.teams .members a:hover,
.organization.profile .members a:hover {
text-decoration: none;
}
.organization.teams .members .ui.avatar,
.organization.profile .members .ui.avatar {
width: 48px;
height: 48px;
margin-right: 5px;
margin-bottom: 5px;
}
.organization.invite #invite-box {
margin: 50px auto auto;
width: 500px !important;
}
.organization.invite #invite-box #search-user-box input {
margin-left: 0;
width: 300px;
}
.organization.invite #invite-box .ui.button {
margin-left: 5px;
margin-top: -3px;
}
.organization.invite .ui.avatar {
width: 100%;
height: 100%;
}
.organization.members .list .item {
margin-left: 0;
margin-right: 0;
border-bottom: 1px solid var(--color-secondary);
}
.organization.members .list .item .ui.avatar {
width: 48px;
height: auto;
margin-right: 1rem;
align-self: flex-start;
}
.organization.members .list .item .meta {
line-height: 24px;
word-break: break-word;
min-width: 2em;
}
.organization.teams .detail .item {
padding: 10px 15px;
}
.organization.teams .detail .item:not(:last-child) {
border-bottom: 1px solid var(--color-secondary);
}
.organization.teams .repositories .item,
.organization.teams .members .item {
padding: 10px 20px;
line-height: 32px;
}
.organization.teams .repositories .item:not(:last-child),
.organization.teams .members .item:not(:last-child) {
border-bottom: 1px solid var(--color-secondary);
}
.organization.teams .repositories .item .button,
.organization.teams .members .item .button {
padding: 9px 10px;
}
.organization.teams #add-repo-form input,
.organization.teams #repo-multiple-form input,
.organization.teams #add-member-form input {
margin-left: 0;
}
.organization.teams #add-repo-form .ui.button,
.organization.teams #repo-multiple-form .ui.button,
.organization.teams #add-member-form .ui.button {
margin-left: 5px;
margin-top: -3px;
}
.organization.teams #repo-top-segment {
height: 60px;
}

7
web_src/css/package.css Normal file
View file

@ -0,0 +1,7 @@
.container-labels td:nth-child(1) {
vertical-align: top;
}
.container-labels td:nth-child(2) {
overflow-wrap: anywhere;
}

3629
web_src/css/repository.css Normal file

File diff suppressed because it is too large Load diff

322
web_src/css/review.css Normal file
View file

@ -0,0 +1,322 @@
.show-outdated,
.hide-outdated {
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}
.ui.button.add-code-comment {
padding: 2px;
position: absolute;
margin-left: -22px;
z-index: 5;
opacity: 0;
transition: transform 0.1s ease-in-out;
transform: scale(1);
box-shadow: none !important;
border: none !important;
}
.ui.button.add-code-comment:hover {
transform: scale(1.1);
}
.lines-escape a.toggle-escape-button::before {
visibility: visible;
content: "⚠️";
font-family: var(--fonts-emoji);
color: var(--color-red);
}
.repository .diff-file-box .code-diff td.lines-escape {
padding-left: 0 !important;
}
.diff-file-box .lines-code:hover .ui.button.add-code-comment {
opacity: 1;
}
.repository .diff-file-box .code-diff .add-comment-left,
.repository .diff-file-box .code-diff .add-comment-right,
.repository .diff-file-box .code-diff .add-code-comment .add-comment-left,
.repository .diff-file-box .code-diff .add-code-comment .add-comment-right,
.repository .diff-file-box .code-diff .add-code-comment .lines-type-marker {
padding-left: 0 !important;
padding-right: 0 !important;
}
.add-comment-left.add-comment-right .ui.attached.header {
border: 1px solid var(--color-secondary);
}
.add-comment-left.add-comment-right .ui.attached.header:not(.top) {
margin-bottom: 0.5em;
}
.add-comment .lines-num,
.add-comment .lines-escape,
.add-comment .lines-type-marker {
display: none;
}
.show-outdated:hover,
.hide-outdated:hover {
text-decoration: underline;
}
.comment-code-cloud {
padding: 0.5rem 1rem !important;
position: relative;
margin: 0 auto;
max-width: 1000px;
}
@media (max-width: 767px) {
.comment-code-cloud {
max-width: none;
padding: 0.75rem !important;
}
.comment-code-cloud .code-comment-buttons {
margin: 0.5rem 0 0.25rem !important;
}
.comment-code-cloud .code-comment-buttons .code-comment-buttons-buttons {
width: 100%;
}
.comment-code-cloud .ui.buttons {
width: 100%;
margin: 0 !important;
}
.comment-code-cloud .ui.buttons .button {
flex: 1;
}
}
.comment-code-cloud .comments .comment {
padding: 0;
}
@media (max-width: 767px) {
.comment-code-cloud .comments .comment {
display: flex;
}
.comment-code-cloud
.comments
.comment
.comment-header-right.actions
.ui.basic.label {
display: none;
}
.comment-code-cloud .comments .comment .avatar {
width: auto;
float: none;
margin: 0 0.5rem 0 0;
flex-shrink: 0;
}
.comment-code-cloud .comments .comment .avatar ~ .content {
margin-left: 1em;
}
.comment-code-cloud .comments .comment img.avatar {
margin: 0 !important;
}
.comment-code-cloud .comments .comment .comment-content {
margin-left: 0 !important;
}
.comment-code-cloud .comments .comment .comment-container {
width: 100%;
}
.comment-code-cloud .comments .comment.code-comment {
padding: 0 0 0.5rem !important;
}
}
.comment-code-cloud .attached.tab {
border: 0;
padding: 0;
margin: 0;
}
.comment-code-cloud .attached.header {
padding: 0.1rem 1rem;
}
.comment-code-cloud .attached.header .text {
margin: 0;
}
.comment-code-cloud .right.menu.options .item {
padding: 0.85714286em 0.442857em;
cursor: pointer;
}
.comment-code-cloud .ui.active.tab {
padding: 0.5em;
}
.comment-code-cloud .ui.active.tab.markup {
padding: 1em;
min-height: 168px;
}
.comment-code-cloud .ui.tabular.menu {
margin: 0.5em;
}
.comment-code-cloud .footer {
border-top: 1px solid var(--color-secondary);
padding: 10px 0;
}
.comment-code-cloud .footer .markup-info {
display: inline-block;
margin: 5px 0;
font-size: 12px;
color: var(--color-text-light);
}
.comment-code-cloud .footer .ui.right.floated {
padding-top: 6px;
}
.comment-code-cloud .footer::after {
clear: both;
content: "";
display: block;
}
@media (max-width: 767px) {
.comment-code-cloud .button {
width: 100%;
margin: 0 !important;
margin-bottom: 0.75rem !important;
}
}
.diff-file-body .comment-form {
margin: 0 0 0 3em;
}
.file-comment {
color: var(--color-text);
}
a.blob-excerpt {
color: var(--color-text-light);
height: 28px;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
background: var(--color-expand-button);
}
a.blob-excerpt:hover {
background: var(--color-primary);
color: var(--color-primary-contrast);
}
/* See the comment of createCommentEasyMDE() for the review editor */
/* EasyMDE's options can not handle minHeight & maxHeight together correctly, we have to set minHeight in JS code */
.review-box-panel .CodeMirror-scroll {
min-height: 80px;
max-height: calc(100vh - 360px);
}
@media (max-width: 767px) {
.review-box-panel .CodeMirror-scroll {
max-width: calc(100vw - 70px);
}
}
@media (min-width: 768px) and (max-width: 991px) {
.review-box-panel .CodeMirror-scroll {
max-width: 700px;
}
}
@media (min-width: 992px) and (max-width: 1200px) {
.review-box-panel .CodeMirror-scroll {
max-width: 800px;
}
}
@media (min-width: 1201px) {
.review-box-panel .CodeMirror-scroll {
max-width: 900px;
}
}
#review-box {
position: relative;
}
.review-box-panel {
position: absolute;
min-width: max-content;
top: 45px;
right: -5px;
z-index: 2;
}
#review-box .review-comments-counter {
background-color: var(--color-primary-light-4);
color: var(--color-primary-contrast);
}
#review-box:hover .review-comments-counter {
background-color: var(--color-primary-light-5);
}
#review-box .review-comments-counter[data-pending-comment-number="0"] {
display: none;
}
.pull.files.diff [id] {
scroll-margin-top: 99px;
}
@media (max-width: 991px) {
.pull.files.diff [id] {
scroll-margin-top: 130px;
}
}
.changed-since-last-review {
border: 1px var(--color-accent) solid;
background-color: var(--color-small-accent);
border-radius: 15px;
padding: 4px 8px;
margin: -8px 0; /* just like other buttons in the diff box header */
font-size: 0.857rem; /* just like .ui.tiny.button */
}
.viewed-file-form {
display: flex;
align-items: center;
border: 1px solid transparent;
padding: 4px 8px;
margin: -8px 0; /* just like other buttons in the diff box header */
border-radius: 0.285rem; /* just like .ui.tiny.button */
font-size: 0.857rem; /* just like .ui.tiny.button */
}
.viewed-file-form input {
margin-right: 4px;
}
.viewed-file-checked-form {
background-color: var(--color-small-accent);
border-color: var(--color-accent);
}
#viewed-files-summary {
width: 72px;
height: 10px;
}
.diff-file-box {
border-radius: 0.285rem; /* Just like ui.top.attached.header */
}
.diff-file-box:target {
box-shadow: 0 0 0 3px var(--color-accent);
}

54
web_src/css/runner.css Normal file
View file

@ -0,0 +1,54 @@
.runner-container {
padding-bottom: 30px;
}
.runner-container .runner-ops > a {
margin-left: 0.5em;
}
.runner-container .runner-ops-delete {
color: var(--color-red-light);
}
.runner-container .runner-basic-info .gt-dib {
margin-right: 1em;
}
.runner-container .runner-status-online {
padding: 0.3em 0.5em;
background-color: var(--color-green);
color: var(--color-white);
}
.runner-container .runner-new-text {
color: var(--color-white);
}
.runner-container #runner-new:hover .runner-new-text {
color: var(--color-white) !important;
}
.runner-container .runner-new-menu {
width: 300px;
}
.runner-container .task-status-success {
background-color: var(--color-green);
color: var(--color-white);
}
.runner-container .task-status-failure {
background-color: var(--color-red-light);
color: var(--color-white);
}
.runner-container .task-status-running {
background-color: var(--color-blue);
color: var(--color-white);
}
.runner-container .task-status-cancelled,
.runner-container .task-status-blocked {
background-color: var(--color-yellow);
color: var(--color-white);
}

View file

@ -0,0 +1,166 @@
.issue.list {
list-style: none;
margin-top: 1rem;
}
.issue.list a:not(.label):hover {
color: var(--color-primary) !important;
}
.issue.list > .item .issue-checkbox {
margin-top: 1px;
}
.issue.list > .item .issue-item-icon svg {
margin-right: 0.75rem;
margin-top: 1px;
}
.issue.list > .item .issue-item-icons-right > * + * {
margin-left: 0.5rem;
}
.issue.list > .item .issue-item-main {
width: 100%;
}
.issue.list > .item .action-item-main {
width: 80%;
}
.issue.list > .item .issue-item-right {
width: 15%;
}
.issue.list > .item .issue-item-top-row {
max-width: 100%;
color: var(--color-text);
font-size: 16px;
min-width: 0;
font-weight: 600;
}
.issue.list > .item .issue-item-top-row a.index {
max-width: fit-content;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-all;
}
.issue.list > .item .labels-list {
position: relative;
top: -1.5px;
}
.issue.list > .item .issue-item-bottom-row {
font-size: 13px;
}
.issue.list > .item .title {
color: var(--color-text);
word-break: break-word;
}
.issue.list > .item .issue-item-icon-right {
min-width: 2rem;
}
.issue.list > .item .assignee {
position: relative;
top: -2px;
}
.issue.list > .item .assignee img {
width: 20px;
height: 20px;
margin-right: 2px;
}
.issue.list > .item .desc {
color: var(--color-text-light-2);
}
.issue.list > .item .desc a {
color: inherit;
}
.issue.list > .item .desc .time-since,
.issue.list > .item .desc a {
margin-left: 0.25rem;
margin-right: 0.25rem;
}
.issue.list > .item .desc .waiting,
.issue.list > .item .desc .approvals,
.issue.list > .item .desc .rejects {
padding-left: 5px;
}
.issue.list > .item .desc .checklist {
padding-left: 5px;
}
.issue.list > .item .desc .checklist progress {
margin-left: 2px;
width: 80px;
height: 6px;
display: inline-block;
border-radius: 3px;
vertical-align: 2px !important;
}
.issue.list > .item .desc .checklist progress::-webkit-progress-value {
background-color: var(--color-secondary-dark-4);
}
.issue.list > .item .desc .checklist progress::-moz-progress-bar {
background-color: var(--color-secondary-dark-4);
}
.issue.list > .item .desc .conflicting {
padding-left: 5px;
}
.issue.list > .item .desc .due-date {
padding-left: 5px;
}
.issue.list > .item .desc a.milestone,
.issue.list > .item .desc a.project {
margin-left: 5px;
}
.issue.list > .item .desc a.ref {
margin-left: 8px;
}
.issue.list > .item .desc a.ref span {
margin-right: -4px;
}
.issue.list > .item .desc .overdue {
color: var(--color-red);
}
.issue.list .branches {
display: inline-flex;
padding: 0 4px;
}
.issue.list .branches .branch {
background-color: var(--color-secondary);
border-radius: 3px;
}
.issue.list .branches .truncated-name {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 10em;
}
.issue.list > .item + .item {
border-top: 1px solid var(--color-secondary);
}

View file

@ -0,0 +1,31 @@
html {
box-sizing: border-box;
overflow-y: scroll;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fff;
}
.swagger-back-link {
color: #1f69c0;
text-decoration: none;
position: absolute;
top: 1rem;
right: 1.5rem;
display: flex;
align-items: center;
}
.swagger-back-link svg {
color: inherit;
fill: currentcolor;
margin-right: 0.5rem;
}

9
web_src/css/svg.css Normal file
View file

@ -0,0 +1,9 @@
.svg {
display: inline-block;
vertical-align: text-top;
fill: currentcolor;
}
.middle .svg {
vertical-align: middle;
}

View file

@ -0,0 +1,200 @@
@import "../chroma/base.css";
@import "../chroma/dark.css";
@import "../codemirror/dark.css";
:root {
--is-dark-theme: true;
--color-primary: #87ab63;
--color-primary-contrast: #ffffff;
--color-primary-dark-1: #93b373;
--color-primary-dark-2: #9fbc82;
--color-primary-dark-3: #abc492;
--color-primary-dark-4: #b7cda1;
--color-primary-dark-5: #cfddc1;
--color-primary-dark-6: #e7eee0;
--color-primary-dark-7: #f8faf6;
--color-primary-light-1: #7a9e55;
--color-primary-light-2: #6c8c4c;
--color-primary-light-3: #5f7b42;
--color-primary-light-4: #516939;
--color-primary-light-5: #364626;
--color-primary-light-6: #1b2313;
--color-primary-light-7: #080b06;
--color-primary-alpha-10: #87ab6319;
--color-primary-alpha-20: #87ab6333;
--color-primary-alpha-30: #87ab634b;
--color-primary-alpha-40: #87ab6366;
--color-primary-alpha-50: #87ab6380;
--color-primary-alpha-60: #87ab6399;
--color-primary-alpha-70: #87ab63b3;
--color-primary-alpha-80: #87ab63cc;
--color-primary-alpha-90: #87ab63e1;
--color-secondary: #454a57;
--color-secondary-dark-1: #505665;
--color-secondary-dark-2: #5b6273;
--color-secondary-dark-3: #71798e;
--color-secondary-dark-4: #7f8699;
--color-secondary-dark-5: #8c93a4;
--color-secondary-dark-6: #9aa0af;
--color-secondary-dark-7: #a8adba;
--color-secondary-dark-8: #b6bac5;
--color-secondary-dark-9: #c4c7d0;
--color-secondary-dark-10: #d2d4db;
--color-secondary-dark-11: #dfe1e6;
--color-secondary-dark-12: #edeef1;
--color-secondary-dark-13: #fbfbfc;
--color-secondary-light-1: #373b46;
--color-secondary-light-2: #292c34;
--color-secondary-light-3: #1c1e23;
--color-secondary-light-4: #0e0f11;
--color-secondary-alpha-10: #454a5719;
--color-secondary-alpha-20: #454a5733;
--color-secondary-alpha-30: #454a574b;
--color-secondary-alpha-40: #454a5766;
--color-secondary-alpha-50: #454a5780;
--color-secondary-alpha-60: #454a5799;
--color-secondary-alpha-70: #454a57b3;
--color-secondary-alpha-80: #454a57cc;
--color-secondary-alpha-90: #454a57e1;
/* colors */
--color-red: #cc4848;
--color-orange: #cc580c;
--color-yellow: #cc9903;
--color-olive: #91a313;
--color-green: #87ab63;
--color-teal: #00918a;
--color-blue: #3a8ac6;
--color-violet: #906ae1;
--color-purple: #b259d0;
--color-pink: #d22e8b;
--color-brown: #a47252;
--color-grey: #9ea2aa;
--color-black: #1e222e;
/* light variants - produced via Sass scale-color(color, $lightness: -10%) */
--color-red-light: #c23636;
--color-orange-light: #b84f0b;
--color-yellow-light: #b88a03;
--color-olive-light: #839311;
--color-green-light: #7a9e55;
--color-teal-light: #00837c;
--color-blue-light: #347cb3;
--color-violet-light: #7b4edb;
--color-purple-light: #a742c9;
--color-pink-light: #be297d;
--color-brown-light: #94674a;
--color-grey-light: #8d919b;
--color-black-light: #1b1f29;
/* other colors */
--color-gold: #b1983b;
--color-white: #ffffff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-error-border: #a04141;
--color-error-bg: #522;
--color-error-bg-active: #744;
--color-error-bg-hover: #633;
--color-error-text: #f9cbcb;
--color-success-border: #458a57;
--color-success-bg: #284034;
--color-success-text: #6cc664;
--color-warning-border: #bb9d00;
--color-warning-bg: #3a3a30;
--color-warning-text: #fbbd08;
--color-info-border: #306090;
--color-info-bg: #26354c;
--color-info-text: #38a8e8;
--color-red-badge: #db2828;
--color-red-badge-bg: #db28281a;
--color-red-badge-hover-bg: #db28284d;
--color-green-badge: #21ba45;
--color-green-badge-bg: #21ba451a;
--color-green-badge-hover-bg: #21ba454d;
--color-yellow-badge: #fbbd08;
--color-yellow-badge-bg: #fbbd081a;
--color-yellow-badge-hover-bg: #fbbd084d;
--color-orange-badge: #f2711c;
--color-orange-badge-bg: #f2711c1a;
--color-orange-badge-hover-bg: #f2711c4d;
--color-git: #f05133;
/* target-based colors */
--color-body: #383c4a;
--color-box-header: #404652;
--color-box-body: #2a2e3a;
--color-box-body-highlight: #353945;
--color-text-dark: #dbe0ea;
--color-text: #bbc0ca;
--color-text-light: #a6aab5;
--color-text-light-1: #979ba6;
--color-text-light-2: #8a8e99;
--color-text-light-3: #707687;
--color-footer: #2e323e;
--color-timeline: #4c525e;
--color-input-text: #d5dbe6;
--color-input-background: #232933;
--color-input-toggle-background: #454a57;
--color-input-border: #454a57;
--color-input-border-hover: #505667;
--color-navbar: #2a2e3a;
--color-navbar-transparent: #2a2e3a00;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #ffffff28;
--color-hover: #ffffff10;
--color-active: #ffffff16;
--color-menu: #2e323e;
--color-card: #2e323e;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #ffffff0d;
--color-button: #353846;
--color-code-bg: #2a2e3a;
--color-code-sidebar-bg: #2e323e;
--color-shadow: #00000060;
--color-secondary-bg: #2a2e3a;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text); /* should ideally be --color-text-dark, see #15651 */
--color-reaction-bg: #ffffff12;
--color-reaction-active-bg: var(--color-primary-alpha-40);
--color-header-bar: #2e323e;
--color-label-active-bg: #4c525e;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: #534d1b;
accent-color: var(--color-accent);
color-scheme: dark;
}
/* invert emojis that are hard to read otherwise */
.emoji[aria-label="check mark"],
.emoji[aria-label="currency exchange"],
.emoji[aria-label="TOP arrow"],
.emoji[aria-label="END arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy dash"],
.emoji[aria-label="paw prints"],
.emoji[aria-label="musical note"],
.emoji[aria-label="musical notes"] {
filter: invert(100%) hue-rotate(180deg);
}

View file

@ -0,0 +1 @@
@import "./theme-arc-green.css" (prefers-color-scheme: dark);

42
web_src/css/tribute.css Normal file
View file

@ -0,0 +1,42 @@
@import "tributejs/dist/tribute.css";
.tribute-container {
box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.25);
border-radius: 0.25rem;
}
.tribute-container ul {
margin-top: 0 !important;
background: var(--color-body) !important;
}
.tribute-container li {
padding: 3px 0.5rem !important;
}
.tribute-container li span.fullname {
font-weight: normal;
font-size: 0.8rem;
margin-left: 3px;
}
.tribute-container li.highlight,
.tribute-container li:hover {
background: var(--color-primary) !important;
color: var(--color-primary-contrast) !important;
}
.tribute-item {
display: flex;
align-items: center;
}
.tribute-item .emoji,
.tribute-item img[src*="/avatar/"] {
margin-right: 0.5rem;
}
.tribute-container img {
width: 1.5rem !important;
height: 1.5rem !important;
}

173
web_src/css/user.css Normal file
View file

@ -0,0 +1,173 @@
.user.profile .ui.card .header {
display: block;
font-weight: 600;
font-size: 1.3rem;
margin-top: -0.2rem;
line-height: 1.3rem;
}
.user.profile .ui.card .profile-avatar-name {
border-top: none;
text-align: center;
}
.user.profile .ui.card .extra.content {
padding: 0;
}
.user.profile .ui.card .extra.content ul {
margin: 0;
padding: 0;
}
.user.profile .ui.card .extra.content ul li {
padding: 10px;
list-style: none;
}
.user.profile .ui.card .extra.content ul li:not(:last-child) {
border-bottom: 1px solid var(--color-secondary);
}
.user.profile .ui.card .extra.content ul li .svg {
margin-left: 1px;
margin-right: 5px;
}
.user.profile .ui.card .extra.content ul li.follow .ui.button {
width: 100%;
}
.user.profile .ui.card #profile-avatar {
background: none;
padding: 1rem 1rem 0.25rem;
justify-content: center;
}
.user.profile .ui.card #profile-avatar img {
width: 100%;
height: auto;
object-fit: contain;
margin: 0;
}
@media (max-width: 767px) {
.user.profile .ui.card #profile-avatar img {
width: 30vw;
}
}
@media (max-width: 767px) {
.user.profile .ui.card {
width: 100%;
}
}
.user.profile .ui.repository.list {
margin-top: 25px;
}
.user.profile #loading-heatmap {
margin-bottom: 1em;
}
.user.profile .ui.secondary.stackable.pointing.menu {
flex-wrap: wrap;
}
.user.followers .header.name {
font-size: 20px;
line-height: 24px;
vertical-align: middle;
}
.user.followers .follow .ui.button {
padding: 8px 15px;
}
.user.notification .svg {
float: left;
font-size: 2em;
}
.user.notification .svg.green {
color: var(--color-green);
}
.user.notification .svg.red {
color: var(--color-red);
}
.user.notification .svg.purple {
color: var(--color-purple);
}
.user.notification .svg.blue {
color: var(--color-blue);
}
.user.notification .content {
float: left;
margin-left: 7px;
}
.user.notification table form {
display: inline-block;
}
.user.notification table button {
padding: 3px 3px 3px 5px;
}
.user.notification table tr {
cursor: pointer;
}
.user .button.adopt,
.user .button.delete {
margin-top: -15px;
margin-bottom: -15px;
}
.user .button.adopt .label,
.user .button.delete .label {
vertical-align: middle;
}
.user.link-account:not(.icon) {
padding-top: 15px;
padding-bottom: 5px;
}
.user.settings .iconFloat {
float: left;
}
.user-orgs {
display: flex;
flex-flow: row wrap;
padding: 0;
margin: -3px !important;
}
.user-orgs li {
display: flex;
border-bottom: 0 !important;
padding: 3px !important;
width: 20%;
max-width: 60px;
}
.user-badges {
display: grid;
grid-template-columns: repeat(auto-fill, 64px);
gap: 2px;
}
.user-badges img {
object-fit: contain;
}
#notification_div .tab.segment {
overflow-x: auto;
}