Files
Gitea/public/less/_repository.less
T
Lauris BHandJonas Franz 6e64f9db8e Pull request review/approval and comment on code (#3748)
* Initial ui components for pull request review

* Add Review
Add IssueComment types

Signed-off-by: Jonas Franz <[email protected]>

(cherry picked from commit 2b4daab)
Signed-off-by: Jonas Franz <[email protected]>

* Replace ReviewComment with Content

Signed-off-by: Jonas Franz <[email protected]>

* Add load functions
Add ReviewID to findComments

Signed-off-by: Jonas Franz <[email protected]>

* Add create review comment implementation
Add migration for review
Other small changes

Signed-off-by: Jonas Franz <[email protected]>

* Simplified create and find functions for review

Signed-off-by: Jonas Franz <[email protected]>

* Moved "Pending" to first position

Signed-off-by: Jonas Franz <[email protected]>

* Add GetCurrentReview to simplify fetching current review

Signed-off-by: Jonas Franz <[email protected]>

* Preview for listing comments

Signed-off-by: Jonas Franz <[email protected]>

* Move new comment form to its own file

Signed-off-by: Jonas Franz <[email protected]>

* Implement Review form
Show Review comments on comment stream

Signed-off-by: Jonas Franz <[email protected]>

* Add support for single comments
Showing buttons in context

Signed-off-by: Jonas Franz <[email protected]>

* Add pending tag to pending review comments

Signed-off-by: Jonas Franz <[email protected]>

* Add unit tests for Review

Signed-off-by: Jonas Franz <[email protected]>

* Fetch all review ids at once
Add unit tests

Signed-off-by: Jonas Franz <[email protected]>

* gofmt

Signed-off-by: Jonas Franz <[email protected]>

* Improved comment rendering in "Files" view by adding Comments to DiffLine

Signed-off-by: Jonas Franz <[email protected]>

* Add support for invalidating comments

Signed-off-by: Jonas Franz <[email protected]>

* Switched back to code.gitea.io/git

Signed-off-by: Jonas Franz <[email protected]>

* Moved review migration from v64 to v65

Signed-off-by: Jonas Franz <[email protected]>

* Rebuild css

Signed-off-by: Jonas Franz <[email protected]>

* gofmt

Signed-off-by: Jonas Franz <[email protected]>

* Improve translations

Signed-off-by: Jonas Franz <[email protected]>

* Fix unit tests by updating fixtures and updating outdated test

Signed-off-by: Jonas Franz <[email protected]>

* Comments will be shown at the right place now

Signed-off-by: Jonas Franz <[email protected]>

* Add support for deleting CodeComments

Signed-off-by: Jonas Franz <[email protected]>

* Fix problems caused by files in subdirectories

Signed-off-by: Jonas Franz <[email protected]>

* Add support for showing code comments of reviews in conversation

Signed-off-by: Jonas Franz <[email protected]>

* Add support for "Show/Hide outdated"

Signed-off-by: Jonas Franz <[email protected]>

* Update code.gitea.io/git

Signed-off-by: Jonas Franz <[email protected]>

* Add support for new webhooks

Signed-off-by: Jonas Franz <[email protected]>

* Update comparison

Signed-off-by: Jonas Franz <[email protected]>

* Resolve conflicts

Signed-off-by: Jonas Franz <[email protected]>

* Minor UI improvements

* update code.gitea.io/git

* Fix ui bug reported by @lunny causing wrong position of add button
Add functionality to "Cancel" button
Add scale effects to add button
Hide "Cancel" button for existing comments

Signed-off-by: Jonas Franz <[email protected]>

* Prepare solving conflicts

Signed-off-by: Jonas Franz <[email protected]>

* Show add button only if no comments already exist for the line

Signed-off-by: Jonas Franz <[email protected]>

* Add missing vendor files

Signed-off-by: Jonas Franz <[email protected]>

* Check if reviewer is nil

Signed-off-by: Jonas Franz <[email protected]>

* Show forms only to users who are logged in

Signed-off-by: Jonas Franz <[email protected]>

* Revert "Show forms only to users who are logged in"

This reverts commit c083682

Signed-off-by: Jonas Franz <[email protected]>

* Save patch in comment
Render patch for code comments

Signed-off-by: Jonas Franz <[email protected]>

* Add link to comment in code

Signed-off-by: Jonas Franz <[email protected]>

* Add reply form to comment list
Show forms only to signed in users

Signed-off-by: Jonas Franz <[email protected]>

* Add 'Reply' as translatable
Add CODE_COMMENT_LINES setting

Signed-off-by: Jonas Franz <[email protected]>

* gofmt

Signed-off-by: Jonas Franz <[email protected]>

* Fix problems introduced by checking for singed in user

Signed-off-by: Jonas Franz <[email protected]>

* Add v70

Signed-off-by: Jonas Franz <[email protected]>

* Update generated stylesheet

Signed-off-by: Jonas Franz <[email protected]>

* Fix preview
Beginn with new review comment patch system

Signed-off-by: Jonas Franz <[email protected]>

* Add new algo to generate diff for line range
Remove old algo used for cutting big diffs (it was very buggy)

* Add documentation and example for CutDiffAroundLine

* Fix example of CutDiffAroundLine

* Fix some comment UI rendering bugs

* Add code comment edit mode

* Send notifications / actions to users until review gets published
Fix diff generation bug
Fix wrong hashtag

* Fix vet errors

* Send notifications also for single comments

* Fix some notification bugs, fix link

* Fix: add comment icon is only shown on code lines

* Add lint comment

* Add unit tests for git diff

* Add more error messages

* Regenerated css

Signed-off-by: Jonas Franz <[email protected]>

* fmt

Signed-off-by: Jonas Franz <[email protected]>

* Regenerated CSS with latest less version

Signed-off-by: Jonas Franz <[email protected]>

* Fix test by updating comment type to new ID

Signed-off-by: Jonas Franz <[email protected]>

* Introducing CodeComments as type for map[string]map[int64][]*Comment
Other minor code improvements

Signed-off-by: Jonas Franz <[email protected]>

* Fix data-tab issues

Signed-off-by: Jonas Franz <[email protected]>

* Remove unnecessary change

Signed-off-by: Jonas Franz <[email protected]>

* refactored checkForInvalidation

Signed-off-by: Jonas Franz <[email protected]>

* Append comments instead of setting

Signed-off-by: Jonas Franz <[email protected]>

* Use HeadRepo instead of BaseRepo

Signed-off-by: Jonas Franz <[email protected]>

* Update migration

Signed-off-by: Jonas Franz <[email protected]>

* Regenerated CSS

Signed-off-by: Jonas Franz <[email protected]>

* Add copyright

Signed-off-by: Jonas Franz <[email protected]>

* Update index.css

Signed-off-by: Jonas Franz <[email protected]>
2018-08-06 06:43:21 +02:00

1812 lines
46 KiB
Plaintext

.repository {
@mega-octicon-width: 30px;
padding-top: 15px;
padding-bottom: @footer-margin * 2;
.header-grid {
padding-top: 5px;
padding-bottom: 5px;
.ui.compact.menu {
margin-left: 1rem;
}
.ui.header {
margin-top: 0;
}
.mega-octicon {
width: @mega-octicon-width;
font-size: 30px;
}
.ui.huge.breadcrumb {
font-weight: 400;
font-size: 1.7rem;
}
.fork-flag {
margin-left: @mega-octicon-width + 8px;
margin-top: 3px;
display: block;
font-size: 12px;
white-space: nowrap;
}
.octicon.octicon-repo-forked {
margin-top: -1px;
font-size: 15px;
}
.button {
margin-top: 2px;
margin-bottom: 2px;
}
}
.tabs {
.navbar {
justify-content: initial;
}
}
.navbar {
display: flex;
justify-content: space-between;
.ui.label {
margin-top: -2px;
margin-left: 7px;
padding: 3px 5px;
}
}
.owner.dropdown {
min-width: 40% !important;
}
#file-buttons {
/* The reason for the !important is that Semantic itself has
margin-left: 0 !important on right items on mobile, which is mostly
to make sure elements which on menus would otherwise be on the right
align correctly with other elements when stacked.
Unfortunately, this brings some weird alignment on this particular
element, so we need to override it. */
margin-left: auto !important;
font-weight: normal;
.ui.button {
padding: 8px 10px;
font-weight: normal;
}
}
.metas {
.menu {
max-height: 300px;
overflow-x: auto;
}
.ui.list {
.hide {
display: none!important;
}
.item {
padding: 0px;
}
.label.color {
padding: 0 8px;
margin-right: 5px;
}
a {
margin: 2px 0;
.text {
color: #444;
&:hover {
color: #000;
}
}
}
}
#deadlineForm input{
width: 12.8rem;
border-radius: 4px 0 0 4px;
border-right: 0;
white-space: nowrap;
}
}
.header-wrapper {
background-color: #FAFAFA;
margin-top: -15px;
padding-top: 15px;
.ui.tabs.divider {
border-bottom: none;
}
.ui.tabular .octicon {
margin-right: 5px;
}
}
.filter.menu {
.label.color {
border-radius: 3px;
margin-left: 15px;
padding: 0 8px;
}
.octicon {
float: left;
margin: 5px -7px 0 -5px;
width: 16px;
}
.text{
margin-left: 0.9em;
}
.menu {
max-height: 300px;
overflow-x: auto;
right: 0!important;
left: auto!important;
}
.dropdown.item {
margin: 1px;
padding-right: 0;
}
}
.select-label {
.item {
max-width: 250px;
overflow: hidden;
text-overflow: ellipsis;
}
.desc {
padding-left: 16px;
}
}
.ui.tabs {
&.container {
margin-top: 14px;
margin-bottom: 0px;
.ui.menu {
border-bottom: none;
}
}
&.divider {
margin-top: 0;
margin-bottom: 20px;
}
}
#clone-panel {
width: 350px;
@media only screen and (max-width: 768px) {
width: 100%;
}
input {
border-radius: 0;
padding: 5px 10px;
width: 50%;
}
.clone.button {
font-size: 13px;
padding: 0 5px;
&:first-child {
border-radius: .28571429rem 0 0 .28571429rem;
}
}
.icon.button {
padding: 0 10px;
}
.dropdown .menu {
right: 0!important;
left: auto!important;
}
}
&.file.list {
.repo-description {
display: flex;
justify-content: space-between;
align-items: center;
}
#repo-desc {
font-size: 1.2em;
}
.choose.reference {
.header .icon {
font-size: 1.4em;
}
}
.repo-path {
.section, .divider {
display: inline;
}
}
#file-buttons {
font-weight: normal;
.ui.button {
padding: 8px 10px;
font-weight: normal;
}
.ui.tiny.blue.buttons {
@media only screen and (max-width: 768px) {
width: 100%;
}
}
}
#repo-files-table {
thead {
th {
padding-top: 8px;
padding-bottom: 5px;
font-weight: normal;
&:first-child {
display: block;
position: relative;
width: 325%;
}
}
.ui.avatar {
margin-bottom: 5px;
}
}
tbody {
.octicon {
margin-left: 3px;
margin-right: 5px;
color: #777;
&.octicon-mail-reply {
margin-right: 10px;
}
&.octicon-file-directory, &.octicon-file-submodule,
&.octicon-file-symlink-directory {
color: #1e70bf;
}
}
}
td {
padding-top: 8px;
padding-bottom: 8px;
}
td.message .isSigned {
cursor: default;
}
tr:hover {
background-color: #ffffEE;
}
.jumpable-path {
color: #888;
}
}
.non-diff-file-content {
.header {
.icon {
font-size: 1em;
}
.file-actions {
margin-top: 0;
margin-bottom: -5px;
padding-left: 20px;
.btn-octicon {
display: inline-block;
padding: 5px;
margin-left: 5px;
line-height: 1;
color: #767676;
vertical-align: middle;
background: transparent;
border: 0;
outline: none;
}
.btn-octicon:hover {
color: #4078c0;
}
.btn-octicon-danger:hover {
color: #bd2c00;
}
.btn-octicon.disabled {
color: #bbb;
cursor: default;
}
#delete-file-form {
display: inline-block;
}
}
}
.view-raw {
padding: 5px;
* {
max-width: 100%;
}
img {
padding: 5px 5px 0 5px;
}
}
.plain-text {
padding: 1em 2em 1em 2em;
}
.code-view {
* {
font-size: 12px;
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 20px;
}
table {
width: 100%;
}
.lines-num {
vertical-align: top;
text-align: right;
color: #999;
background: #f5f5f5;
width: 1%;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
span {
line-height: 20px;
padding: 0 10px;
cursor: pointer;
display: block;
}
}
.lines-num,
.lines-code {
padding: 0;
pre,
ol,
.hljs {
background-color: white;
margin: 0;
padding: 0 !important;
li {
display: block;
width: 100%;
&.active {
background: #ffffdd;
}
&:before {
content: ' ';
}
}
}
}
.active {
background: #ffffdd;
}
}
}
.sidebar {
padding-left: 0;
.octicon {
width: 16px;
}
}
}
&.file.editor {
.treepath {
width: 100%;
input {
vertical-align: middle;
box-shadow: rgba(0, 0, 0, 0.0745098) 0px 1px 2px inset;
width: inherit;
padding: 7px 8px;
margin-right: 5px;
}
}
.tabular.menu {
.octicon {
margin-right: 5px;
}
}
.commit-form-wrapper {
padding-left: 64px;
.commit-avatar {
float: left;
margin-left: -64px;
width: 3em;
height: auto;
}
.commit-form {
position: relative;
padding: 15px;
margin-bottom: 10px;
border: 1px solid #ddd;
border-radius: 3px;
#avatar-arrow;
&:after {
border-right-color: #fff;
}
.quick-pull-choice {
.branch-name {
display: inline-block;
padding: 3px 6px;
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
color: rgba(0,0,0,0.65);
background-color: rgba(209,227,237,0.45);
border-radius: 3px;
}
.new-branch-name-input {
position: relative;
margin-left: 25px;
input {
width: 240px !important;
padding-left: 26px !important;
}
}
.octicon-git-branch {
position: absolute;
top: 9px;
left: 10px;
color: #b0c4ce;
}
}
}
}
}
&.options {
#interval {
width: 100px!important;
min-width: 100px;
}
.danger {
.item {
padding: 20px 15px;
}
.ui.divider {
margin: 0;
}
}
}
@comment-avatar-width: 3em;
&.new.issue {
.comment.form {
.comment {
.avatar {
width: @comment-avatar-width;
}
}
.content {
margin-left: 4em;
#avatar-arrow;
&:after {
border-right-color: #fff;
}
.markdown {
font-size: 14px;
}
}
.metas {
min-width: 220px;
.filter.menu {
max-height: 300px;
overflow-x: auto;
}
}
}
}
&.view.issue {
.title {
padding-bottom: 0!important;
h1 {
font-weight: 300;
font-size: 2.3rem;
margin-bottom: 5px;
.ui.input {
font-size: 0.5em;
vertical-align: top;
width: 50%;
min-width: 600px;
input {
font-size: 1.5em;
padding: 6px 10px;
}
}
}
.index {
font-weight: 300;
color: #aaa;
letter-spacing: -1px;
}
.label {
margin-right: 10px;
}
.edit-zone {
margin-top: 10px;
}
}
.pull-desc {
code {
color: #0166E6;
}
}
.pull {
&.tabular.menu {
margin-bottom: 10px;
.octicon {
margin-right: 5px;
}
}
&.tab.segment {
border: none;
padding: 0;
padding-top: 10px;
box-shadow: none;
background-color: inherit;
}
.merge.box {
.avatar {
margin-left: 10px;
margin-top: 10px;
}
}
}
.comment-list {
&:before {
display: block;
content: "";
position: absolute;
margin-top: 12px;
margin-bottom: 14px;
top: 0;
bottom: 0;
left: 96px;
width: 2px;
background-color: #f3f3f3;
z-index: -1;
}
.comment {
.avatar {
width: @comment-avatar-width;
}
.tag {
color: #767676;
margin-top: 3px;
padding: 2px 5px;
font-size: 12px;
border: 1px solid rgba(0,0,0,0.1);
border-radius: 3px;
}
.actions {
.item {
float: left;
&.tag {
margin-right: 5px;
}
&.action {
margin-top: 6px;
margin-left: 10px;
}
}
}
.content {
margin-left: 4em;
> .header {
#avatar-arrow;
font-weight: normal;
padding: auto 15px;
position: relative;
color: #767676;
background-color: #f7f7f7;
border-bottom: 1px solid #eee;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
.text {
max-width: 78%;
padding-top: 10px;
padding-bottom: 10px;
}
}
.markdown {
font-size: 14px;
}
.no-content {
color: #767676;
font-style: italic;
}
> .bottom.segment {
background: #f3f4f5;
.ui.images::after {
clear: both;
content: ' ';
display: block;
}
a {
display: block;
float: left;
margin: 5px;
padding: 5px;
height: 150px;
border: solid 1px #eee;
border-radius: 3px;
max-width: 150px;
background-color: #fff;
&:before {
content:' ';
display: inline-block;
height: 100%;
vertical-align: middle;
}
}
.ui.image {
max-height: 100%;
width: auto;
margin: 0;
vertical-align: middle;
}
span.ui.image {
font-size: 128px;
color: #000000;
}
span.ui.image:hover {
color: #000000;
}
}
}
.ui.form {
.field:first-child {
clear: none;
}
.tab.segment {
border: none;
padding: 0;
padding-top: 10px;
}
textarea {
height: 200px;
font-family: "Consolas", monospace;
}
}
.edit.buttons {
margin-top: 10px;
}
}
.event {
position: relative;
margin: 15px 0 15px 79px;
padding-left: 25px;
.octicon {
width: 30px;
float: left;
text-align: center;
&.octicon-circle-slash {
margin-top: 5px;
margin-left: -34.5px;
font-size: 20px;
color: #bd2c00;
}
&.octicon-primitive-dot {
margin-left: -28.5px;
margin-right: -1px;
font-size: 30px;
color: #6cc644;
}
&.octicon-bookmark {
margin-top: 3px;
margin-left: -31px;
margin-right: -1px;
font-size: 25px;
}
&.octicon-comment {
margin-top: 4px;
margin-left: -35px;
font-size: 24px;
}
&.octicon-eye {
margin-top: 3px;
margin-left: -35px;
margin-right: 0px;
font-size: 22px;
}
&.octicon-x {
margin-left: -33px;
font-size: 25px;
}
}
.detail {
font-size: 0.9rem;
margin-top: 5px;
margin-left: 35px;
.octicon {
&.octicon-git-commit {
margin-top: 2px;
}
}
}
}
}
.ui.segment.metas {
margin-top: -3px;
}
.ui.participants {
img {
margin-top: 5px;
margin-right: 5px;
}
}
}
.comment.form {
.ui.comments {
margin-top: -12px;
max-width: 100%;
}
.content {
.field:first-child {
clear: none;
}
.form {
#avatar-arrow;
&:after {
border-right-color: #fff;
}
}
.tab.segment {
border: none;
padding: 0;
padding-top: 10px;
}
textarea {
height: 200px;
font-family: "Consolas", monospace;
}
}
}
.label.list {
list-style: none;
padding-top: 15px;
.item {
padding-top: 10px;
padding-bottom: 10px;
border-bottom: 1px dashed #AAA;
a {
font-size: 15px;
padding-top: 5px;
padding-right: 10px;
color: #666;
&:hover {
color: #000;
}
&.open-issues {
margin-right: 30px;
}
}
.ui.label {
font-size: 1em;
}
}
}
.milestone.list {
list-style: none;
padding-top: 15px;
> .item {
padding-top: 10px;
padding-bottom: 10px;
border-bottom: 1px dashed #AAA;
> a {
padding-top: 5px;
padding-right: 10px;
color: #000;
&:hover {
color: #4078c0;
}
}
.ui.progress {
width: 40%;
padding: 0;
border: 0;
margin: 0;
.bar {
height: 20px;
}
}
.meta {
color: #999;
padding-top: 5px;
.issue-stats .octicon{
padding-left: 5px;
}
.overdue {
color: red;
}
}
.operate {
margin-top: -15px;
> a {
font-size: 15px;
padding-top: 5px;
padding-right: 10px;
color: #666;
&:hover {
color: #000;
}
}
}
.content {
padding-top: 10px;
}
}
}
&.new.milestone {
textarea {
height: 200px;
}
#deadline {
width: 150px;
}
}
&.compare.pull {
.choose.branch {
.octicon {
padding-right: 10px;
}
}
.comment.form {
.content {
#avatar-arrow;
&:after {
border-right-color: #fff;
}
}
}
}
.filter.dropdown .menu {
margin-top: 1px!important;
}
&.commits {
.header {
.search {
input {
font-weight: normal;
padding: 5px 10px;
}
}
}
}
#commits-table {
thead {
th:first-of-type {
padding-left: 15px;
}
.sha {
&td {
text-align: center;
}
width: 140px;
}
}
td.sha .sha.label {
margin: 0;
}
&.ui.basic.striped.table tbody tr:nth-child(2n) {
background-color: rgba(0, 0, 0, .02)!important;
}
}
#commits-table td.sha .sha.label, #repo-files-table .sha.label{
&.isSigned{
border: 1px solid #BBB;
.detail.icon{
background: #FAFAFA;
margin: -6px -10px -4px 0px;
padding: 5px 3px 5px 6px;
border-left: 1px solid #BBB;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
&.isSigned.isVerified{
border: 1px solid #21BA45;
background: #21BA4518;
.detail.icon{
border-left: 1px solid #21BA4580;
}
}
}
.diff-detail-box {
padding: 7px 0;
background: #fff;
line-height: 30px;
>div:after{
clear: both;
content: "";
display: block;
}
ol {
clear: both;
padding-left: 0;
margin-top: 5px;
margin-bottom: 28px;
li {
list-style: none;
padding-bottom: 4px;
margin-bottom: 4px;
border-bottom: 1px dashed #DDD;
padding-left: 6px;
}
}
span.status{
display: inline-block;
width: 12px;
height: 12px;
margin-right: 8px;
vertical-align: middle;
&.modify {
background-color: #f0db88;
}
&.add {
background-color: #b4e2b4;
}
&.del {
background-color: #e9aeae;
}
&.rename {
background-color: #dad8ff;
}
}
.detail-files {
background: #fff;
margin: 0px;
}
}
.diff-box .header {
display: flex;
align-items: center;
.count {
margin-right: 12px;
font-size: 13px;
flex: 0 0 auto;
.bar {
background-color: #bd2c00;
height: 12px;
width: 40px;
display: inline-block;
margin: 2px 4px 0 4px;
vertical-align: text-top;
.add {
background-color: #55a532;
height: 12px;
}
}
}
.file {
flex: 1;
color: #888;
word-break: break-all;
}
.button {
margin: -5px 0 -5px 12px;
padding: 8px 10px;
flex: 0 0 auto;
}
}
.diff-file-box {
.header {
background-color: #f7f7f7;
}
.file-body.file-code {
.lines-num {
text-align: right;
color: #A7A7A7;
background: #fafafa;
width: 1%;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
vertical-align: top;
span.fold {
display: block;
text-align: center;
}
}
.lines-num-old {
border-right: 1px solid #DDD;
}
}
.code-diff {
font-size: 12px;
td {
padding: 0;
padding-left: 10px;
border-top: none;
}
pre {
margin: 0;
}
.lines-num {
border-color: #d4d4d5;
border-right-width: 1px;
border-right-style: solid;
padding: 0 5px;
}
tbody {
tr {
td.halfwidth {
// halfwidth is used in split view - and in that case, 1% of each
width: 49%;
}
&.tag-code td, td.tag-code {
background-color: #F0F0F0 !important;
border-color: #D2CECE !important;
padding-top: 8px;
padding-bottom: 8px;
// td.selected-line, td.selected-line pre {
// background-color: #ffffdd !important;
// }
}
// &.same-code {
// td.selected-line, td.selected-line pre {
// background-color: #ffffdd !important;
// }
// }
.removed-code {
background-color: #ff9999;
}
.added-code {
background-color: #99ff99;
}
}
}
}
.code-diff-unified tbody tr {
&.del-code td {
background-color: #ffe0e0 !important;
border-color: #f1c0c0 !important;
}
&.add-code td {
background-color: #d6fcd6 !important;
border-color: #c1e9c1 !important;
}
}
.code-diff-split {
table, tbody {
width: 100%;
}
tbody tr {
// light gray for empty lines before / after commit
&.add-code td:nth-child(1), &.add-code td:nth-child(2),
&.del-code td:nth-child(3), &.del-code td:nth-child(4) {
background-color: #fafafa;
}
&.del-code td:nth-child(1), &.del-code td:nth-child(2),
td.del-code {
background-color: #ffe0e0 !important;
border-color: #f1c0c0 !important;
}
&.add-code td:nth-child(3), &.add-code td:nth-child(4),
td.add-code{
background-color: #d6fcd6 !important;
border-color: #c1e9c1 !important;
}
td:nth-child(3) {
border-left-width: 1px;
border-left-style: solid;
}
}
}
&.file-content {
img {
max-width: 100%;
padding: 5px 5px 0 5px;
}
clear: right;
}
}
.code-view {
overflow: auto;
overflow-x: auto;
overflow-y: hidden;
}
.repo-search-result {
padding-top: 10px;
padding-bottom: 10px;
.lines-num a {
color: inherit;
}
}
&.quickstart {
.guide {
.item {
padding: 1em;
small {
font-weight: normal;
}
}
.clone.button:first-child {
border-radius: .28571429rem 0 0 .28571429rem;
}
.ui.action.small.input {
width: 100%;
}
#repo-clone-url {
border-radius: 0;
padding: 5px 10px;
font-size: 1.2em;
}
}
}
&.release {
#release-list {
border-top: 1px solid #DDD;
margin-top: 20px;
padding-top: 15px;
>li {
list-style: none;
.meta,
.detail {
padding-top: 30px;
padding-bottom: 40px;
}
.meta {
text-align: right;
position: relative;
.tag:not(.icon) {
display: block;
margin-top: 15px;
}
.commit {
display: block;
margin-top: 10px;
}
}
.detail {
border-left: 1px solid #DDD;
.author {
img {
margin-bottom: -3px;
}
}
.download {
margin-top: 20px;
>a {
.octicon {
margin-left: 5px;
margin-right: 5px;
}
}
.list {
padding-left: 0;
border-top: 1px solid #eee;
li {
list-style: none;
display: block;
padding-top: 8px;
padding-bottom: 8px;
border-bottom: 1px solid #eee;
}
}
}
.dot {
width: 9px;
height: 9px;
background-color: #ccc;
z-index: 999;
position: absolute;
display: block;
left: -5px;
top: 40px;
border-radius: 6px;
border: 1px solid #FFF;
}
}
}
}
}
&.new.release {
.target {
min-width: 500px;
#tag-name {
margin-top: -4px;
}
.at {
margin-left: -5px;
margin-right: 5px;
}
.dropdown.icon {
margin: 0;
padding-top: 3px;
}
.selection.dropdown {
padding-top: 10px;
padding-bottom: 10px;
}
}
.prerelease.field {
margin-bottom: 0;
}
.field {
button, input {
@media only screen and (max-width: 438px) {
width: 100%;
}
}
button {
@media only screen and (max-width: 768px) {
margin-bottom: 1em;
}
}
}
}
&.forks {
.list {
margin-top: 0;
.item {
padding-top: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #DDD;
.ui.avatar {
float: left;
margin-right: 5px;
}
.link {
padding-top: 5px;
}
}
}
}
&.wiki {
&.start {
.ui.segment {
padding-top: 70px;
padding-bottom: 100px;
.mega-octicon {
font-size: 48px;
}
}
}
&.new {
.CodeMirror {
.CodeMirror-code {
font-family: "Consolas", monospace;
.cm-comment {
background: inherit;
}
}
}
.editor-preview {
background-color: white;
}
}
&.view {
.choose.page {
margin-top: -5px;
}
.ui.sub.header {
text-transform: none;
}
>.markdown {
padding: 15px 30px;
h1, h2, h3, h4, h5, h6 {
&:first-of-type {
margin-top: 0;
}
}
}
}
@media only screen and (max-width: 767px) {
.dividing.header .stackable.grid .button {
margin-top: 2px;
margin-bottom: 2px;
}
}
}
&.settings {
&.collaboration {
.collaborator.list {
padding: 0;
>.item {
margin: 0;
line-height: 2em;
&:not(:last-child) {
border-bottom: 1px solid #DDD;
}
}
}
#repo-collab-form {
#search-user-box {
.results {
left: 7px;
}
}
.ui.button {
margin-left: 5px;
margin-top: -3px;
}
}
}
&.branches {
.protected-branches {
.selection.dropdown {
width: 300px;
}
.item {
border: 1px solid #eaeaea;
padding: 10px 15px;
&:not(:last-child) {
border-bottom: 0;
}
}
}
.branch-protection {
.help {
margin-left: 26px;
padding-top: 0;
}
.fields {
margin-left: 20px;
display: block;
}
.whitelist {
margin-left: 26px;
.dropdown img {
display: inline-block;
}
}
}
}
&.webhook {
.events {
.column {
padding-bottom: 0;
}
.help {
font-size: 13px;
margin-left: 26px;
padding-top: 0;
}
}
}
}
.ui.attached.isSigned.isVerified{
&:not(.positive){
border-left: 1px solid #A3C293;
border-right: 1px solid #A3C293;
}
&.top:not(.positive){
border-top: 1px solid #A3C293;
}
&:not(.positive):last-child {
border-bottom: 1px solid #A3C293;
}
}
.ui.segment.sub-menu {
padding: 7px;
line-height: 0;
.list {
width: 100%;
display: flex;
.item {
width:100%;
border-radius: 3px;
a {
color: black;
&:hover {
color: #666;
}
}
&.active {
background: rgba(0,0,0,.05);;
}
}
}
}
.segment.reactions, .select-reaction {
&.dropdown .menu {
right: 0!important;
left: auto!important;
> .header {
margin: 0.75rem 0 .5rem;
}
> .item {
float: left;
padding: .5rem .5rem !important;
img.emoji {
margin-right: 0;
}
}
}
}
.segment.reactions {
padding: .3em 1em;
.ui.label {
padding: .4em;
&.disabled {
cursor: default;
}
> img {
height: 1.5em !important;
}
}
.select-reaction {
float: none;
&:not(.active) a {
display: none;
}
}
&:hover .select-reaction a {
display: block;
}
}
}
// End of .repository
&.user-cards {
.list {
padding: 0;
.item {
list-style: none;
width: 32%;
margin: 10px 10px 10px 0;
padding-bottom: 14px;
float: left;
.avatar {
width: 48px;
height: 48px;
float: left;
display: block;
margin-right: 10px;
}
.name {
margin-top: 0;
margin-bottom: 0;
font-weight: normal;
}
.meta {
margin-top: 5px;
}
}
}
}
#search-repo-box,
#search-user-box {
.results {
.result {
.image {
float: left;
margin-right: 8px;
width: 2em;
height: 2em;
}
.content {
margin: 6px 0;
}
}
}
}
#issue-actions {
display: none;
}
.issue.list {
list-style: none;
padding-top: 15px;
>.item {
padding-top: 15px;
padding-bottom: 10px;
border-bottom: 1px dashed #AAA;
.title {
color: #444;
font-size: 15px;
font-weight: bold;
margin: 0 6px;
&:hover {
color: #000;
}
}
.comment {
padding-right: 10px;
color: #666;
}
.desc {
padding-top: 5px;
color: #999;
.checklist {
padding-left: 5px;
.progress-bar {
margin-left: 2px;
width: 80px;
height: 6px;
display: inline-block;
background-color: #eee;
overflow: hidden;
border-radius: 3px;
vertical-align: 2px !important;
.progress {
background-color: #ccc;
display: block;
height: 100%;
}
}
}
a.milestone {
padding-left: 5px;
color: #999!important;
&:hover {
color: #000!important;
}
}
.assignee {
margin-top: -5px;
margin-right: 5px;
}
.overdue{
color: red;
}
}
}
}
.page.buttons {
padding-top: 15px;
}
.ui.form {
.dropzone {
width: 100%;
margin-bottom: 10px;
border: 2px dashed #0087F7;
box-shadow: none!important;
.dz-error-message {
top: 140px;
}
}
}
.settings {
.content {
margin-top: 2px;
>.header,
.segment {
box-shadow: 0 1px 2px 0 rgba(34,36,38,.15);
}
}
.list {
> .item {
.green {
color: #21BA45;
}
&:not(:first-child) {
border-top: 1px solid #eaeaea;
padding:1rem;
margin: 15px -1rem -1rem -1rem;
}
> .mega-octicon {
display: table-cell;
}
> .mega-octicon + .content {
display: table-cell;
padding: 0 0 0 .5em;
vertical-align: top;
}
.info {
margin-top: 10px;
.tab.segment {
border: none;
padding: 10px 0 0;
}
}
}
&.key{
.meta {
padding-top: 5px;
color: #666;
}
}
&.email {
> .item:not(:first-child) {
min-height: 60px;
}
}
&.collaborator {
> .item {
padding: 0;
}
}
}
}
.ui.vertical.menu {
.header.item {
font-size: 1.1em;
background: #f0f0f0;
}
}
.edit-label.modal,
.new-label.segment {
.form {
.column {
padding-right: 0;
}
.buttons {
margin-left: auto;
padding-top: 15px;
}
.color.picker.column {
width: auto;
.color-picker {
height: 35px;
width: auto;
padding-left: 30px;
}
}
.minicolors-swatch.minicolors-sprite {
top: 10px;
left: 10px;
width: 15px;
height: 15px;
}
.precolors {
padding-left: 0;
padding-right: 0;
margin: 3px 10px auto 10px;
width: 120px;
.color {
float: left;
width: 15px;
height: 15px;
}
}
}
}
#avatar-arrow {
&:before, &:after {
right: 100%;
top: 20px;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
&:before {
border-right-color: #D4D4D5;
border-width: 9px;
margin-top: -9px;
}
&:after {
border-right-color: #f7f7f7;
border-width: 8px;
margin-top: -8px;
}
}
#transfer-repo-modal,
#delete-repo-modal {
.ui.message {
width: 100%!important;
}
}
// generate .tab-size-{i} from 1 to 16
.generate-tab-size(16);
.generate-tab-size(@n, @i: 1) when (@i =< @n) {
.tab-size-@{i} {
tab-size: @i !important;
-moz-tab-size: @i !important;
}
.generate-tab-size(@n, (@i + 1));
}
.stats-table {
display: table;
width: 100%;
.table-cell {
display: table-cell;
&.tiny {
height: .5em;
}
}
}
tbody.commit-list {
vertical-align: baseline;
}
.commit-body {
white-space: pre-wrap;
}
@media only screen and (max-width: 767px) {
.ui.stackable.menu {
&.mobile--margin-between-items > .item {
margin-top: 5px;
margin-bottom: 5px;
}
&.mobile--no-negative-margins {
margin-left: 0;
margin-right: 0;
}
}
}
#topic_edit {
margin-top:5px;
display: none;
}
#repo-topic {
margin-top: 5px;
}
.new-dependency-drop-list {
@media only screen and (max-width: 768px) {
width: 100%;
}
}