|
|
|
:root {
|
|
|
|
/* fonts */
|
|
|
|
--fonts-proportional: -apple-system, "Segoe UI", system-ui, "Roboto", "Helvetica Neue", "Arial";
|
|
|
|
--fonts-monospace: "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace, var(--fonts-emoji);
|
|
|
|
--fonts-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla";
|
|
|
|
/* backgrounds */
|
|
|
|
--checkbox-mask-checked: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 18 18" width="16" height="16"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>');
|
|
|
|
--checkbox-mask-indeterminate: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z"></path></svg>');
|
|
|
|
/* non-color variables */
|
|
|
|
--border-radius: .28571429rem;
|
|
|
|
--opacity-disabled: .55;
|
|
|
|
--height-loading: 12rem;
|
|
|
|
/* base colors */
|
|
|
|
--color-primary: #4183c4;
|
|
|
|
--color-primary-contrast: #ffffff;
|
|
|
|
--color-primary-dark-1: #3876b3;
|
|
|
|
--color-primary-dark-2: #31699f;
|
|
|
|
--color-primary-dark-3: #2b5c8b;
|
|
|
|
--color-primary-dark-4: #254f77;
|
|
|
|
--color-primary-dark-5: #193450;
|
|
|
|
--color-primary-dark-6: #0c1a28;
|
|
|
|
--color-primary-dark-7: #04080c;
|
|
|
|
--color-primary-light-1: #548fca;
|
|
|
|
--color-primary-light-2: #679cd0;
|
|
|
|
--color-primary-light-3: #7aa8d6;
|
|
|
|
--color-primary-light-4: #8db5dc;
|
|
|
|
--color-primary-light-5: #b3cde7;
|
|
|
|
--color-primary-light-6: #d9e6f3;
|
|
|
|
--color-primary-light-7: #f4f8fb;
|
|
|
|
--color-primary-alpha-10: #4183c419;
|
|
|
|
--color-primary-alpha-20: #4183c433;
|
|
|
|
--color-primary-alpha-30: #4183c44b;
|
|
|
|
--color-primary-alpha-40: #4183c466;
|
|
|
|
--color-primary-alpha-50: #4183c480;
|
|
|
|
--color-primary-alpha-60: #4183c499;
|
|
|
|
--color-primary-alpha-70: #4183c4b3;
|
|
|
|
--color-primary-alpha-80: #4183c4cc;
|
|
|
|
--color-primary-alpha-90: #4183c4e1;
|
|
|
|
--color-secondary: #dedede;
|
|
|
|
--color-secondary-dark-1: #cecece;
|
|
|
|
--color-secondary-dark-2: #bfbfbf;
|
|
|
|
--color-secondary-dark-3: #a0a0a0;
|
|
|
|
--color-secondary-dark-4: #909090;
|
|
|
|
--color-secondary-dark-5: #818181;
|
|
|
|
--color-secondary-dark-6: #717171;
|
|
|
|
--color-secondary-dark-7: #626262;
|
|
|
|
--color-secondary-dark-8: #525252;
|
|
|
|
--color-secondary-dark-9: #434343;
|
|
|
|
--color-secondary-dark-10: #333333;
|
|
|
|
--color-secondary-dark-11: #242424;
|
|
|
|
--color-secondary-dark-12: #141414;
|
|
|
|
--color-secondary-dark-13: #040404;
|
|
|
|
--color-secondary-light-1: #e5e5e5;
|
|
|
|
--color-secondary-light-2: #ebebeb;
|
|
|
|
--color-secondary-light-3: #f2f2f2;
|
|
|
|
--color-secondary-light-4: #f8f8f8;
|
|
|
|
--color-secondary-alpha-10: #dedede19;
|
|
|
|
--color-secondary-alpha-20: #dedede33;
|
|
|
|
--color-secondary-alpha-30: #dedede4b;
|
|
|
|
--color-secondary-alpha-40: #dedede66;
|
|
|
|
--color-secondary-alpha-50: #dedede80;
|
|
|
|
--color-secondary-alpha-60: #dedede99;
|
|
|
|
--color-secondary-alpha-70: #dededeb3;
|
|
|
|
--color-secondary-alpha-80: #dededecc;
|
|
|
|
--color-secondary-alpha-90: #dededee1;
|
|
|
|
/* console colors */
|
|
|
|
--color-console-fg: #ffffff;
|
|
|
|
--color-console-bg: #171717;
|
|
|
|
/* named colors */
|
|
|
|
--color-red: #db2828;
|
|
|
|
--color-orange: #f2711c;
|
|
|
|
--color-yellow: #fbbd08;
|
|
|
|
--color-olive: #b5cc18;
|
|
|
|
--color-green: #21ba45;
|
|
|
|
--color-teal: #00b5ad;
|
|
|
|
--color-blue: #2185d0;
|
|
|
|
--color-violet: #6435c9;
|
|
|
|
--color-purple: #a333c8;
|
|
|
|
--color-pink: #e03997;
|
|
|
|
--color-brown: #a5673f;
|
|
|
|
--color-grey: #888888;
|
|
|
|
--color-black: #1b1c1d;
|
|
|
|
/* light variants - produced via Sass scale-color(color, $lightness: +25%) */
|
|
|
|
--color-red-light: #e45e5e;
|
|
|
|
--color-orange-light: #f59555;
|
|
|
|
--color-yellow-light: #fcce46;
|
|
|
|
--color-olive-light: #d3e942;
|
|
|
|
--color-green-light: #46de6a;
|
|
|
|
--color-teal-light: #08fff4;
|
|
|
|
--color-blue-light: #51a5e3;
|
|
|
|
--color-violet-light: #8b67d7;
|
|
|
|
--color-purple-light: #bb64d8;
|
|
|
|
--color-pink-light: #e86bb1;
|
|
|
|
--color-brown-light: #c58b66;
|
|
|
|
--color-grey-light: #a6a6a6;
|
|
|
|
--color-black-light: #525558;
|
|
|
|
/* other colors */
|
|
|
|
--color-gold: #a1882b;
|
|
|
|
--color-white: #ffffff;
|
|
|
|
--color-diff-removed-word-bg: #fdb8c0;
|
|
|
|
--color-diff-added-word-bg: #acf2bd;
|
|
|
|
--color-diff-removed-row-bg: #ffeef0;
|
Prevent NPE in CSV diff rendering when column removed (#17018)
Fixes #16837 if a column is deleted.
We were clobbering the columns that were added by looping through the aline (base) and then when bline (head) was looped through, it clobbered what was in the "cells" array that is show in the diff, and then left a nil cell because nothing was shifted.
This fix properly shifts the cells, and properly puts the b cell either at its location or after, according to what the aline placed in the cells.
This includes test, adding a new test function since adding/removing cells works best with three columns, not two, which results in 4 columns of the resulting cells because it has a deleted column and an added column. If you try this locally, you can try those cases and others, such as adding a column.
There was no need to do anything special for the rows when `aline == 0 || bline == 0` so that was removed. This allows the same code to be used for removed or added lines, with the bcell text always being the RightCell, acell text being the LeftCell.
I still added the patch zeripath gave at https://github.com/go-gitea/gitea/issues/16837#issuecomment-913007382 so that just in case for some reason a cell is nil (which shouldn't happen now) it doesn't throw a 500 error, so the user can at least view the raw diff.
Also fixes in the [view.go](https://github.com/go-gitea/gitea/pull/17018/files#diff-43a7f4747c7ba8bff888c9be11affaafd595fd55d27f3333840eb19df9fad393L521) file how if a CSV file is empty (either created empty or if you edit it and remove all contents) it throws a huge 500 error when you then save it (when you view the file). Since we allow creating, saving and pushing empty files, we shouldn't throw an error on an empty CSV file, but just show its empty contents. This doesn't happen if it is a Markdown file or other type of file that is empty.
EDIT: Now handled in the markup/csv renderer code
3 years ago
|
|
|
--color-diff-moved-row-bg: #f1f8d1;
|
|
|
|
--color-diff-added-row-bg: #e6ffed;
|
|
|
|
--color-diff-removed-row-border: #f1c0c0;
|
Prevent NPE in CSV diff rendering when column removed (#17018)
Fixes #16837 if a column is deleted.
We were clobbering the columns that were added by looping through the aline (base) and then when bline (head) was looped through, it clobbered what was in the "cells" array that is show in the diff, and then left a nil cell because nothing was shifted.
This fix properly shifts the cells, and properly puts the b cell either at its location or after, according to what the aline placed in the cells.
This includes test, adding a new test function since adding/removing cells works best with three columns, not two, which results in 4 columns of the resulting cells because it has a deleted column and an added column. If you try this locally, you can try those cases and others, such as adding a column.
There was no need to do anything special for the rows when `aline == 0 || bline == 0` so that was removed. This allows the same code to be used for removed or added lines, with the bcell text always being the RightCell, acell text being the LeftCell.
I still added the patch zeripath gave at https://github.com/go-gitea/gitea/issues/16837#issuecomment-913007382 so that just in case for some reason a cell is nil (which shouldn't happen now) it doesn't throw a 500 error, so the user can at least view the raw diff.
Also fixes in the [view.go](https://github.com/go-gitea/gitea/pull/17018/files#diff-43a7f4747c7ba8bff888c9be11affaafd595fd55d27f3333840eb19df9fad393L521) file how if a CSV file is empty (either created empty or if you edit it and remove all contents) it throws a huge 500 error when you then save it (when you view the file). Since we allow creating, saving and pushing empty files, we shouldn't throw an error on an empty CSV file, but just show its empty contents. This doesn't happen if it is a Markdown file or other type of file that is empty.
EDIT: Now handled in the markup/csv renderer code
3 years ago
|
|
|
--color-diff-moved-row-border: #d0e27f;
|
|
|
|
--color-diff-added-row-border: #e6ffed;
|
|
|
|
--color-diff-inactive: #f2f2f2;
|
|
|
|
--color-error-border: #e0b4b4;
|
|
|
|
--color-error-bg: #fff6f6;
|
|
|
|
--color-error-bg-active: #fbb;
|
|
|
|
--color-error-bg-hover: #fdd;
|
|
|
|
--color-error-text: #9f3a38;
|
|
|
|
--color-success-border: #a3c293;
|
|
|
|
--color-success-bg: #fcfff5;
|
|
|
|
--color-success-text: #2c662d;
|
|
|
|
--color-warning-border: #c9ba9b;
|
|
|
|
--color-warning-bg: #fffaf3;
|
|
|
|
--color-warning-text: #573a08;
|
|
|
|
--color-info-border: #a9d5de;
|
|
|
|
--color-info-bg: #f8ffff;
|
|
|
|
--color-info-text: #276f86;
|
|
|
|
--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: #ffffff;
|
|
|
|
--color-text-dark: #080808;
|
|
|
|
--color-text: #212121;
|
|
|
|
--color-text-light: #555555;
|
|
|
|
--color-text-light-1: #6a6a6a;
|
|
|
|
--color-text-light-2: #808080;
|
|
|
|
--color-text-light-3: #a0a0a0;
|
|
|
|
--color-box-header: #f7f7f7;
|
|
|
|
--color-box-body: #ffffff;
|
|
|
|
--color-box-body-highlight: #f8f8f8;
|
|
|
|
--color-footer: #ffffff;
|
|
|
|
--color-timeline: #ececec;
|
|
|
|
--color-input-text: #212121;
|
|
|
|
--color-input-background: #ffffff;
|
|
|
|
--color-input-toggle-background: #dedede;
|
|
|
|
--color-input-border: #dedede;
|
|
|
|
--color-input-border-hover: #cecece;
|
|
|
|
--color-navbar: #f8f8f8;
|
|
|
|
--color-navbar-transparent: #f8f8f800;
|
|
|
|
--color-light: #00000006;
|
|
|
|
--color-light-mimic-enabled: rgba(0, 0, 0, calc(6 / 255 * 222 / 255 / var(--opacity-disabled)));
|
|
|
|
--color-light-border: #0000001d;
|
|
|
|
--color-hover: #0000000c;
|
|
|
|
--color-active: #00000014;
|
|
|
|
--color-menu: #ffffff;
|
|
|
|
--color-card: #ffffff;
|
|
|
|
--color-markup-table-row: #00000008;
|
|
|
|
--color-markup-code-block: #00000010;
|
|
|
|
--color-button: #ffffff;
|
|
|
|
--color-code-bg: #ffffff;
|
|
|
|
--color-code-sidebar-bg: #f5f5f5;
|
|
|
|
--color-shadow: #00000030;
|
|
|
|
--color-secondary-bg: #f4f4f4;
|
|
|
|
--color-expand-button: #d8efff;
|
|
|
|
--color-placeholder-text: #aaa;
|
|
|
|
--color-editor-line-highlight: var(--color-primary-light-6);
|
|
|
|
--color-project-board-bg: var(--color-secondary-light-4);
|
|
|
|
--color-project-board-dark-label: #555555;
|
|
|
|
--color-project-board-light-label: #a6aab5;
|
|
|
|
--color-caret: var(--color-text-dark);
|
|
|
|
--color-reaction-bg: #0000000a;
|
|
|
|
--color-reaction-active-bg: var(--color-primary-alpha-20);
|
|
|
|
--color-tooltip-bg: #000000f0;
|
|
|
|
--color-tooltip-text: #ffffff;
|
|
|
|
--color-header-bar: #ffffff;
|
|
|
|
--color-label-active-bg: #d0d0d0;
|
|
|
|
--color-accent: var(--color-primary-light-1);
|
|
|
|
--color-small-accent: var(--color-primary-light-6);
|
|
|
|
--color-active-line: #fffbdd;
|
|
|
|
|
|
|
|
accent-color: var(--color-accent);
|
|
|
|
color-scheme: light;
|
|
|
|
}
|
|
|
|
|
|
|
|
:root * {
|
|
|
|
--fonts-regular: var(--fonts-override, var(--fonts-proportional)), "Noto Sans", "Liberation Sans", sans-serif, var(--fonts-emoji);
|
|
|
|
}
|
|
|
|
|
|
|
|
textarea {
|
|
|
|
font-family: var(--fonts-regular);
|
|
|
|
}
|
|
|
|
|
|
|
|
pre,
|
|
|
|
code,
|
|
|
|
kbd,
|
|
|
|
samp {
|
|
|
|
font-size: .9em; /* compensate for monospace fonts being usually slightly larger */
|
|
|
|
font-family: var(--fonts-monospace);
|
|
|
|
}
|
|
|
|
|
|
|
|
b,
|
|
|
|
strong,
|
|
|
|
h1,
|
|
|
|
h2,
|
|
|
|
h3,
|
|
|
|
h4,
|
|
|
|
h5,
|
|
|
|
h6 {
|
|
|
|
font-weight: 600;
|
|
|
|
}
|
|
|
|
|
|
|
|
body {
|
|
|
|
color: var(--color-text);
|
|
|
|
background-color: var(--color-body);
|
|
|
|
overflow-y: auto;
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
overflow-wrap: break-word;
|
|
|
|
}
|
|
|
|
|
|
|
|
@supports (overflow: overlay) {
|
|
|
|
body {
|
|
|
|
overflow: overlay;
|
|
|
|
scrollbar-gutter: stable;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
img {
|
|
|
|
border-radius: 3px;
|
|
|
|
}
|
|
|
|
|
|
|
|
table {
|
|
|
|
border-collapse: collapse;
|
|
|
|
}
|
|
|
|
|
|
|
|
details summary {
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
|
|
|
|
details summary > * {
|
|
|
|
display: inline;
|
|
|
|
}
|
|
|
|
|
|
|
|
progress {
|
|
|
|
background: var(--color-secondary-dark-1);
|
|
|
|
border-radius: 6px;
|
|
|
|
border: none;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
progress::-webkit-progress-bar {
|
|
|
|
background: var(--color-secondary-dark-1);
|
|
|
|
}
|
|
|
|
progress::-webkit-progress-value {
|
|
|
|
background-color: var(--color-accent);
|
|
|
|
}
|
|
|
|
progress::-moz-progress-bar {
|
|
|
|
background-color: var(--color-accent);
|
|
|
|
}
|
|
|
|
|
|
|
|
* {
|
|
|
|
scrollbar-color: var(--color-primary) transparent;
|
|
|
|
caret-color: var(--color-caret);
|
|
|
|
}
|
|
|
|
|
|
|
|
::-webkit-scrollbar {
|
|
|
|
width: 10px;
|
|
|
|
height: 10px;
|
|
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
|
|
box-shadow: inset 0 0 0 6px var(--color-primary);
|
|
|
|
border: 2px solid transparent;
|
|
|
|
border-radius: 5px !important;
|
|
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:window-inactive {
|
|
|
|
box-shadow: inset 0 0 0 6px var(--color-primary);
|
|
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
|
|
box-shadow: inset 0 0 0 6px var(--color-primary-dark-2);
|
|
|
|
}
|
|
|
|
::-webkit-scrollbar-corner {
|
|
|
|
background: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
::file-selector-button {
|
|
|
|
border: 1px solid var(--color-light-border);
|
|
|
|
color: var(--color-text-light);
|
|
|
|
background: var(--color-light);
|
|
|
|
border-radius: var(--border-radius);
|
|
|
|
}
|
|
|
|
::file-selector-button:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
::selection {
|
|
|
|
background: var(--color-primary-light-1) !important;
|
|
|
|
color: var(--color-white) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
::placeholder,
|
|
|
|
.ui.dropdown:not(.button) > .default.text,
|
|
|
|
.ui.default.dropdown:not(.button) > .text {
|
|
|
|
color: var(--color-placeholder-text) !important;
|
|
|
|
opacity: 1 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
a,
|
|
|
|
.ui.breadcrumb a {
|
|
|
|
color: var(--color-primary);
|
|
|
|
cursor: pointer;
|
|
|
|
text-decoration-skip-ink: all;
|
|
|
|
}
|
|
|
|
|
|
|
|
a.muted,
|
|
|
|
.muted-links a {
|
|
|
|
color: inherit;
|
|
|
|
}
|
|
|
|
|
|
|
|
a:hover,
|
|
|
|
a.muted:hover,
|
|
|
|
a.muted:hover [class*="color-text"],
|
|
|
|
.muted-links a:hover,
|
|
|
|
.ui.breadcrumb a:hover {
|
|
|
|
color: var(--color-primary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.delete-button,
|
|
|
|
.delete-button:hover {
|
|
|
|
color: var(--color-red);
|
|
|
|
}
|
|
|
|
|
|
|
|
a.label,
|
|
|
|
.repository-menu a,
|
|
|
|
.ui.search .results a,
|
|
|
|
.ui .menu a,
|
|
|
|
.ui.cards a.card,
|
|
|
|
.issue-keyword a,
|
|
|
|
a.commit-statuses-trigger {
|
|
|
|
text-decoration: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.red.labels .label,
|
|
|
|
.ui.ui.ui.red.label,
|
|
|
|
.ui.red.button,
|
|
|
|
.ui.red.buttons .button {
|
|
|
|
background: var(--color-red);
|
|
|
|
}
|
|
|
|
.ui.red.button:hover,
|
|
|
|
.ui.red.buttons .button:hover {
|
|
|
|
background: var(--color-red-light);
|
|
|
|
}
|
|
|
|
.ui.basic.red.buttons .button,
|
|
|
|
.ui.basic.red.button {
|
|
|
|
color: var(--color-red);
|
|
|
|
border-color: var(--color-red);
|
|
|
|
}
|
|
|
|
.ui.basic.red.buttons .button:hover,
|
|
|
|
.ui.basic.red.button:hover {
|
|
|
|
color: var(--color-red-light);
|
|
|
|
border-color: var(--color-red-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.orange.labels .label,
|
|
|
|
.ui.ui.ui.orange.label,
|
|
|
|
.ui.orange.button,
|
|
|
|
.ui.orange.buttons .button {
|
|
|
|
background: var(--color-orange);
|
|
|
|
}
|
|
|
|
.ui.orange.button:hover,
|
|
|
|
.ui.orange.buttons .button:hover {
|
|
|
|
background: var(--color-orange-light);
|
|
|
|
}
|
|
|
|
.ui.basic.orange.buttons .button,
|
|
|
|
.ui.basic.orange.button {
|
|
|
|
color: var(--color-orange);
|
|
|
|
border-color: var(--color-orange);
|
|
|
|
}
|
|
|
|
.ui.basic.orange.buttons .button:hover,
|
|
|
|
.ui.basic.orange.button:hover {
|
|
|
|
color: var(--color-orange-light);
|
|
|
|
border-color: var(--color-orange-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.yellow.labels .label,
|
|
|
|
.ui.ui.ui.yellow.label,
|
|
|
|
.ui.yellow.button,
|
|
|
|
.ui.yellow.buttons .button {
|
|
|
|
background: var(--color-yellow);
|
|
|
|
}
|
|
|
|
.ui.yellow.button:hover,
|
|
|
|
.ui.yellow.buttons .button:hover {
|
|
|
|
background: var(--color-yellow-light);
|
|
|
|
}
|
|
|
|
.ui.basic.yellow.buttons .button,
|
|
|
|
.ui.basic.yellow.button {
|
|
|
|
color: var(--color-yellow);
|
|
|
|
border-color: var(--color-yellow);
|
|
|
|
}
|
|
|
|
.ui.basic.yellow.buttons .button:hover,
|
|
|
|
.ui.basic.yellow.button:hover {
|
|
|
|
color: var(--color-yellow-light);
|
|
|
|
border-color: var(--color-yellow-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.olive.labels .label,
|
|
|
|
.ui.ui.ui.olive.label,
|
|
|
|
.ui.olive.button,
|
|
|
|
.ui.olive.buttons .button {
|
|
|
|
background: var(--color-olive);
|
|
|
|
}
|
|
|
|
.ui.olive.button:hover,
|
|
|
|
.ui.olive.buttons .button:hover {
|
|
|
|
background: var(--color-olive-light);
|
|
|
|
}
|
|
|
|
.ui.basic.olive.buttons .button,
|
|
|
|
.ui.basic.olive.button {
|
|
|
|
color: var(--color-olive);
|
|
|
|
border-color: var(--color-olive);
|
|
|
|
}
|
|
|
|
.ui.basic.olive.buttons .button:hover,
|
|
|
|
.ui.basic.olive.button:hover {
|
|
|
|
color: var(--color-olive-light);
|
|
|
|
border-color: var(--color-olive-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.green.labels .label,
|
|
|
|
.ui.ui.ui.green.label,
|
|
|
|
.ui.green.button,
|
|
|
|
.ui.green.buttons .button {
|
|
|
|
background: var(--color-green);
|
|
|
|
}
|
|
|
|
.ui.green.button:hover,
|
|
|
|
.ui.green.buttons .button:hover {
|
|
|
|
background: var(--color-green-light);
|
|
|
|
}
|
|
|
|
.ui.basic.green.buttons .button,
|
|
|
|
.ui.basic.green.button {
|
|
|
|
color: var(--color-green);
|
|
|
|
border-color: var(--color-green);
|
|
|
|
}
|
|
|
|
.ui.basic.green.buttons .button:hover,
|
|
|
|
.ui.basic.green.button:hover {
|
|
|
|
color: var(--color-green-light);
|
|
|
|
border-color: var(--color-green-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.teal.labels .label,
|
|
|
|
.ui.ui.ui.teal.label,
|
|
|
|
.ui.teal.button,
|
|
|
|
.ui.teal.buttons .button {
|
|
|
|
background: var(--color-teal);
|
|
|
|
}
|
|
|
|
.ui.teal.button:hover,
|
|
|
|
.ui.teal.buttons .button:hover {
|
|
|
|
background: var(--color-teal-light);
|
|
|
|
}
|
|
|
|
.ui.basic.teal.buttons .button,
|
|
|
|
.ui.basic.teal.button {
|
|
|
|
color: var(--color-teal);
|
|
|
|
border-color: var(--color-teal);
|
|
|
|
}
|
|
|
|
.ui.basic.teal.buttons .button:hover,
|
|
|
|
.ui.basic.teal.button:hover {
|
|
|
|
color: var(--color-teal-light);
|
|
|
|
border-color: var(--color-teal-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.blue.labels .label,
|
|
|
|
.ui.ui.ui.blue.label,
|
|
|
|
.ui.blue.button,
|
|
|
|
.ui.blue.buttons .button {
|
|
|
|
background: var(--color-blue);
|
|
|
|
}
|
|
|
|
.ui.blue.button:hover,
|
|
|
|
.ui.blue.buttons .button:hover {
|
|
|
|
background: var(--color-blue-light);
|
|
|
|
}
|
|
|
|
.ui.basic.blue.buttons .button,
|
|
|
|
.ui.basic.blue.button {
|
|
|
|
color: var(--color-blue);
|
|
|
|
border-color: var(--color-blue);
|
|
|
|
}
|
|
|
|
.ui.basic.blue.buttons .button:hover,
|
|
|
|
.ui.basic.blue.button:hover {
|
|
|
|
color: var(--color-blue-light);
|
|
|
|
border-color: var(--color-blue-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.violet.labels .label,
|
|
|
|
.ui.ui.ui.violet.label,
|
|
|
|
.ui.violet.button,
|
|
|
|
.ui.violet.buttons .button {
|
|
|
|
background: var(--color-violet);
|
|
|
|
}
|
|
|
|
.ui.violet.button:hover,
|
|
|
|
.ui.violet.buttons .button:hover {
|
|
|
|
background: var(--color-violet-light);
|
|
|
|
}
|
|
|
|
.ui.basic.violet.buttons .button,
|
|
|
|
.ui.basic.violet.button {
|
|
|
|
color: var(--color-violet);
|
|
|
|
border-color: var(--color-violet);
|
|
|
|
}
|
|
|
|
.ui.basic.violet.buttons .button:hover,
|
|
|
|
.ui.basic.violet.button:hover {
|
|
|
|
color: var(--color-violet-light);
|
|
|
|
border-color: var(--color-violet-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.purple.labels .label,
|
|
|
|
.ui.ui.ui.purple.label,
|
|
|
|
.ui.purple.button,
|
|
|
|
.ui.purple.buttons .button {
|
|
|
|
background: var(--color-purple);
|
|
|
|
}
|
|
|
|
.ui.purple.button:hover,
|
|
|
|
.ui.purple.buttons .button:hover {
|
|
|
|
background: var(--color-purple-light);
|
|
|
|
}
|
|
|
|
.ui.basic.purple.buttons .button,
|
|
|
|
.ui.basic.purple.button {
|
|
|
|
color: var(--color-purple);
|
|
|
|
border-color: var(--color-purple);
|
|
|
|
}
|
|
|
|
.ui.basic.purple.buttons .button:hover,
|
|
|
|
.ui.basic.purple.button:hover {
|
|
|
|
color: var(--color-purple-light);
|
|
|
|
border-color: var(--color-purple-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.pink.labels .label,
|
|
|
|
.ui.ui.ui.pink.label,
|
|
|
|
.ui.pink.button,
|
|
|
|
.ui.pink.buttons .button {
|
|
|
|
background: var(--color-pink);
|
|
|
|
}
|
|
|
|
.ui.pink.button:hover,
|
|
|
|
.ui.pink.buttons .button:hover {
|
|
|
|
background: var(--color-pink-light);
|
|
|
|
}
|
|
|
|
.ui.basic.pink.buttons .button,
|
|
|
|
.ui.basic.pink.button {
|
|
|
|
color: var(--color-pink);
|
|
|
|
border-color: var(--color-pink);
|
|
|
|
}
|
|
|
|
.ui.basic.pink.buttons .button:hover,
|
|
|
|
.ui.basic.pink.button:hover {
|
|
|
|
color: var(--color-pink-light);
|
|
|
|
border-color: var(--color-pink-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.brown.labels .label,
|
|
|
|
.ui.ui.ui.brown.label,
|
|
|
|
.ui.brown.button,
|
|
|
|
.ui.brown.buttons .button {
|
|
|
|
background: var(--color-brown);
|
|
|
|
}
|
|
|
|
.ui.brown.button:hover,
|
|
|
|
.ui.brown.buttons .button:hover {
|
|
|
|
background: var(--color-brown-light);
|
|
|
|
}
|
|
|
|
.ui.basic.brown.buttons .button,
|
|
|
|
.ui.basic.brown.button {
|
|
|
|
color: var(--color-brown);
|
|
|
|
border-color: var(--color-brown);
|
|
|
|
}
|
|
|
|
.ui.basic.brown.buttons .button:hover,
|
|
|
|
.ui.basic.brown.button:hover {
|
|
|
|
color: var(--color-brown-light);
|
|
|
|
border-color: var(--color-brown-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.grey.labels .label,
|
|
|
|
.ui.ui.ui.grey.label,
|
|
|
|
.ui.grey.button,
|
|
|
|
.ui.grey.buttons .button {
|
|
|
|
background: var(--color-grey);
|
|
|
|
}
|
|
|
|
.ui.grey.button:hover,
|
|
|
|
.ui.grey.buttons .button:hover {
|
|
|
|
background: var(--color-grey-light);
|
|
|
|
}
|
|
|
|
.ui.basic.grey.buttons .button,
|
|
|
|
.ui.basic.grey.button {
|
|
|
|
color: var(--color-grey);
|
|
|
|
border-color: var(--color-grey);
|
|
|
|
}
|
|
|
|
.ui.basic.grey.buttons .button:hover,
|
|
|
|
.ui.basic.grey.button:hover {
|
|
|
|
color: var(--color-grey-light);
|
|
|
|
border-color: var(--color-grey-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.black.labels .label,
|
|
|
|
.ui.ui.ui.black.label,
|
|
|
|
.ui.black.button,
|
|
|
|
.ui.black.buttons .button {
|
|
|
|
background: var(--color-black);
|
|
|
|
}
|
|
|
|
.ui.black.button:hover,
|
|
|
|
.ui.black.buttons .button:hover {
|
|
|
|
background: var(--color-black-light);
|
|
|
|
}
|
|
|
|
.ui.basic.black.buttons .button,
|
|
|
|
.ui.basic.black.button {
|
|
|
|
color: var(--color-black);
|
|
|
|
border-color: var(--color-black);
|
|
|
|
}
|
|
|
|
.ui.basic.black.buttons .button:hover,
|
|
|
|
.ui.basic.black.button:hover {
|
|
|
|
color: var(--color-black-light);
|
|
|
|
border-color: var(--color-black-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.negative.buttons .button,
|
|
|
|
.ui.negative.button {
|
|
|
|
background: var(--color-red);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.negative.buttons .button:hover,
|
|
|
|
.ui.negative.button:hover {
|
|
|
|
background: var(--color-red-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.positive.buttons .button,
|
|
|
|
.ui.positive.button {
|
|
|
|
background: var(--color-green);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.positive.buttons .button:hover,
|
|
|
|
.ui.positive.button:hover {
|
|
|
|
background: var(--color-green-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.search > .results {
|
|
|
|
background: var(--color-body);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.search > .results .result {
|
|
|
|
background: var(--color-body);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.search > .results .result .title {
|
|
|
|
color: var(--color-text-dark);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.search > .results .result .image {
|
|
|
|
width: auto;
|
|
|
|
height: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.search > .results .result:hover,
|
|
|
|
.ui.category.search > .results .category .result:hover {
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.unselectable {
|
|
|
|
-webkit-touch-callout: none;
|
|
|
|
-webkit-user-select: none;
|
|
|
|
user-select: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.button {
|
|
|
|
&:extend(.unselectable);
|
|
|
|
}
|
|
|
|
|
|
|
|
.issue-title code {
|
|
|
|
padding: 2px 4px;
|
|
|
|
border-radius: 6px;
|
|
|
|
background-color: var(--color-markup-code-block);
|
|
|
|
}
|
|
|
|
/* try to match button with no icons in height */
|
|
|
|
.icon-button {
|
|
|
|
padding-top: 7.42px !important;
|
|
|
|
padding-bottom: 7.42px !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.breadcrumb a:hover {
|
|
|
|
text-decoration: underline !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.breadcrumb .divider {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.divider:not(.vertical,.horizontal) {
|
|
|
|
border-top-color: var(--color-secondary) !important;
|
|
|
|
border-bottom: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dividing.header {
|
|
|
|
border-bottom-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.page-content {
|
|
|
|
margin-top: 15px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.page-content .header-wrapper,
|
|
|
|
.page-content .new-menu {
|
|
|
|
margin-top: -15px !important;
|
|
|
|
padding-top: 15px !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.input.focus > input,
|
|
|
|
.ui.input > input:focus {
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* currently used for search bar dropdowns in repo search and explore code */
|
|
|
|
.ui.action.input:not([class*="left action"]) > .ui.dropdown.selection {
|
|
|
|
min-width: 10em;
|
|
|
|
|
|
|
|
&:not(:focus,:hover) {
|
|
|
|
border-right-color: transparent;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.action.input:not([class*="left action"]) > input:focus {
|
|
|
|
border-right-color: var(--color-primary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu,
|
|
|
|
.ui.vertical.menu {
|
|
|
|
background: var(--color-menu);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .item {
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
|
|
> .svg {
|
|
|
|
margin-right: .35em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .item > .label {
|
|
|
|
background: var(--color-grey);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.active.label {
|
|
|
|
background: var(--color-label-active-bg);
|
|
|
|
border-color: var(--color-label-active-bg);
|
|
|
|
color: var(--color-text-dark);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.link.menu .item:hover,
|
|
|
|
.ui.menu .dropdown.item:hover,
|
|
|
|
.ui.menu .link.item:hover,
|
|
|
|
.ui.menu a.item:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .active.item,
|
|
|
|
.ui.menu .active.item:hover,
|
|
|
|
.ui.vertical.menu .active.item,
|
|
|
|
.ui.vertical.menu .active.item:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-active);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.link.menu .item:active,
|
|
|
|
.ui.menu .link.item:active,
|
|
|
|
.ui.menu a.item:active {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.ui.menu .item.disabled {
|
|
|
|
color: var(--color-text-light-3);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* slightly more contrast for filters on issue list */
|
|
|
|
.ui.ui.menu .dropdown.item.disabled {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu {
|
|
|
|
background: var(--color-menu);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu > .header:not(.ui) {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu > .item {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu > .item:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu .active.item {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-active);
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* fix misaligned images in webhook dropdown */
|
|
|
|
.ui.dropdown .menu > .item > img {
|
|
|
|
margin-top: -.25rem;
|
|
|
|
margin-bottom: -.25rem;
|
|
|
|
}
|
|
|
|
.ui.dropdown .menu > .item > svg.img {
|
|
|
|
margin-right: .78571429rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.selection.dropdown .menu > .item {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.selection.visible.dropdown > .text:not(.default) {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown.selected,
|
|
|
|
.ui.dropdown .menu .selected.item {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .ui.dropdown .menu > .selected.item {
|
|
|
|
color: var(--color-text) !important;
|
|
|
|
background: var(--color-hover) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu > .message:not(.ui) {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.list .list > .item .header,
|
|
|
|
.ui.list > .item .header {
|
|
|
|
color: var(--color-text-dark);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.list .list > .item > .content,
|
|
|
|
.ui.list > .item > .content {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.list .list > .item .description,
|
|
|
|
.ui.list > .item .description {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.menu .dropdown.item:hover,
|
|
|
|
.ui.secondary.menu .link.item:hover,
|
|
|
|
.ui.secondary.menu a.item:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.menu .active.item,
|
|
|
|
.ui.secondary.menu .active.item:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-active);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.menu.tight .item {
|
|
|
|
padding-left: .85714286em;
|
|
|
|
padding-right: .85714286em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .dropdown.item .menu {
|
|
|
|
background: var(--color-menu);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .ui.dropdown .menu > .item {
|
|
|
|
color: var(--color-text) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .ui.dropdown .menu > .item:hover {
|
|
|
|
color: var(--color-text) !important;
|
|
|
|
background: var(--color-hover) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu .ui.dropdown .menu > .active.item {
|
|
|
|
color: var(--color-text) !important;
|
|
|
|
background: var(--color-active) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.message {
|
|
|
|
background: var(--color-box-body);
|
|
|
|
color: var(--color-text);
|
|
|
|
box-shadow: none !important;
|
|
|
|
border: 1px solid var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.info.message,
|
|
|
|
.ui.attached.info.message,
|
|
|
|
.ui.blue.message,
|
|
|
|
.ui.attached.blue.message {
|
|
|
|
background: var(--color-info-bg);
|
|
|
|
color: var(--color-info-text);
|
|
|
|
border-color: var(--color-info-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.success.message,
|
|
|
|
.ui.attached.success.message,
|
|
|
|
.ui.positive.message,
|
|
|
|
.ui.attached.positive.message {
|
|
|
|
background: var(--color-success-bg);
|
|
|
|
color: var(--color-success-text);
|
|
|
|
border-color: var(--color-success-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.error.message,
|
|
|
|
.ui.attached.error.message,
|
|
|
|
.ui.red.message,
|
|
|
|
.ui.attached.red.message,
|
|
|
|
.ui.negative.message,
|
|
|
|
.ui.attached.negative.message {
|
|
|
|
background: var(--color-error-bg);
|
|
|
|
color: var(--color-error-text);
|
|
|
|
border-color: var(--color-error-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.warning.message,
|
|
|
|
.ui.attached.warning.message,
|
|
|
|
.ui.yellow.message,
|
|
|
|
.ui.attached.yellow.message {
|
|
|
|
background: var(--color-warning-bg);
|
|
|
|
color: var(--color-warning-text);
|
|
|
|
border-color: var(--color-warning-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.error.header {
|
|
|
|
background: var(--color-error-bg) !important;
|
|
|
|
color: var(--color-error-text) !important;
|
|
|
|
border-color: var(--color-error-border) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.error.segment {
|
|
|
|
border-color: var(--color-error-border) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.warning.header {
|
|
|
|
background: var(--color-warning-bg) !important;
|
|
|
|
color: var(--color-warning-text) !important;
|
|
|
|
border-color: var(--color-warning-border) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.warning.segment {
|
|
|
|
border-color: var(--color-warning-border) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.selection.active.dropdown,
|
|
|
|
.ui.selection.active.dropdown:hover,
|
|
|
|
.ui.selection.active.dropdown .menu,
|
|
|
|
.ui.selection.active.dropdown:hover .menu {
|
|
|
|
border-color: var(--color-primary-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.selection.dropdown .menu {
|
|
|
|
margin: 0 -1.25px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.pointing.dropdown > .menu:not(.hidden)::after {
|
|
|
|
background: var(--color-box-body);
|
|
|
|
box-shadow: -1px -1px 0 0 var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card,
|
|
|
|
.ui.card {
|
|
|
|
background: var(--color-card);
|
|
|
|
border: 1px solid var(--color-secondary);
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card > .content,
|
|
|
|
.ui.card > .content {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card > .extra,
|
|
|
|
.ui.card > .extra,
|
|
|
|
.ui.cards > .card > .extra a:not(.ui),
|
|
|
|
.ui.card > .extra a:not(.ui) {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card > .extra a:not(.ui):hover,
|
|
|
|
.ui.card > .extra a:not(.ui):hover {
|
|
|
|
color: var(--color-primary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card > .content > .header,
|
|
|
|
.ui.card > .content > .header {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card > .content > .description,
|
|
|
|
.ui.card > .content > .description {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card .meta > a:not(.ui),
|
|
|
|
.ui.card .meta > a:not(.ui) {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card .meta > a:not(.ui):hover,
|
|
|
|
.ui.card .meta > a:not(.ui):hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards a.card:hover,
|
|
|
|
.ui.link.cards .card:not(.icon):hover,
|
|
|
|
a.ui.card:hover,
|
|
|
|
.ui.link.card:hover {
|
|
|
|
border: 1px solid var(--color-secondary);
|
|
|
|
background: var(--color-card);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.cards > .card > .extra,
|
|
|
|
.ui.card > .extra {
|
|
|
|
color: var(--color-text);
|
|
|
|
border-top-color: var(--color-secondary-light-1) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.comments .comment .text {
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.comments .comment .text,
|
|
|
|
.ui.comments .comment .author {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.comments .comment a.author:hover {
|
|
|
|
color: var(--color-primary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.comments .comment .metadata {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.comments .comment .actions a {
|
|
|
|
color: var(--color-text-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.comments .comment .actions a.active,
|
|
|
|
.ui.comments .comment .actions a:hover {
|
|
|
|
color: var(--color-primary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.attached.table {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.table {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-box-body);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.table th,
|
|
|
|
.ui.table td {
|
|
|
|
transition: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.table > tr > td,
|
|
|
|
.ui.table > tbody > tr > td {
|
|
|
|
border-top-color: var(--color-secondary-alpha-50);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.ui.ui.ui.table tr.active,
|
|
|
|
.ui.ui.table td.active {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-active);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.ui.selectable.table > tbody > tr:hover,
|
|
|
|
.ui.table tbody tr td.selectable:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background-color: var(--color-secondary-alpha-40);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.ui.ui.ui.table tr.grey:not(.marked),
|
|
|
|
.ui.ui.table td.grey:not(.marked) {
|
|
|
|
background: var(--color-body);
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.table > thead > tr > th {
|
|
|
|
background: var(--color-box-header);
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.modal {
|
|
|
|
background: var(--color-body);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.modal > .header {
|
|
|
|
color: var(--color-text-dark);
|
|
|
|
background: var(--color-secondary-bg);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
border-top-left-radius: var(--border-radius);
|
|
|
|
border-top-right-radius: var(--border-radius);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.modal > .content {
|
|
|
|
background: var(--color-body);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.modal > .actions {
|
|
|
|
background: var(--color-secondary-bg);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.modal > .close.inside,
|
|
|
|
.ui.fullscreen.modal > .close {
|
|
|
|
top: 11px; /* align modal close icon, for example admin notices */
|
|
|
|
color: var(--body-color);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.table > tbody > tr {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.avatar img,
|
|
|
|
.ui.avatar svg,
|
|
|
|
.ui.avatar.img,
|
|
|
|
.ui.cards > .card img.avatar,
|
|
|
|
.ui.cards > .card .avatar img,
|
|
|
|
.ui.card img.avatar,
|
|
|
|
.ui.card .avatar img {
|
|
|
|
border-radius: var(--border-radius);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.divided.list > .item {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.link.list .item,
|
|
|
|
.ui.link.list a.item,
|
|
|
|
.ui.link.list .item a:not(.ui) {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.link.list.list a.item:hover,
|
|
|
|
.ui.link.list.list .item a:not(.ui):hover,
|
|
|
|
.ui.link.list.list a.item:active,
|
|
|
|
.ui.link.list.list .item a:not(.ui):active {
|
|
|
|
color: var(--color-text-dark);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.error.message .header,
|
|
|
|
.ui.warning.message .header {
|
|
|
|
color: inherit;
|
|
|
|
filter: saturate(2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.dont-break-out {
|
|
|
|
overflow-wrap: break-word;
|
|
|
|
word-wrap: break-word;
|
|
|
|
word-break: break-all;
|
|
|
|
hyphens: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.full.height {
|
|
|
|
flex-grow: 1;
|
|
|
|
padding-bottom: 80px;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* enable fluid page widths for medium size viewports */
|
|
|
|
@media @mediaMdAndUp and @mediaLgAndDown {
|
|
|
|
.ui.ui.ui.container:not(.fluid) {
|
|
|
|
width: calc(100vw - 3em);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.following.bar {
|
|
|
|
z-index: 900;
|
|
|
|
left: 0;
|
|
|
|
margin: 0 !important;
|
|
|
|
|
|
|
|
&.light {
|
|
|
|
background: var(--color-header-bar);
|
|
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.column .menu {
|
|
|
|
margin-top: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.top.menu a.item.brand {
|
|
|
|
padding-left: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.top.menu a.item:hover,
|
|
|
|
.top.menu .dropdown.item:hover,
|
|
|
|
.top.menu .dropdown.item.active {
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
.top.menu a.item:hover {
|
|
|
|
color: rgba(0, 0, 0, .45);
|
|
|
|
}
|
|
|
|
|
|
|
|
.top.menu .menu {
|
|
|
|
z-index: 900;
|
|
|
|
}
|
|
|
|
|
|
|
|
.fitted .svg {
|
|
|
|
margin-right: 0;
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
|
|
|
|
|
|
|
.searchbox {
|
|
|
|
background-color: var(--color-input-background) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.text .svg {
|
|
|
|
width: 16px;
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
#navbar {
|
|
|
|
width: 100vw;
|
|
|
|
min-height: 52px;
|
|
|
|
padding: 0 .5rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
#navbar .brand {
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#navbar .dropdown .avatar {
|
|
|
|
margin-right: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
@media @mediaSm {
|
|
|
|
#navbar:not(.shown) > *:not(:first-child) {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.right.stackable.menu {
|
|
|
|
// responsive fix: this makes sure that the right menu when the page
|
|
|
|
// is on mobile view will have elements stacked on top of each other.
|
|
|
|
// no, stackable won't work on right menus.
|
|
|
|
margin-left: auto;
|
|
|
|
display: flex;
|
|
|
|
align-items: inherit;
|
|
|
|
flex-direction: inherit;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.pagination.menu .active.item {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-active);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.form .field > .selection.dropdown > .dropdown.icon {
|
|
|
|
height: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.loading.segment::before,
|
|
|
|
.ui.loading.form::before {
|
|
|
|
background: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.loading.form > *,
|
|
|
|
.ui.loading.segment > * {
|
|
|
|
opacity: .35;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.form .fields.error .field textarea,
|
|
|
|
.ui.form .fields.error .field select,
|
|
|
|
.ui.form .fields.error .field input:not([type]),
|
|
|
|
.ui.form .fields.error .field input[type="date"],
|
|
|
|
.ui.form .fields.error .field input[type="datetime-local"],
|
|
|
|
.ui.form .fields.error .field input[type="email"],
|
|
|
|
.ui.form .fields.error .field input[type="number"],
|
|
|
|
.ui.form .fields.error .field input[type="password"],
|
|
|
|
.ui.form .fields.error .field input[type="search"],
|
|
|
|
.ui.form .fields.error .field input[type="tel"],
|
|
|
|
.ui.form .fields.error .field input[type="time"],
|
|
|
|
.ui.form .fields.error .field input[type="text"],
|
|
|
|
.ui.form .fields.error .field input[type="file"],
|
|
|
|
.ui.form .fields.error .field input[type="url"],
|
|
|
|
.ui.form .fields.error .field .ui.dropdown,
|
|
|
|
.ui.form .fields.error .field .ui.dropdown .item,
|
|
|
|
.ui.form .field.error .ui.dropdown,
|
|
|
|
.ui.form .field.error .ui.dropdown .text,
|
|
|
|
.ui.form .field.error .ui.dropdown .item,
|
|
|
|
.ui.form .field.error textarea,
|
|
|
|
.ui.form .field.error select,
|
|
|
|
.ui.form .field.error input:not([type]),
|
|
|
|
.ui.form .field.error input[type="date"],
|
|
|
|
.ui.form .field.error input[type="datetime-local"],
|
|
|
|
.ui.form .field.error input[type="email"],
|
|
|
|
.ui.form .field.error input[type="number"],
|
|
|
|
.ui.form .field.error input[type="password"],
|
|
|
|
.ui.form .field.error input[type="search"],
|
|
|
|
.ui.form .field.error input[type="tel"],
|
|
|
|
.ui.form .field.error input[type="time"],
|
|
|
|
.ui.form .field.error input[type="text"],
|
|
|
|
.ui.form .field.error input[type="file"],
|
|
|
|
.ui.form .field.error input[type="url"],
|
|
|
|
.ui.form .field.error select:focus,
|
|
|
|
.ui.form .field.error input:not([type]):focus,
|
|
|
|
.ui.form .field.error input[type="date"]:focus,
|
|
|
|
.ui.form .field.error input[type="datetime-local"]:focus,
|
|
|
|
.ui.form .field.error input[type="email"]:focus,
|
|
|
|
.ui.form .field.error input[type="number"]:focus,
|
|
|
|
.ui.form .field.error input[type="password"]:focus,
|
|
|
|
.ui.form .field.error input[type="search"]:focus,
|
|
|
|
.ui.form .field.error input[type="tel"]:focus,
|
|
|
|
.ui.form .field.error input[type="time"]:focus,
|
|
|
|
.ui.form .field.error input[type="text"]:focus,
|
|
|
|
.ui.form .field.error input[type="file"]:focus,
|
|
|
|
.ui.form .field.error input[type="url"]:focus {
|
|
|
|
background-color: var(--color-error-bg);
|
|
|
|
border-color: var(--color-error-border);
|
|
|
|
color: var(--color-error-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.form .fields.error .field .ui.dropdown,
|
|
|
|
.ui.form .field.error .ui.dropdown,
|
|
|
|
.ui.form .fields.error .field .ui.dropdown:hover,
|
|
|
|
.ui.form .field.error .ui.dropdown:hover {
|
|
|
|
border-color: var(--color-error-border) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
|
|
|
|
.ui.form .field.error .ui.dropdown .menu .item:hover {
|
|
|
|
background-color: var(--color-error-bg-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.form .fields.error .field .ui.dropdown .menu .active.item,
|
|
|
|
.ui.form .field.error .ui.dropdown .menu .active.item {
|
|
|
|
background-color: var(--color-error-bg-active) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.form .fields.error .dropdown .menu,
|
|
|
|
.ui.form .field.error .dropdown .menu {
|
|
|
|
border-color: var(--color-error-border) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
// A fix for text visibility issue in Chrome autofill in dark mode.
|
|
|
|
// It's a problem from Formatic UI, and this rule overrides it.
|
|
|
|
.ui.form .field.field input:-webkit-autofill {
|
|
|
|
-webkit-text-fill-color: var(--color-black) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.loading.loading.input > i.icon svg {
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.text.primary { color: var(--color-primary) !important; }
|
|
|
|
.text.red { color: var(--color-red) !important; }
|
|
|
|
.text.orange { color: var(--color-orange) !important; }
|
|
|
|
.text.yellow { color: var(--color-yellow) !important; }
|
|
|
|
.text.olive { color: var(--color-olive) !important; }
|
|
|
|
.text.green { color: var(--color-green) !important; }
|
|
|
|
.text.teal { color: var(--color-teal) !important; }
|
|
|
|
.text.blue { color: var(--color-blue) !important; }
|
|
|
|
.text.violet { color: var(--color-violet) !important; }
|
|
|
|
.text.purple { color: var(--color-purple) !important; }
|
|
|
|
.text.pink { color: var(--color-pink) !important; }
|
|
|
|
.text.brown { color: var(--color-brown) !important; }
|
|
|
|
.text.black { color: var(--color-text) !important; }
|
|
|
|
.text.grey { color: var(--color-text-light) !important; }
|
|
|
|
.text.light.grey { color: var(--color-grey-light) !important; }
|
|
|
|
.text.gold { color: var(--color-gold) !important; }
|
|
|
|
|
|
|
|
.ui {
|
|
|
|
&.left:not(.action) {
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.right:not(.action) {
|
|
|
|
float: right;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.menu .item {
|
|
|
|
user-select: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.container {
|
|
|
|
&.fluid {
|
|
|
|
&.padded {
|
|
|
|
padding: 0 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&.form {
|
|
|
|
.ui.button {
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&.floating.label {
|
|
|
|
z-index: 10;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.transparent.label {
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.menu,
|
|
|
|
&.vertical.menu,
|
|
|
|
&.segment {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Override semantic selector '.ui.menu:not(.vertical) .item > .button' */
|
|
|
|
/* This fixes the commit graph button on the commits page */
|
|
|
|
|
|
|
|
.menu:not(.vertical) .item > .button.compact {
|
|
|
|
padding: .58928571em 1.125em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.menu:not(.vertical) .item > .button.small {
|
|
|
|
font-size: .92857143rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.menu .ui.dropdown.item .menu .item {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.dropdown .menu > .item > .floating.label {
|
|
|
|
z-index: 11;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.dropdown .menu .menu > .item > .floating.label {
|
|
|
|
z-index: 21;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.dropdown .menu > .header {
|
|
|
|
font-size: .8em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.text {
|
|
|
|
&.left {
|
|
|
|
text-align: left !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.right {
|
|
|
|
text-align: right !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.small {
|
|
|
|
font-size: .75em;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.normal {
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.italic {
|
|
|
|
font-style: italic;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.truncate {
|
|
|
|
overflow: hidden;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
white-space: nowrap;
|
|
|
|
display: inline-block;
|
|
|
|
}
|
Allow cross-repository dependencies on issues (#7901)
* in progress changes for #7405, added ability to add cross-repo dependencies
* removed unused repolink var
* fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes
* reverted removal of string in local files becasue these are done via crowdin, not updated manually
* removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review
* changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result
* simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository
* made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line)
* replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard
* some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies
* added Name to the RepositoryMeta struct
* updated swagger doc
* fixed total count for link header on SearchIssues
* fixed indentation
* fixed aligment of remove icon on dependencies in issue sidebar
* removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block)
* reverting .css change, somehow missed or forgot that less is used
* updated less file and generated css; updated sidebar template with styles to line up delete and issue index
* added ordering to the blocked by/depends on queries
* fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository)
* re-applied my swagger changes after merge
* fixed split string condition in issue search
* changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter
* when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled
* updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here
* fixed incorrect setting of user id parameter in search repos call
5 years ago
|
|
|
|
|
|
|
&.thin {
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
Allow cross-repository dependencies on issues (#7901)
* in progress changes for #7405, added ability to add cross-repo dependencies
* removed unused repolink var
* fixed query that was breaking ci tests; fixed check in issue dependency add so that the id of the issue and dependency is checked rather than the indexes
* reverted removal of string in local files becasue these are done via crowdin, not updated manually
* removed 'Select("issue.*")' from getBlockedByDependencies and getBlockingDependencies based on comments in PR review
* changed getBlockedByDependencies and getBlockingDependencies to use a more xorm-like query, also updated the sidebar as a result
* simplified the getBlockingDependencies and getBlockedByDependencies methods; changed the sidebar to show the dependencies in a different format where you can see the name of the repository
* made some changes to the issue view in the dependencies (issue name on top, repo full name on separate line). Change view of issue in the dependency search results (also showing the full repo name on separate line)
* replace call to FindUserAccessibleRepoIDs with SearchRepositoryByName. The former was hardcoded to use isPrivate = false on the repo search, but this code needed it to be true. The SearchRepositoryByName method is used more in the code including on the user's dashboard
* some more tweaks to the layout of the issues when showing dependencies and in the search box when you add new dependencies
* added Name to the RepositoryMeta struct
* updated swagger doc
* fixed total count for link header on SearchIssues
* fixed indentation
* fixed aligment of remove icon on dependencies in issue sidebar
* removed unnecessary nil check (unnecessary because issue.loadRepo is called prior to this block)
* reverting .css change, somehow missed or forgot that less is used
* updated less file and generated css; updated sidebar template with styles to line up delete and issue index
* added ordering to the blocked by/depends on queries
* fixed sorting in issue dependency search and the depends on/blocks views to show issues from the current repo first, then by created date descending; added a "all cross repository dependencies" setting to allow this feature to be turned off, if turned off, the issue dependency search will work the way it did before (restricted to the current repository)
* re-applied my swagger changes after merge
* fixed split string condition in issue search
* changed ALLOW_CROSS_REPOSITORY_DEPENDENCIES description to sound more global than just the issue dependency search; returning 400 in the cross repo issue search api method if not enabled; fixed bug where the issue count did not respect the state parameter
* when adding a dependency to an issue, added a check to make sure the issue and dependency are in the same repo if cross repo dependencies is not enabled
* updated sortIssuesSession call in PullRequests, another commit moved this method from pull.go to pull_list.go so I had to re-apply my change here
* fixed incorrect setting of user id parameter in search repos call
5 years ago
|
|
|
|
|
|
|
&.middle {
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.message {
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
.message > ul {
|
|
|
|
margin-left: auto;
|
|
|
|
margin-right: auto;
|
|
|
|
display: table;
|
|
|
|
text-align: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header > i + .content {
|
|
|
|
padding-left: .75rem;
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
|
|
|
|
|
|
|
.info {
|
|
|
|
&.segment {
|
|
|
|
&.top {
|
|
|
|
h3,
|
|
|
|
h4 {
|
|
|
|
margin-top: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
h3:last-child {
|
|
|
|
margin-top: 4px;
|
|
|
|
}
|
|
|
|
|
|
|
|
> :last-child {
|
|
|
|
margin-bottom: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.normal.header {
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
|
|
|
|
.form {
|
|
|
|
.autofill-dummy {
|
|
|
|
position: absolute;
|
|
|
|
width: 1px;
|
|
|
|
height: 1px;
|
|
|
|
overflow: hidden;
|
|
|
|
z-index: -10000;
|
|
|
|
}
|
|
|
|
.sub.field {
|
|
|
|
margin-left: 25px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.sha.label {
|
|
|
|
font-family: var(--fonts-monospace);
|
|
|
|
font-size: 13px;
|
|
|
|
padding: 6px 10px 4px;
|
|
|
|
font-weight: normal;
|
|
|
|
margin: 0 6px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.button.copy-commit-sha {
|
|
|
|
border: 1px solid var(--color-light-border);
|
|
|
|
margin-right: 3px;
|
|
|
|
padding: 6px 6px 4px;
|
|
|
|
background: var(--color-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.button.truncate {
|
|
|
|
display: inline-block;
|
|
|
|
max-width: 100%;
|
|
|
|
overflow: hidden;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
vertical-align: top;
|
|
|
|
white-space: nowrap;
|
|
|
|
margin-right: 6px;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.status.buttons {
|
|
|
|
.svg {
|
|
|
|
margin-right: 4px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&.inline.delete-button {
|
|
|
|
padding: 8px 15px;
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
|
|
|
|
.background {
|
|
|
|
&.red {
|
|
|
|
background-color: var(--color-red) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.blue {
|
|
|
|
background-color: var(--color-blue) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.black {
|
|
|
|
background-color: var(--color-black) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.grey {
|
|
|
|
background-color: var(--color-grey) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.light.grey {
|
|
|
|
background-color: var(--color-grey) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.green {
|
|
|
|
background-color: var(--color-green) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.purple {
|
|
|
|
background-color: var(--color-purple) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.yellow {
|
|
|
|
background-color: var(--color-yellow) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.orange {
|
|
|
|
background-color: var(--color-orange) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.gold {
|
|
|
|
background-color: var(--color-gold) !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.migrate {
|
|
|
|
color: var(--color-text-light-2) !important;
|
|
|
|
|
|
|
|
a {
|
|
|
|
color: var(--color-text-light) !important;
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
color: var(--color-text) !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.border {
|
|
|
|
border: 1px solid;
|
|
|
|
&.red {
|
|
|
|
border-color: var(--color-red) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.blue {
|
|
|
|
border-color: var(--color-blue) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.black {
|
|
|
|
border-color: var(--color-black) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.grey {
|
|
|
|
border-color: var(--color-grey) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.light.grey {
|
|
|
|
border-color: var(--color-grey) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.green {
|
|
|
|
border-color: var(--color-green) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.purple {
|
|
|
|
border-color: var(--color-purple) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.yellow {
|
|
|
|
border-color: var(--color-yellow) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.orange {
|
|
|
|
border-color: var(--color-orange) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.gold {
|
|
|
|
border-color: var(--color-gold) !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.branch-tag-choice {
|
|
|
|
line-height: 20px;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.pagination.menu {
|
|
|
|
@media @mediaSm {
|
|
|
|
.item:not(.active,.navigation),
|
|
|
|
.item.navigation span.navigation_label {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&.narrow .item {
|
|
|
|
padding-left: 8px;
|
|
|
|
padding-right: 8px;
|
|
|
|
min-width: 1em;
|
|
|
|
text-align: center;
|
|
|
|
.icon {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* modal svg icons, copied from fomantic except width and height */
|
|
|
|
&.icon.header svg {
|
|
|
|
width: 3em;
|
|
|
|
height: 3em;
|
|
|
|
float: none;
|
|
|
|
display: block;
|
|
|
|
line-height: 1;
|
|
|
|
padding: 0;
|
|
|
|
margin: 0 auto .5rem;
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* center text in fomantic modal dialogs */
|
|
|
|
&.modal > .content {
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.floating.dropdown {
|
|
|
|
.overflow.menu {
|
|
|
|
.scrolling.menu.items {
|
|
|
|
border-radius: 0 !important;
|
|
|
|
box-shadow: none !important;
|
|
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.user-menu > .item {
|
|
|
|
width: 100%;
|
|
|
|
border-radius: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.scrolling.menu {
|
|
|
|
.item.selected {
|
|
|
|
font-weight: 600 !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .scrolling.menu {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.color-preview {
|
|
|
|
display: inline-block;
|
|
|
|
margin-left: .4em;
|
|
|
|
height: .67em;
|
|
|
|
width: .67em;
|
|
|
|
border-radius: .15em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.attention-icon {
|
|
|
|
vertical-align: text-top;
|
|
|
|
}
|
|
|
|
|
|
|
|
.attention-note {
|
|
|
|
font-weight: unset;
|
|
|
|
color: var(--color-info-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.attention-warning {
|
|
|
|
font-weight: unset;
|
|
|
|
color: var(--color-warning-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
footer {
|
|
|
|
background-color: var(--color-footer);
|
|
|
|
border-top: 1px solid var(--color-secondary);
|
|
|
|
width: 100%;
|
|
|
|
flex-basis: 40px;
|
|
|
|
color: var(--color-text-light);
|
|
|
|
|
|
|
|
.container {
|
|
|
|
width: 100vw !important;
|
|
|
|
padding: 0 .5rem;
|
|
|
|
max-width: calc(100vw - 1rem) !important;
|
|
|
|
|
|
|
|
.links > * {
|
|
|
|
border-left: 1px solid var(--color-secondary-dark-1);
|
|
|
|
padding-left: 8px;
|
|
|
|
margin-left: 5px;
|
|
|
|
|
|
|
|
&:first-child {
|
|
|
|
border-left: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.language {
|
|
|
|
.menu {
|
|
|
|
max-height: 500px;
|
|
|
|
overflow-y: auto;
|
|
|
|
margin-bottom: 7px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.svg {
|
|
|
|
margin-right: .15em;
|
|
|
|
vertical-align: top;
|
|
|
|
margin-top: calc(2em - 16px);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui {
|
|
|
|
&.left,
|
|
|
|
&.right {
|
Implement actions (#21937)
Close #13539.
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### ⚠️ Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
- https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2 years ago
|
|
|
line-height: 39px; // there is a border-top on the footer, so make the line-height 1px less
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.hide {
|
|
|
|
display: none;
|
|
|
|
|
|
|
|
&.show-outdated {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.hide-outdated {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.center:not(.popup) {
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Conditional display
|
|
|
|
@media @mediaMdAndUp {
|
|
|
|
.mobile-only,
|
|
|
|
.ui.button.mobile-only {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
// has the same behaviour of sr-only, hiding the content for
|
|
|
|
// non-screenreaders, but is shown on mobile devices.
|
|
|
|
.sr-mobile-only {
|
|
|
|
.sr-only();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@media @mediaSm {
|
|
|
|
.not-mobile {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Accessibility
|
|
|
|
.sr-only {
|
|
|
|
position: absolute;
|
|
|
|
width: 1px;
|
|
|
|
height: 1px;
|
|
|
|
padding: 0;
|
|
|
|
margin: -1px;
|
|
|
|
overflow: hidden;
|
|
|
|
clip: rect(0, 0, 0, 0);
|
|
|
|
border: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sr-only-focusable:active,
|
|
|
|
.sr-only-focusable:focus {
|
|
|
|
position: static;
|
|
|
|
width: auto;
|
|
|
|
height: auto;
|
|
|
|
margin: 0;
|
|
|
|
overflow: visible;
|
|
|
|
clip: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
@media @mediaMd {
|
|
|
|
.ui.container {
|
|
|
|
width: 95%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu {
|
|
|
|
margin-bottom: 15px;
|
|
|
|
background: var(--color-navbar);
|
|
|
|
border-bottom: 1px solid var(--color-secondary) !important;
|
|
|
|
overflow: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu .new-menu-inner {
|
|
|
|
display: flex;
|
|
|
|
margin-left: auto;
|
|
|
|
margin-right: auto;
|
|
|
|
overflow-x: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu::after {
|
|
|
|
position: absolute;
|
|
|
|
display: block;
|
|
|
|
background: linear-gradient(to right, var(--color-navbar-transparent), var(--color-navbar) 100%);
|
|
|
|
content: '';
|
|
|
|
right: 0;
|
|
|
|
height: 39px;
|
|
|
|
width: 60px;
|
|
|
|
visibility: visible;
|
|
|
|
pointer-events: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu.shadow-body::after {
|
|
|
|
background: linear-gradient(to right, transparent, var(--color-body) 100%);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu .item {
|
|
|
|
margin: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
@media @mediaSm {
|
|
|
|
.ui.menu.new-menu .item {
|
|
|
|
width: auto !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu .item:last-child {
|
|
|
|
padding-right: 30px !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu::-webkit-scrollbar {
|
|
|
|
height: 6px;
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu::-webkit-scrollbar-track {
|
|
|
|
background: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu::-webkit-scrollbar-thumb {
|
|
|
|
box-shadow: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.menu.new-menu:hover::-webkit-scrollbar {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
[v-cloak] {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.repos-search {
|
|
|
|
padding-bottom: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.repos-filter {
|
|
|
|
margin-top: 0 !important;
|
|
|
|
border-bottom-width: 0 !important;
|
|
|
|
margin-bottom: 2px !important;
|
|
|
|
justify-content: space-evenly;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.pointing.menu.repos-filter .item {
|
|
|
|
padding-left: 4.5px;
|
|
|
|
padding-right: 4.5px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.repo-title {
|
|
|
|
font-size: 1.5rem;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
flex: 1;
|
|
|
|
word-break: break-all;
|
|
|
|
color: var(--color-text-light);
|
|
|
|
|
|
|
|
.avatar {
|
|
|
|
width: 32px !important;
|
|
|
|
height: 32px !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.labels {
|
|
|
|
margin-left: .5rem;
|
|
|
|
|
|
|
|
> * + * {
|
|
|
|
margin-left: .5rem;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.repo-icon {
|
|
|
|
display: inline-block;
|
|
|
|
}
|
|
|
|
|
|
|
|
.activity-bar-graph {
|
|
|
|
background-color: var(--color-primary);
|
|
|
|
color: var(--color-primary-contrast);
|
|
|
|
}
|
|
|
|
|
|
|
|
.activity-bar-graph-alt {
|
|
|
|
color: var(--color-primary-contrast);
|
|
|
|
}
|
|
|
|
|
|
|
|
.archived-icon {
|
|
|
|
color: var(--color-secondary-dark-2) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.oauth2-authorize-application-box {
|
|
|
|
margin-top: 3em !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* multiple radio or checkboxes as inline element */
|
|
|
|
.inline-grouped-list {
|
|
|
|
display: inline-block;
|
|
|
|
vertical-align: top;
|
|
|
|
|
|
|
|
> .ui {
|
|
|
|
display: block;
|
|
|
|
margin-top: 5px;
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
|
|
&:first-child {
|
|
|
|
margin-top: 1px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
i.icons .icon:first-child {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
i.icon.centerlock {
|
|
|
|
top: 1em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.label {
|
|
|
|
padding: .3em .5em;
|
|
|
|
background: var(--color-light);
|
|
|
|
color: var(--color-text-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.labels a.label:hover,
|
|
|
|
a.ui.label:hover {
|
|
|
|
background: var(--color-hover);
|
|
|
|
border-color: var(--color-hover);
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.label > .detail .icons {
|
|
|
|
margin-right: .25em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.label > .detail .icons .icon {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-blame-btn {
|
|
|
|
padding-left: 10px;
|
|
|
|
padding-right: 10px;
|
|
|
|
text-align: right !important;
|
|
|
|
background-color: var(--color-code-sidebar-bg);
|
|
|
|
width: 2%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-num {
|
|
|
|
&:extend(.unselectable);
|
|
|
|
padding-left: 10px;
|
|
|
|
padding-right: 10px;
|
|
|
|
text-align: right !important;
|
|
|
|
color: var(--color-text-light-1);
|
|
|
|
width: 1%;
|
|
|
|
font-family: var(--fonts-monospace);
|
|
|
|
|
|
|
|
span {
|
|
|
|
&.bottom-line {
|
|
|
|
&::after {
|
|
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
content: attr(data-line-number);
|
|
|
|
line-height: 20px !important;
|
|
|
|
padding: 0 10px;
|
|
|
|
cursor: pointer;
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-type-marker {
|
|
|
|
vertical-align: top;
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-num,
|
|
|
|
.lines-code {
|
|
|
|
font-size: 12px;
|
|
|
|
font-family: var(--fonts-monospace);
|
|
|
|
line-height: 20px;
|
|
|
|
padding-top: 0;
|
|
|
|
padding-bottom: 0;
|
|
|
|
vertical-align: top;
|
|
|
|
|
|
|
|
pre,
|
|
|
|
ol {
|
|
|
|
background-color: inherit;
|
|
|
|
margin: 0;
|
|
|
|
padding: 0 !important;
|
|
|
|
|
|
|
|
li {
|
|
|
|
display: block;
|
|
|
|
width: calc(100% - 1ch);
|
|
|
|
padding-left: 1ch;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-escape {
|
|
|
|
width: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-code {
|
|
|
|
background-color: var(--color-code-bg);
|
|
|
|
padding-left: 5px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-code.active,
|
|
|
|
.lines-code .active {
|
|
|
|
background: var(--color-active-line) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.blame .lines-num {
|
|
|
|
padding: 0 !important;
|
|
|
|
background-color: var(--color-code-sidebar-bg);
|
|
|
|
}
|
|
|
|
|
|
|
|
.blame .lines-code {
|
|
|
|
padding: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.code-inner {
|
|
|
|
font: 12px var(--fonts-monospace);
|
|
|
|
white-space: pre-wrap;
|
|
|
|
word-break: break-all;
|
|
|
|
overflow-wrap: break-word;
|
|
|
|
word-wrap: break-word;
|
|
|
|
}
|
|
|
|
|
|
|
|
.blame .code-inner {
|
|
|
|
white-space: pre;
|
|
|
|
word-break: normal;
|
|
|
|
word-wrap: normal; /* not using overflow-wrap because safari does not treat is an an alias */
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-commit {
|
|
|
|
&:extend(.unselectable);
|
|
|
|
vertical-align: top;
|
|
|
|
color: var(--color-grey);
|
|
|
|
padding: 0 !important;
|
|
|
|
background: var(--color-code-sidebar-bg);
|
|
|
|
width: 1%;
|
|
|
|
|
|
|
|
.blame-info {
|
|
|
|
&:extend(.unselectable);
|
|
|
|
width: 350px;
|
|
|
|
max-width: 350px;
|
|
|
|
display: block;
|
|
|
|
padding: 0 0 0 10px;
|
|
|
|
line-height: 20px;
|
|
|
|
box-sizing: content-box;
|
|
|
|
|
|
|
|
.blame-data {
|
|
|
|
display: flex;
|
|
|
|
font-family: var(--fonts-regular);
|
|
|
|
|
|
|
|
.blame-message {
|
|
|
|
flex-grow: 2;
|
|
|
|
overflow: hidden;
|
|
|
|
white-space: nowrap;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
}
|
|
|
|
|
|
|
|
.blame-time,
|
|
|
|
.blame-avatar {
|
|
|
|
flex-shrink: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.avatar {
|
|
|
|
height: 18px;
|
|
|
|
width: 18px;
|
|
|
|
display: block;
|
|
|
|
margin-top: 1px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.top-line-blame {
|
|
|
|
border-top: 1px solid var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.lines-code,
|
|
|
|
.lines-commit {
|
|
|
|
.bottom-line {
|
|
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.code-view table {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.octicon-tiny {
|
|
|
|
font-size: .85714286rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.button {
|
|
|
|
background: var(--color-button);
|
|
|
|
border: 1px solid var(--color-light-border);
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.page-content .ui.button {
|
|
|
|
box-shadow: none !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.button:focus,
|
|
|
|
.ui.button:hover {
|
|
|
|
background: var(--color-hover);
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.active.button,
|
|
|
|
.ui.button:active,
|
|
|
|
.ui.active.button:active,
|
|
|
|
.ui.active.button:hover {
|
|
|
|
background: var(--color-active);
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.button.no-text .icon {
|
|
|
|
margin: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.buttons .button:first-child {
|
|
|
|
border-left: 1px solid var(--color-light-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.buttons .button + .button {
|
|
|
|
border-left: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.two-toggle-buttons .button:not(.active):first-of-type {
|
|
|
|
border-right: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.two-toggle-buttons .button.active:last-of-type {
|
|
|
|
border-left: 1px solid var(--color-light-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.labeled.button.disabled > .button,
|
|
|
|
.ui.basic.buttons .button,
|
|
|
|
.ui.basic.button {
|
|
|
|
color: var(--color-text-light);
|
|
|
|
background: var(--color-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.buttons .button:hover,
|
|
|
|
.ui.basic.button:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.buttons .button:focus,
|
|
|
|
.ui.basic.button:focus,
|
|
|
|
.ui.basic.buttons .button:active,
|
|
|
|
.ui.basic.button:active,
|
|
|
|
.ui.basic.buttons .active.button,
|
|
|
|
.ui.basic.active.button,
|
|
|
|
.ui.basic.buttons .active.button:hover,
|
|
|
|
.ui.basic.active.button:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
background: var(--color-active);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.labeled.button > .label {
|
|
|
|
border-color: var(--color-light-border);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.labeled.icon.buttons > .button > .icon,
|
|
|
|
.ui.labeled.icon.button > .icon {
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.primary.button,
|
|
|
|
.ui.primary.buttons .button {
|
|
|
|
background-color: var(--color-primary) !important;
|
|
|
|
color: var(--color-primary-contrast) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.primary.button:hover,
|
|
|
|
.ui.primary.buttons .button:hover {
|
|
|
|
background-color: var(--color-primary-dark-2) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.primary.button:focus,
|
|
|
|
.ui.primary.buttons .button:focus {
|
|
|
|
background-color: var(--color-primary-dark-3) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.primary.button,
|
|
|
|
.ui.basic.primary.buttons .button {
|
|
|
|
box-shadow: inset 0 0 0 1px var(--color-primary) !important;
|
|
|
|
color: var(--color-primary-contrast) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.primary.button:hover,
|
|
|
|
.ui.basic.primary.buttons .button:hover {
|
|
|
|
box-shadow: inset 0 0 0 1px var(--color-primary-dark-2) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.primary.button:focus,
|
|
|
|
.ui.basic.primary.buttons .button:focus {
|
|
|
|
box-shadow: inset 0 0 0 1px var(--color-primary-dark-3) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.secondary.buttons .button,
|
|
|
|
.ui.basic.secondary.button {
|
|
|
|
color: var(--color-secondary-dark-6) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.secondary.buttons .button:hover,
|
|
|
|
.ui.basic.secondary.button:hover,
|
|
|
|
.ui.basic.secondary.buttons .button:active,
|
|
|
|
.ui.basic.secondary.button:active {
|
|
|
|
color: var(--color-secondary-dark-8) !important;
|
|
|
|
border-color: var(--color-secondary-dark-1) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.secondary.button:focus,
|
|
|
|
.ui.basic.secondary.buttons .button:focus {
|
|
|
|
color: var(--color-secondary-dark-8) !important;
|
|
|
|
border-color: var(--color-secondary-dark-3) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.tertiary.button {
|
|
|
|
color: var(--color-text-light);
|
|
|
|
border: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.tertiary.button:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.primary.label,
|
|
|
|
.ui.primary.labels .label {
|
|
|
|
background-color: var(--color-primary) !important;
|
|
|
|
border-color: var(--color-primary-dark-2) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.labels .primary.label,
|
|
|
|
.ui.ui.ui.basic.primary.label {
|
|
|
|
background: transparent !important;
|
|
|
|
border-color: var(--color-primary) !important;
|
|
|
|
color: var(--color-primary) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.labels .label,
|
|
|
|
.ui.basic.label {
|
|
|
|
background: var(--color-light);
|
|
|
|
border-color: var(--color-light-border);
|
|
|
|
color: var(--color-text-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.basic.labels a.label:hover,
|
|
|
|
a.ui.basic.label:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
border-color: var(--color-light-border);
|
|
|
|
background: var(--color-hover);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.label > img {
|
|
|
|
width: auto !important;
|
|
|
|
vertical-align: middle;
|
|
|
|
height: 2.1666em !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.svg {
|
|
|
|
span.green & {
|
|
|
|
color: var(--color-green);
|
|
|
|
}
|
|
|
|
span.red & {
|
|
|
|
color: var(--color-red);
|
|
|
|
}
|
|
|
|
span.purple & {
|
|
|
|
color: var(--color-purple);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.migrate .svg.gitea-git {
|
|
|
|
color: var(--color-git);
|
|
|
|
}
|
|
|
|
|
|
|
|
.color-icon {
|
|
|
|
display: inline-block;
|
|
|
|
border-radius: 100%;
|
|
|
|
height: 14px;
|
|
|
|
width: 14px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.label > .color-icon {
|
|
|
|
margin-left: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.invisible {
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.segment,
|
|
|
|
.ui.segments,
|
|
|
|
.ui.attached.segment {
|
|
|
|
background: var(--color-box-body);
|
|
|
|
color: var(--color-text);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.segments > .segment {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.segment {
|
|
|
|
background: var(--color-secondary-bg);
|
|
|
|
color: var(--color-text-light);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.attached.header {
|
|
|
|
position: relative;
|
|
|
|
background: var(--color-box-header);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
|
|
|
|
.right .button {
|
|
|
|
padding: 8px 10px;
|
|
|
|
font-weight: normal;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* fix misaligned right buttons on box headers */
|
|
|
|
.ui.attached.header .right:not(.dropdown) {
|
|
|
|
position: absolute;
|
|
|
|
right: .78571429rem;
|
|
|
|
top: 0;
|
|
|
|
bottom: 0;
|
|
|
|
height: 30px;
|
|
|
|
margin-top: auto;
|
|
|
|
margin-bottom: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* https://github.com/go-gitea/gitea/issues/10210 */
|
|
|
|
.ui.attached.segment ~ .ui.top.attached.header {
|
|
|
|
margin-top: 1rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.header-stopwatch-dot {
|
|
|
|
position: absolute;
|
|
|
|
left: 8px;
|
|
|
|
top: -8px;
|
|
|
|
width: 13px;
|
|
|
|
height: 13px;
|
|
|
|
background: var(--color-primary);
|
|
|
|
border: 2px solid var(--color-header-bar);
|
|
|
|
border-radius: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.notification_count {
|
|
|
|
position: absolute;
|
|
|
|
left: 5px;
|
|
|
|
top: -8px;
|
|
|
|
min-width: 1.5em;
|
|
|
|
text-align: center;
|
|
|
|
background: var(--color-primary);
|
|
|
|
border: 2px solid var(--color-header-bar);
|
|
|
|
color: var(--color-header-bar);
|
|
|
|
padding: 2px;
|
|
|
|
border-radius: 1em;
|
|
|
|
font-size: 10px;
|
|
|
|
font-weight: 700;
|
|
|
|
line-height: .7;
|
|
|
|
}
|
|
|
|
|
|
|
|
table th[data-sortt-asc],
|
|
|
|
table th[data-sortt-desc] {
|
|
|
|
&:hover {
|
|
|
|
background: rgba(0, 0, 0, .1) !important;
|
|
|
|
cursor: pointer !important;
|
|
|
|
}
|
|
|
|
.svg {
|
|
|
|
margin-left: .25rem;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* fix up SVG dropdown triangles because fomantic thinks they are icon fonts */
|
|
|
|
/* see https://github.com/go-gitea/gitea/issues/14014 */
|
|
|
|
.ui.dropdown > .dropdown.icon,
|
|
|
|
.btn-review > .dropdown.icon {
|
|
|
|
height: auto !important;
|
|
|
|
margin-left: .5rem !important;
|
|
|
|
margin-top: -1px !important;
|
|
|
|
margin-bottom: -1px !important;
|
|
|
|
margin-right: -.5rem !important;
|
|
|
|
}
|
|
|
|
.ui.button.dropdown > .dropdown.icon,
|
|
|
|
.btn-review > .dropdown.icon {
|
|
|
|
float: right !important;
|
|
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.ui.selection.dropdown > .search.icon,
|
|
|
|
.ui.selection.dropdown > .delete.icon,
|
|
|
|
.ui.selection.dropdown > .dropdown.icon {
|
|
|
|
top: 0 !important;
|
|
|
|
}
|
|
|
|
.ui.dropdown.no-text > .dropdown.icon {
|
|
|
|
margin-left: 0 !important;
|
|
|
|
margin-right: 0 !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu .item {
|
|
|
|
border-radius: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu .item:first-of-type {
|
|
|
|
border-radius: var(--border-radius) var(--border-radius) 0 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.dropdown .menu .item:last-of-type {
|
|
|
|
border-radius: 0 0 var(--border-radius) var(--border-radius);
|
|
|
|
}
|
|
|
|
|
|
|
|
.text-label {
|
|
|
|
display: inline-flex !important;
|
|
|
|
align-items: center !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.emoji,
|
|
|
|
.reaction {
|
|
|
|
font-size: 1.25em;
|
|
|
|
line-height: 1;
|
|
|
|
font-style: normal !important;
|
|
|
|
font-weight: normal !important;
|
|
|
|
vertical-align: -.075em;
|
|
|
|
|
|
|
|
@supports (-webkit-hyphens:none) {
|
|
|
|
body:not(.safari-above125) & {
|
|
|
|
font-size: inherit;
|
|
|
|
vertical-align: inherit;
|
|
|
|
img {
|
|
|
|
font-size: 1.25em;
|
|
|
|
vertical-align: -.225em !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.emoji img,
|
|
|
|
.reaction img {
|
|
|
|
border-width: 0 !important;
|
|
|
|
margin: 0 !important;
|
|
|
|
width: 1em !important;
|
|
|
|
height: 1em !important;
|
|
|
|
vertical-align: -.15em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.minicolors-panel {
|
|
|
|
background: var(--color-secondary-dark-1) !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.labelspage {
|
|
|
|
list-style: none;
|
|
|
|
padding-top: 0;
|
|
|
|
|
|
|
|
.item {
|
|
|
|
margin-top: 0;
|
|
|
|
margin-right: -14px;
|
|
|
|
margin-left: -14px;
|
|
|
|
padding: 10px;
|
|
|
|
border-bottom: 1px solid var(--color-secondary);
|
|
|
|
border-top: none;
|
|
|
|
|
|
|
|
a {
|
|
|
|
font-size: 15px;
|
|
|
|
padding-top: 5px;
|
|
|
|
padding-right: 10px;
|
|
|
|
color: var(--color-text-light);
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
color: var(--color-primary-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
&.open-issues {
|
|
|
|
margin-right: 30px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.label {
|
|
|
|
font-size: 1em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.item:last-child {
|
|
|
|
border-bottom: none;
|
|
|
|
padding-bottom: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.orglabel {
|
|
|
|
opacity: .7;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* https://github.com/go-gitea/gitea/pull/11486 */
|
|
|
|
.ui.sub.header {
|
|
|
|
text-transform: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.tabular.menu {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.tabular.menu .item {
|
|
|
|
padding: 11px 12px;
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.tabular.menu .item:hover {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.tabular.menu .active.item,
|
|
|
|
.ui.tabular.menu .active.item:hover {
|
|
|
|
background: var(--color-body);
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
color: var(--color-text);
|
|
|
|
margin-top: 1px; /* offset fomantic's margin-bottom: -1px */
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.segment .ui.tabular.menu .active.item,
|
|
|
|
.ui.segment .ui.tabular.menu .active.item:hover {
|
|
|
|
background: var(--color-box-body);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.pointing.menu {
|
|
|
|
border-color: var(--color-secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.pointing.menu .item {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.secondary.pointing.menu .active.item,
|
|
|
|
.ui.secondary.pointing.menu .active.item:hover,
|
|
|
|
.ui.secondary.pointing.menu .dropdown.item:hover,
|
|
|
|
.ui.secondary.pointing.menu .link.item:hover,
|
|
|
|
.ui.secondary.pointing.menu a.item:hover {
|
|
|
|
color: var(--color-text-dark);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.header {
|
|
|
|
color: var(--color-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.header .ui.label {
|
|
|
|
margin-left: .25rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.header > .ui.label.compact {
|
|
|
|
margin-top: inherit;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ui.header .sub.header {
|
|
|
|
color: var(--color-text-light-1);
|
|
|
|
}
|
|
|
|
|
|
|
|
.flash-error details code,
|
|
|
|
.flash-warning details code {
|
|
|
|
display: block;
|
|
|
|
text-align: left;
|
|
|
|
}
|
|
|
|
|
|
|
|
.truncated-item-container {
|
|
|
|
display: flex !important;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
.ellipsis-button {
|
|
|
|
&:extend(.unselectable);
|
|
|
|
padding: 0 5px 8px !important;
|
|
|
|
display: inline-block !important;
|
|
|
|
font-weight: 600 !important;
|
|
|
|
line-height: 6px !important;
|
|
|
|
vertical-align: middle !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
.truncated-item-name {
|
|
|
|
line-height: 2em;
|
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
margin-top: -.5em;
|
|
|
|
margin-bottom: -.5em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.precolors {
|
|
|
|
padding-left: 0 !important;
|
|
|
|
padding-right: 0 !important;
|
|
|
|
margin: 3px 10px auto !important;
|
|
|
|
width: 120px !important;
|
|
|
|
|
|
|
|
.color {
|
|
|
|
float: left;
|
|
|
|
width: 15px;
|
|
|
|
height: 15px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@media @mediaSm {
|
|
|
|
.ui.stackable.menu:not(.no-vertical-tabs) {
|
|
|
|
overflow-y: hidden;
|
|
|
|
overflow-x: auto;
|
|
|
|
flex-direction: row;
|
|
|
|
flex-wrap: nowrap !important;
|
|
|
|
|
|
|
|
.item {
|
|
|
|
width: initial !important;
|
|
|
|
}
|
|
|
|
|
|
|
|
> .dropdown.item {
|
|
|
|
position: initial;
|
|
|
|
}
|
|
|
|
|
|
|
|
.menu {
|
|
|
|
flex-direction: row;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.color-text-light-2 {
|
|
|
|
color: var(--color-text-light-2);
|
|
|
|
}
|