140 lines
3.1 KiB
SCSS
140 lines
3.1 KiB
SCSS
@import '../framework/variables';
|
|
@import './conflict_colors';
|
|
@import 'page_bundles/mixins_and_variables_and_functions';
|
|
|
|
@mixin diff-background($background, $idiff, $border) {
|
|
background: $background;
|
|
|
|
&.line_content span.idiff {
|
|
background: $idiff;
|
|
}
|
|
|
|
&.diff-line-num {
|
|
border-color: $border;
|
|
}
|
|
}
|
|
|
|
@mixin dark-diff-match-line {
|
|
color: $dark-diff-match-bg;
|
|
background: $dark-diff-match-color;
|
|
}
|
|
|
|
@mixin diff-expansion($background, $border, $link) {
|
|
background-color: $background;
|
|
|
|
.diff-td,
|
|
td {
|
|
border-top: 1px solid $border;
|
|
border-bottom: 1px solid $border;
|
|
}
|
|
|
|
button {
|
|
color: $link;
|
|
border: 0;
|
|
background: transparent;
|
|
|
|
&[disabled] {
|
|
color: desaturate($link, 100%);
|
|
opacity: 0.5;
|
|
cursor: default;
|
|
}
|
|
|
|
&:hover:not([disabled]) {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
&:not(:focus-visible) {
|
|
outline: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
@mixin line-coverage-border-color($coverage, $no-coverage) {
|
|
transition: border-left 0.1s ease-out;
|
|
|
|
&.coverage {
|
|
border-left: 2px solid $coverage;
|
|
}
|
|
|
|
&.no-coverage {
|
|
border-left: 4px solid $no-coverage;
|
|
}
|
|
}
|
|
|
|
@mixin line-number-hover {
|
|
background-color: $purple-100;
|
|
border-color: $purple-200;
|
|
|
|
a {
|
|
color: $gray-600;
|
|
}
|
|
}
|
|
|
|
@mixin conflict-colors($theme) {
|
|
.diff-line-num {
|
|
&.conflict_marker_our,
|
|
&.conflict_our {
|
|
background-color: map-get($conflict-colors, #{$theme}-header-head-neutral);
|
|
border-color: map-get($conflict-colors, #{$theme}-header-head-neutral);
|
|
}
|
|
|
|
&.conflict_marker_their,
|
|
&.conflict_their {
|
|
background-color: map-get($conflict-colors, #{$theme}-header-origin-neutral);
|
|
border-color: map-get($conflict-colors, #{$theme}-header-origin-neutral);
|
|
}
|
|
}
|
|
|
|
.line_holder {
|
|
.line_content,
|
|
.line-coverage {
|
|
&.conflict_marker_our {
|
|
background-color: map-get($conflict-colors, #{$theme}-header-head-neutral);
|
|
border-color: map-get($conflict-colors, #{$theme}-header-head-neutral);
|
|
}
|
|
|
|
&.conflict_marker_their {
|
|
background-color: map-get($conflict-colors, #{$theme}-header-origin-neutral);
|
|
border-color: map-get($conflict-colors, #{$theme}-header-origin-neutral);
|
|
}
|
|
|
|
&.conflict_our {
|
|
background-color: map-get($conflict-colors, #{$theme}-line-head-neutral);
|
|
border-color: map-get($conflict-colors, #{$theme}-line-head-neutral);
|
|
}
|
|
|
|
&.conflict_their {
|
|
background-color: map-get($conflict-colors, #{$theme}-line-origin-neutral);
|
|
border-color: map-get($conflict-colors, #{$theme}-line-origin-neutral);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@mixin line-number-link($color) {
|
|
min-width: $gl-spacing-scale-9;
|
|
|
|
&::before {
|
|
@include gl-display-none;
|
|
@include gl-align-self-center;
|
|
@include gl-mt-2;
|
|
@include gl-mr-2;
|
|
@include gl-w-4;
|
|
@include gl-h-4;
|
|
@include gl-float-left;
|
|
background-color: $color;
|
|
mask-image: asset_url('icons-stacked.svg#link');
|
|
mask-repeat: no-repeat;
|
|
mask-size: cover;
|
|
mask-position: center;
|
|
content: '';
|
|
}
|
|
|
|
&:hover::before {
|
|
@include gl-display-inline-block;
|
|
}
|
|
|
|
&:focus::before {
|
|
@include gl-display-inline-block;
|
|
}
|
|
}
|