/** * MR -> show: Automerge widget * */ $mr-widget-min-height: 69px; $tabs-holder-z-index: 250; .space-children { @include clearfix; > * { float: left; } > *:not(:first-child) { margin-left: 10px; } } .mr-widget-border-top { border-top: 1px solid $border-color; } .mr-widget-margin-left { margin-left: $mr-widget-margin-left; } .media-section { @include media-breakpoint-down(md) { align-items: flex-start; .media-body { flex-direction: column; align-items: flex-start; } } .code-text { @include media-breakpoint-up(lg) { align-self: center; flex: 1; } } } .mr-widget-section { .code-text { flex: 1; } } .mr-widget-heading { position: relative; border: 1px solid $border-color; border-radius: $border-radius-default; background: var(--white, $white); .gl-skeleton-loader { display: block; } } .mr-widget-extension { border-top: 1px solid $border-color; background-color: $gray-50; &.clickable:hover { background-color: $gray-100; cursor: pointer; } } .mr-widget-workflow { margin-top: $gl-padding; position: relative; &::before { content: ''; border-left: 1px solid $gray-100; position: absolute; left: 28px; top: -17px; height: 16px; } } .mr-section-container { border: 1px solid $border-color; border-radius: $border-radius-default; background: var(--white, $white); > .mr-widget-border-top:first-of-type { border-top: 0; } } .mr-widget-body, .mr-widget-content, .mr-widget-footer { padding: $gl-padding; } .mr-widget-info { padding-left: $gl-padding; padding-right: $gl-padding; } .mr-state-widget { color: $gl-text-color; .commit-message-edit { border-radius: $border-radius-default; } .mr-widget-section:not(:first-child), .mr-widget-footer { border-top: solid 1px $border-color; } .mr-widget-alert-container + .mr-widget-section { border-top: 0; } .mr-fast-forward-message { padding-left: $gl-padding-50; padding-bottom: $gl-padding; } .commits-list { > li { padding: $gl-padding; @include media-breakpoint-up(md) { margin-left: $gl-spacing-scale-7; } } } .mr-commit-dropdown { .dropdown-menu { @include media-breakpoint-up(md) { width: 150%; } } } .mr-widget-footer { padding: 0; } .mr-report { padding: 0; > .media { padding: $gl-padding; } } form { margin-bottom: 0; .clearfix { margin-bottom: 0; } } label { margin-bottom: 0; } .btn { font-size: $gl-font-size; } .accept-merge-holder { .accept-action { display: inline-block; float: left; .accept-merge-request { &.ci-preparing, &.ci-pending, &.ci-running { @include btn-blue; } &.ci-skipped, &.ci-failed, &.ci-canceled, &.ci-error { @include btn-red; } } } } .ci-widget { color: $gl-text-color; display: flex; align-items: center; justify-content: space-between; @include media-breakpoint-down(xs) { flex-wrap: wrap; } .ci-widget-content { display: flex; align-items: center; flex: 1; } } .mr-widget-icon { font-size: 22px; } .mr-loading-icon { margin: 3px 0; } .ci-status-icon svg { margin: 3px 0; position: relative; overflow: visible; display: block; } .mr-widget-pipeline-graph { .dropdown-menu { z-index: $zindex-dropdown-menu; } } .normal { flex: 1; flex-basis: auto; } .capitalize { text-transform: capitalize; } .label-branch { @include gl-font-monospace; font-size: 95%; color: $gl-text-color; font-weight: normal; overflow: hidden; word-break: break-all; } .deploy-link, .label-branch { &.label-truncate { // NOTE: This selector targets its children because some of the HTML comes from // 'source_branch_link'. Once this external HTML is no longer used, we could // simplify this. > a, > span { display: inline-block; max-width: 12.5em; margin-bottom: -3px; white-space: nowrap; text-overflow: ellipsis; line-height: 14px; overflow: hidden; } } } .mr-widget-body { &:not(.mr-widget-body-line-height-1) { line-height: 28px; } @include clearfix; .approve-btn { margin-right: 5px; } h4 { float: left; font-weight: $gl-font-weight-bold; font-size: 14px; line-height: inherit; margin-top: 0; margin-bottom: 0; time { font-weight: $gl-font-weight-normal; } } .btn-grouped { margin-left: 0; margin-right: 7px; } label { font-weight: $gl-font-weight-normal; } .spacing { margin: 0 0 0 10px; } .bold, .gl-font-weight-bold { font-weight: $gl-font-weight-bold; color: $gray-600; margin-left: 10px; } .state-label { font-weight: $gl-font-weight-bold; padding-right: 10px; } .danger { color: $red-500; } .spacing, .bold, .gl-font-weight-bold { vertical-align: middle; } .dropdown-menu { li a { padding: 5px; } .merge-opt-icon { line-height: 1.5; } .merge-opt-title { margin-left: 8px; } } .has-custom-error { display: inline-block; } @include media-breakpoint-down(xs) { p { font-size: 13px; } .btn-grouped { float: none; margin-right: 0; } .accept-action { width: 100%; text-align: center; } } .commit-message-editor { label { padding: 0; } } &.mr-widget-empty-state { line-height: 20px; padding: $gl-padding; .artwork { @include media-breakpoint-down(md) { margin-bottom: $gl-padding; } } .text { p { margin-top: $gl-padding; } .highlight { margin: 0 0 $gl-padding; font-weight: $gl-font-weight-bold; } } } &.mr-pipeline-suggest { border-radius: $border-radius-default; line-height: 20px; border: 1px solid $border-color; .circle-icon-container { color: $gl-text-color-quaternary; } } } .ci-coverage { float: right; } .stop-env-container { color: $gl-text-color; float: right; a { color: $gl-text-color; } } } .mr_source_commit, .mr_target_commit { margin-bottom: 0; .commit { margin: 0; padding: 10px; list-style: none; &:hover { background: none; } } } .commits-empty { text-align: center; h4 { padding-top: 20px; padding-bottom: 10px; } svg { width: 230px; } } .nothing-here-block { img { width: 230px; } } .mr-list { .merge-request { padding: 10px $gl-padding; display: flex; .issuable-info-container { flex: 1; } .merge-request-title { margin-bottom: 2px; .ci-status-link { svg { height: 16px; width: 16px; position: relative; top: 3px; } &:hover, &:focus { text-decoration: none; } } } } } .mr-info-list { clear: left; position: relative; padding-top: 4px; p { margin: 0; position: relative; padding: 4px 0; &:last-child { padding-bottom: 0; } } &.mr-memory-usage { p { float: left; } .memory-graph-container { float: left; margin-left: 5px; } } } .mr-source-target { flex-wrap: wrap; padding: $gl-padding; background: var(--white, $white); min-height: $mr-widget-min-height; @include media-breakpoint-up(md) { align-items: center; } .git-merge-container { justify-content: space-between; flex: 1; flex-direction: row; align-items: center; @include media-breakpoint-down(md) { flex-direction: column; align-items: stretch; .branch-actions { margin-top: 16px; } } @include media-breakpoint-up(lg) { .branch-actions { align-self: center; margin-left: $gl-padding; white-space: nowrap; } } } .diverged-commits-count { color: $gl-text-color-secondary; } } .card-new-merge-request { .card-header { padding: 5px 10px; font-weight: $gl-font-weight-bold; line-height: 25px; } .card-body { padding: 10px 5px; } .card-footer { padding: 0; .btn { min-width: auto; } } .commit { .commit-row-title { margin-bottom: 4px; } .item-title { @include media-breakpoint-up(sm) { width: 45%; } } .avatar { left: 0; top: 2px; } } .btn-clipboard { margin-right: 5px; padding: 0; background: transparent; } .ci-status-link { margin-right: 5px; } } .merge-request-select { padding-left: 5px; padding-right: 5px; margin-bottom: 10px; &:last-child { margin-bottom: 0; } @include media-breakpoint-up(xs) { float: left; width: 50%; margin-bottom: 0; } .dropdown-menu-toggle { width: 100%; } .dropdown-menu { left: 5px; right: 5px; width: auto; } } .issuable-form-select-holder { display: inline-block; width: 250px; .dropdown-menu-toggle { width: 100%; } } .assign-to-me-link { padding-left: 12px; white-space: nowrap; } .table-holder { .ci-table { th { background-color: $white; color: $gl-text-color-secondary; } } } .mr-version-controls { position: relative; z-index: $tabs-holder-z-index + 10; background: $white; color: $gl-text-color; margin-top: -1px; .mr-version-menus-container { display: flex; align-items: center; flex-wrap: wrap; padding: 16px; z-index: 199; white-space: nowrap; .gl-dropdown-toggle { width: auto; max-width: 170px; svg { top: 10px; right: 8px; } } } .content-block { padding: $gl-padding; border-bottom: 0; } .mr-version-dropdown, .mr-version-compare-dropdown { margin: 0 0.5rem; } .dropdown-title { color: $gl-text-color; } // Shortening button height by 1px to make compare-versions // header 56px and fit into our 8px design grid .btn { height: 34px; } @include media-breakpoint-up(md) { position: -webkit-sticky; position: sticky; top: $header-height + $mr-tabs-height; .with-system-header & { top: $header-height + $mr-tabs-height + $system-header-height; } .with-system-header.with-performance-bar & { top: $header-height + $mr-tabs-height + $system-header-height + $performance-bar-height; } .mr-version-menus-container { flex-wrap: nowrap; } .with-performance-bar & { top: $header-height + $performance-bar-height + $mr-tabs-height; } } } .merge-request-tabs-holder, .epic-tabs-holder { top: $header-height; z-index: $tabs-holder-z-index; background-color: $body-bg; border-bottom: 1px solid $border-color; .with-system-header & { top: $header-height + $system-header-height; } .with-system-header.with-performance-bar & { top: $header-height + $system-header-height + $performance-bar-height; } @include media-breakpoint-up(sm) { position: -webkit-sticky; position: sticky; } &.affix { left: 0; transition: right 0.15s; @include media-breakpoint-down(xs) { right: 0; } } .nav-links { border: 0; } } .merge-request-tabs-holder.affix .merge-request-tabs-container, .epic-tabs-holder.affix .epic-tabs-container { padding-left: $gl-padding; padding-right: $gl-padding; } .with-performance-bar { .merge-request-tabs-holder, .epic-tabs-holder { top: $header-height + $performance-bar-height; } } .merge-request-tabs, .epic-tabs { display: flex; flex-wrap: nowrap; margin-bottom: 0; padding: 0; } .limit-container-width { .merge-request-tabs-container, .epic-tabs-container { max-width: $limited-layout-width; margin-left: auto; margin-right: auto; .inner-page-scroll-tabs { background-color: $white; margin-left: -$gl-padding; padding-left: $gl-padding; } } } .merge-request-tabs-container, .epic-tabs-container { display: flex; justify-content: space-between; @include media-breakpoint-down(xs) { .discussion-filter-container, .line-resolve-all-container { margin-bottom: $gl-padding-4; } } .discussion-filter-container { &:not(:only-child) { margin: $gl-padding-4; } } .merge-request-tabs { height: $grid-size * 6; } } .container-fluid { // Negative margins for mobile/tablet screen .diffs.tab-pane { margin: 0 (-$gl-padding); } } // Wrap MR tabs/buttons so you don't have to scroll on desktop @include media-breakpoint-down(md) { .merge-request-tabs-container, .epic-tabs-container { flex-direction: column-reverse; } } @include media-breakpoint-down(lg) { .right-sidebar-expanded { .merge-request-tabs-container, .epic-tabs-container { flex-direction: column-reverse; align-items: flex-start; } } } .limit-container-width:not(.container-limited) { .merge-request-tabs-holder:not(.affix) .merge-request-tabs-container, .epic-tabs-holder:not(.affix) .epic-tabs-container { max-width: $limited-layout-width - ($gl-padding * 2); } } .mr-memory-usage { width: 100%; p.usage-info-loading .usage-info-load-spinner { margin-right: 10px; font-size: 16px; } } .fork-sprite { margin-right: -5px; } .deploy-heading, .merge-train-position-indicator { @include media-breakpoint-up(md) { padding: $gl-padding-8 $gl-padding; } .media-body { min-width: 0; font-size: 12px; margin-left: 32px; } &:not(:last-child) { border-bottom: 1px solid $border-color; } } .deploy-body { display: flex; align-items: center; flex-wrap: wrap; @include media-breakpoint-up(xs) { flex-wrap: nowrap; white-space: nowrap; } @include media-breakpoint-down(md) { flex-direction: column; align-items: flex-start; .deployment-info { margin-bottom: $gl-padding; } } > *:not(:last-child) { margin-right: 0.3em; } svg { vertical-align: text-top; } .deployment-info { flex: 1; white-space: nowrap; text-overflow: ellipsis; min-width: 100px; @include media-breakpoint-up(xs) { min-width: 0; max-width: 100%; } } .dropdown-menu { width: 400px; } } // Hack alert: we've rewritten `btn` class in a way that // we've broken it and it is not possible to use with `btn-link` // which causes a blank button when it's disabled and hovering // The css in here is the boostrap one .btn-link-retry { &[disabled] { cursor: not-allowed; box-shadow: none; opacity: 0.65; &:hover { color: $gray-500; text-decoration: none; } } } .ci-widget-container { justify-content: space-between; flex: 1; flex-direction: row; @include media-breakpoint-down(sm) { flex-direction: column; .stage-cell .stage-container { margin-top: 16px; } .dropdown .mini-pipeline-graph-dropdown-menu.dropdown-menu { transform: initial; } } .coverage { font-size: 12px; color: $gray-500; line-height: initial; } } .merge-request-details .file-finder-overlay.diff-file-finder { position: fixed; z-index: 99999; background: $black-transparent; } .mr-compare { .diff-file .file-title-flex-parent { top: $header-height + $mr-tabs-height + 36px; .with-performance-bar & { top: $performance-bar-height + $header-height + $mr-tabs-height + 36px; } } } .diff-file-row.is-active { background-color: $gray-50; } .mr-conflict-loader { max-width: 334px; > svg { vertical-align: middle; } } .mr-ready-to-merge-loader { max-width: 418px; > svg { vertical-align: middle; } } .mr-widget-alert-container { $radius: $border-radius-default - 1px; border-radius: $radius $radius 0 0; .gl-alert:not(:last-child) { margin-bottom: 1px; } } .mr-widget-extension-icon::before { @include gl-content-empty; @include gl-absolute; @include gl-left-0; @include gl-top-0; @include gl-opacity-3; @include gl-border-solid; @include gl-border-4; @include gl-rounded-full; width: 24px; height: 24px; }