diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-27 21:10:52 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-27 21:10:52 +0300 |
commit | 479221aa79c2e18497589f0aef175a06fb5f5e29 (patch) | |
tree | 08816013065674d37dba23fb0de010d257ae55be /app | |
parent | f719944deedf392d98947cb1c499169696c8da70 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/boards/components/board_card.vue | 2 | ||||
-rw-r--r-- | app/assets/stylesheets/pages/search.scss | 1 | ||||
-rw-r--r-- | app/assets/stylesheets/startup/startup-dark.scss | 1830 | ||||
-rw-r--r-- | app/assets/stylesheets/startup/startup-general.scss | 1481 | ||||
-rw-r--r-- | app/assets/stylesheets/startup/startup-signin.scss | 2007 | ||||
-rw-r--r-- | app/controllers/groups/boards_controller.rb | 1 | ||||
-rw-r--r-- | app/controllers/projects/boards_controller.rb | 1 | ||||
-rw-r--r-- | app/models/bulk_imports/export.rb | 10 | ||||
-rw-r--r-- | app/models/bulk_imports/export_status.rb | 47 | ||||
-rw-r--r-- | app/models/bulk_imports/file_transfer/base_config.rb | 12 | ||||
-rw-r--r-- | app/services/bulk_imports/file_download_service.rb | 2 | ||||
-rw-r--r-- | app/views/layouts/_head.html.haml | 2 | ||||
-rw-r--r-- | app/views/layouts/_startup_css.haml | 3 | ||||
-rw-r--r-- | app/views/layouts/devise.html.haml | 2 | ||||
-rw-r--r-- | app/workers/all_queues.yml | 9 | ||||
-rw-r--r-- | app/workers/bulk_imports/pipeline_worker.rb | 25 | ||||
-rw-r--r-- | app/workers/incident_management/process_prometheus_alert_worker.rb | 23 |
17 files changed, 2302 insertions, 3156 deletions
diff --git a/app/assets/javascripts/boards/components/board_card.vue b/app/assets/javascripts/boards/components/board_card.vue index 795db42d1e3..53c893e0734 100644 --- a/app/assets/javascripts/boards/components/board_card.vue +++ b/app/assets/javascripts/boards/components/board_card.vue @@ -54,7 +54,7 @@ export default { if (e.target.closest('.js-no-trigger')) return; const isMultiSelect = e.ctrlKey || e.metaKey; - if (isMultiSelect) { + if (isMultiSelect && gon?.features?.boardMultiSelect) { this.toggleBoardItemMultiSelection(this.item); } else { this.toggleBoardItem({ boardItem: this.item }); diff --git a/app/assets/stylesheets/pages/search.scss b/app/assets/stylesheets/pages/search.scss index f83ba89daae..2ec2df4b817 100644 --- a/app/assets/stylesheets/pages/search.scss +++ b/app/assets/stylesheets/pages/search.scss @@ -45,6 +45,7 @@ input[type='checkbox']:hover { margin: 0 8px; form { + display: block; margin: 0; padding: 4px; width: $search-input-width; diff --git a/app/assets/stylesheets/startup/startup-dark.scss b/app/assets/stylesheets/startup/startup-dark.scss index 9f7a8860e4d..79c5b24c041 100644 --- a/app/assets/stylesheets/startup/startup-dark.scss +++ b/app/assets/stylesheets/startup/startup-dark.scss @@ -1,4 +1,24 @@ +// DO NOT EDIT! This is auto-generated from "yarn run generate:startup_css" +// Please see the feedback issue for more details and help: +// https://gitlab.com/gitlab-org/gitlab/-/issues/331812 @charset "UTF-8"; +body.gl-dark { + --gray-50: #303030; + --gray-100: #404040; + --gray-200: #525252; + --gray-950: #fff; + --green-100: #0d532a; + --green-400: #108548; + --green-700: #91d4a8; + --blue-200: #0b5cad; + --blue-400: #1f75cb; + --orange-400: #ab6100; + --gl-text-color: #fafafa; + --border-color: #4f4f4f; +} +:root { + --white: #333; +} *, *::before, *::after { @@ -8,68 +28,46 @@ html { font-family: sans-serif; line-height: 1.15; } - header, nav, section { +aside, +header, +nav { display: block; } body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 1rem; font-weight: 400; line-height: 1.5; color: #fafafa; text-align: left; - background-color: #2e2e2e; + background-color: #1f1f1f; } -h1, h2, h3 { +h1 { margin-top: 0; margin-bottom: 0.25rem; } -p { - margin-top: 0; - margin-bottom: 1rem; -} - ul { margin-top: 0; margin-bottom: 1rem; } - ul ul { margin-bottom: 0; } - strong { font-weight: bolder; } -sub { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sub { - bottom: -.25em; -} a { color: #007bff; text-decoration: none; background-color: transparent; } -a:not([href]) { +a:not([href]):not([class]) { color: inherit; text-decoration: none; } -pre, -code { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; - font-size: 1em; -} -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; -} img { vertical-align: middle; border-style: none; @@ -78,18 +76,11 @@ svg { overflow: hidden; vertical-align: middle; } -table { - border-collapse: collapse; -} -th { - text-align: inherit; -} button { border-radius: 0; } input, -button, -textarea { +button { margin: 0; font-family: inherit; font-size: inherit; @@ -102,21 +93,20 @@ input { button { text-transform: none; } +[role="button"] { + cursor: pointer; +} button:not(:disabled), [type="button"]:not(:disabled), -[type="reset"]:not(:disabled) { +[type="submit"]:not(:disabled) { cursor: pointer; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner { +[type="submit"]::-moz-focus-inner { padding: 0; border-style: none; } -textarea { - overflow: auto; - resize: vertical; -} [type="search"] { outline-offset: -2px; } @@ -130,75 +120,21 @@ template { [hidden] { display: none !important; } -h1, h2, h3, -.h1, .h2, .h3 { +h1, +.h1 { margin-bottom: 0.25rem; font-weight: 600; line-height: 1.2; color: #fafafa; } -h1, .h1 { +h1, +.h1 { font-size: 2.1875rem; } -h2, .h2 { - font-size: 1.75rem; -} -h3, .h3 { - font-size: 1.53125rem; -} .list-unstyled { padding-left: 0; list-style: none; } -code { - font-size: 90%; - color: #fff; - word-wrap: break-word; -} -a > code { - color: inherit; -} -pre { - display: block; - font-size: 90%; - color: #fafafa; -} -pre code { - font-size: inherit; - color: inherit; - word-break: normal; -} -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} .container-fluid { width: 100%; padding-right: 15px; @@ -206,48 +142,7 @@ pre code { margin-right: auto; margin-left: auto; } - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} -.row { - display: flex; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} -.table { - width: 100%; - margin-bottom: 0.5rem; - color: #fafafa; -} -.table th, -.table td { - padding: 0.75rem; - vertical-align: top; - border-top: 1px solid #4f4f4f; -} - .search form { +.form-control { display: block; width: 100%; height: 34px; @@ -256,24 +151,27 @@ pre code { font-weight: 400; line-height: 1.5; color: #fafafa; - background-color: #4f4f4f; + background-color: #333; background-clip: padding-box; - border: 1px solid #4f4f4f; + border: 1px solid #404040; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } - .search form:-moz-focusring { +.form-control:-moz-focusring { color: transparent; text-shadow: 0 0 0 #fafafa; } - .search form::placeholder { - color: #ccc; +.form-control::-ms-input-placeholder { + color: #bfbfbf; opacity: 1; } - .search form:disabled { - background-color: #2e2e2e; +.form-control::placeholder { + color: #bfbfbf; + opacity: 1; +} +.form-control:disabled { + background-color: #303030; opacity: 1; } .form-inline { @@ -281,9 +179,8 @@ pre code { flex-flow: row wrap; align-items: center; } - @media (min-width: 576px) { - .form-inline .search form, .search .form-inline form { + .form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; @@ -295,7 +192,7 @@ pre code { color: #fafafa; text-align: center; vertical-align: middle; - cursor: pointer; + -moz-user-select: none; user-select: none; background-color: transparent; border: 1px solid transparent; @@ -304,26 +201,35 @@ pre code { line-height: 20px; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } -.btn.disabled, .btn:disabled { +.btn:disabled { opacity: 0.65; } -a.btn.disabled { +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} +.btn-link:disabled { + color: #bfbfbf; pointer-events: none; } .collapse:not(.show) { display: none; } - .dropdown { position: relative; } - .dropdown-menu-toggle { +.dropdown-toggle, +.dropdown-menu-toggle { white-space: nowrap; } - .dropdown-menu-toggle::after { +.dropdown-toggle::after, +.dropdown-menu-toggle::after { display: inline-block; margin-left: 0.255em; vertical-align: 0.255em; @@ -333,7 +239,8 @@ a.btn.disabled { border-bottom: 0; border-left: 0.3em solid transparent; } - .dropdown-menu-toggle:empty::after { +.dropdown-toggle:empty::after, +.dropdown-menu-toggle:empty::after { margin-left: 0; } .dropdown-menu { @@ -359,15 +266,17 @@ a.btn.disabled { right: 0; left: auto; } - .divider { - height: 0; - margin: 4px 0; - overflow: hidden; - border-top: 1px solid #4f4f4f; -} .dropdown-menu.show { display: block; } +.dropdown-header { + display: block; + padding: 0.5rem 12px; + margin-bottom: 0; + font-size: 0.875rem; + color: #bfbfbf; + white-space: nowrap; +} .nav { display: flex; flex-wrap: wrap; @@ -375,6 +284,10 @@ a.btn.disabled { margin-bottom: 0; list-style: none; } +.nav-link { + display: block; + padding: 0.5rem 1rem; +} .navbar { position: relative; display: flex; @@ -383,7 +296,6 @@ a.btn.disabled { justify-content: space-between; padding: 0.25rem 0.5rem; } -.navbar .container, .navbar .container-fluid { display: flex; flex-wrap: wrap; @@ -397,6 +309,10 @@ a.btn.disabled { margin-bottom: 0; list-style: none; } +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} .navbar-nav .dropdown-menu { position: static; float: none; @@ -414,15 +330,12 @@ a.btn.disabled { border: 1px solid transparent; border-radius: 0.25rem; } - @media (max-width: 575.98px) { - .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { padding-right: 0; padding-left: 0; } } - @media (min-width: 576px) { .navbar-expand-sm { flex-flow: row nowrap; @@ -434,7 +347,10 @@ a.btn.disabled { .navbar-expand-sm .navbar-nav .dropdown-menu { position: absolute; } - .navbar-expand-sm > .container, + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } .navbar-expand-sm > .container-fluid { flex-wrap: nowrap; } @@ -454,7 +370,7 @@ a.btn.disabled { word-wrap: break-word; background-color: #333; background-clip: border-box; - border: 1px solid #4f4f4f; + border: 1px solid #404040; border-radius: 0.25rem; } .badge { @@ -468,7 +384,6 @@ a.btn.disabled { vertical-align: baseline; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } .badge:empty { @@ -483,9 +398,9 @@ a.btn.disabled { padding-left: 0.6em; border-radius: 10rem; } -.media { - display: flex; - align-items: flex-start; +.badge-dark { + color: #303030; + background-color: #f0f0f0; } .close { float: right; @@ -494,55 +409,15 @@ a.btn.disabled { line-height: 1; color: #fff; text-shadow: 0 1px 0 #333; - opacity: .5; + opacity: 0.5; } button.close { padding: 0; background-color: transparent; border: 0; - appearance: none; -} -a.close.disabled { - pointer-events: none; -} -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; -} - -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } -} -.bg-transparent { - background-color: transparent !important; -} -.border { - border: 1px solid #4f4f4f !important; -} -.border-top { - border-top: 1px solid #4f4f4f !important; } -.border-right { - border-right: 1px solid #4f4f4f !important; -} -.border-bottom { - border-bottom: 1px solid #4f4f4f !important; -} -.border-left { - border-left: 1px solid #4f4f4f !important; -} -.rounded { - border-radius: 0.25rem !important; -} -.clearfix::after { - display: block; - clear: both; - content: ""; +.rounded-circle { + border-radius: 50% !important; } .d-none { display: none !important; @@ -553,19 +428,19 @@ a.close.disabled { .d-block { display: block !important; } - @media (min-width: 576px) { .d-sm-none { display: none !important; } } - @media (min-width: 768px) { + .d-md-none { + display: none !important; + } .d-md-block { display: block !important; } } - @media (min-width: 992px) { .d-lg-none { display: none !important; @@ -574,15 +449,14 @@ a.close.disabled { display: block !important; } } - @media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } .d-xl-block { display: block !important; } } -.flex-wrap { - flex-wrap: wrap !important; -} .float-right { float: right !important; } @@ -603,15 +477,13 @@ a.close.disabled { .text-nowrap { white-space: nowrap !important; } -.visible { - visibility: visible !important; -} - .search form.focus { - color: #fafafa; - background-color: #4f4f4f; - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } } .gl-badge { display: inline-flex; @@ -623,49 +495,147 @@ a.close.disabled { padding-bottom: 0.25rem; padding-left: 0.5rem; padding-right: 0.5rem; +} +.gl-badge.sm { + padding-top: 0; + padding-bottom: 0; +} +.gl-badge.badge-muted { + background-color: #303030; + color: #999; +} +a.gl-badge.badge-muted.active, +a.gl-badge.badge-muted:active { + color: #f0f0f0; + background-color: #404040; +} +.gl-new-dropdown .dropdown-menu { + background-color: #333; + border-width: 1px; + border-color: #525252; + margin-top: 0.25rem; + margin-bottom: 0.25rem; + padding: 0; + border-radius: 0.25rem; + box-shadow: 0 2px 4px 0 rgba(255, 255, 255, 0.1); + width: 15rem; +} +.gl-new-dropdown .dropdown-menu li { + padding: 0; +} +.gl-new-dropdown .dropdown-toggle::after, +.gl-new-dropdown .dropdown-menu-toggle::after { + display: none; +} +.gl-new-dropdown .dropdown-toggle.gl-button, +.gl-new-dropdown .gl-button.dropdown-menu-toggle { + padding-right: 0.5rem; +} +.gl-new-dropdown.dropdown .gl-button .dropdown-chevron, +.gl-new-dropdown.dropdown .dropdown-chevron { + margin-left: 0.25rem; + margin-right: 0; +} +.gl-new-dropdown .dropdown-icon { + margin-right: 0.25rem; +} +.gl-spinner-container { + line-height: 0; + text-align: center; +} +.gl-spinner { + position: relative; + display: inline-flex; + border-radius: 50%; + border-style: solid; + margin-left: auto; + margin-right: auto; + margin-top: 0; + margin-bottom: 0; + font-size: 0.875rem; + animation-name: gl-spinner-rotate; + animation-duration: 0.6s; + animation-timing-function: linear; + animation-iteration-count: infinite; + width: 1rem; + height: 1rem; + border-width: 2px; + transform-origin: 50% 50% calc((1rem / 2) + 2px); + border-color: rgba(219, 219, 219, 0.25); + border-top-color: #dbdbdb; +} +.gl-spinner.gl-spinner-md { + width: 1.5rem; + height: 1.5rem; + border-width: 3px; + transform-origin: 50% 50% calc((1.5rem / 2) + 3px); +} +.gl-button { + display: inline-flex; +} +.gl-button.gl-button { + border-width: 0; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + background-color: transparent; + line-height: 1rem; + color: #fafafa; + fill: currentColor; + box-shadow: inset 0 0 0 1px #525252; + justify-content: center; + align-items: center; + font-size: 0.875rem; + border-radius: 0.25rem; +} +.gl-button.gl-button.btn-default { + background-color: #333; +} +.gl-button.gl-button.btn-default:active, +.gl-button.gl-button.btn-default.active { + box-shadow: inset 0 0 0 2px #bfbfbf, 0 0 0 1px rgba(51, 51, 51, 0.4), + 0 0 0 4px rgba(66, 143, 220, 0.48); outline: none; + background-color: #404040; } -body, .search form, +.gl-button.gl-button.btn-link { + background-color: transparent; + border-width: 0; + font-size: 0.875rem; + line-height: 1rem; + color: #428fdc; + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + box-shadow: none; +} +.gl-button.gl-button.btn-link:active { + color: #9dc7f1; + text-decoration: underline; +} +body, +.form-control, .search form { font-size: 0.875rem; } button, -html [type='button'], -[type='reset'], -[role='button'] { +html [type="button"], +[type="submit"], +[role="button"] { cursor: pointer; } h1, -.h1, -h2, -.h2, -h3, -.h3 { +.h1 { margin-top: 20px; margin-bottom: 10px; } -input[type='file'] { - line-height: 1; -} - strong { font-weight: bold; } a { - color: #418cd8; -} -code { - padding: 2px 4px; - color: #fff; - background-color: #2e2e2e; - border-radius: 4px; -} -.code > code { - background-color: inherit; - padding: unset; -} -table { - border-spacing: 0; + color: #63a6e9; } .hidden { display: none !important; @@ -674,7 +644,8 @@ table { .hide { display: none; } - .dropdown-menu-toggle::after { +.dropdown-toggle::after, +.dropdown-menu-toggle::after { display: none; } .badge:not(.gl-badge) { @@ -684,13 +655,16 @@ table { font-weight: 400; display: inline-block; } -pre code { - white-space: pre-wrap; +.divider { + height: 0; + margin: 4px 0; + overflow: hidden; + border-top: 1px solid #404040; } .toggle-sidebar-button .collapse-text, .toggle-sidebar-button .icon-chevron-double-lg-left, .toggle-sidebar-button .icon-chevron-double-lg-right { - color: #bababa; + color: #999; } svg { vertical-align: baseline; @@ -701,42 +675,34 @@ html { body { text-decoration-skip: ink; } -.content-wrapper { - margin-top: 40px; - padding-bottom: 100px; -} -.container { - padding-top: 0; - z-index: 5; -} -.container .content { - margin: 0; -} - -@media (max-width: 575.98px) { - .container .content { - margin-top: 20px; +@keyframes spin { + 0% { + transform: rotate(0deg); } -} - -@media (max-width: 575.98px) { - .container .container .title { - padding-left: 15px !important; + 100% { + transform: rotate(360deg); } } +.gl-spinner { + animation-name: spin; + animation-iteration-count: infinite; + animation-timing-function: linear; + animation-duration: 1s; + transform-origin: 50% 50%; +} .btn { border-radius: 4px; font-size: 0.875rem; font-weight: 400; padding: 6px 10px; background-color: #333; - border-color: #4f4f4f; + border-color: #404040; color: #fafafa; color: #fafafa; white-space: nowrap; } -.btn:active, .btn.active { - box-shadow: rgba(0, 0, 0, 0.16); +.btn:active, +.btn.active { background-color: #444; border-color: #fafafa; color: #fafafa; @@ -745,64 +711,35 @@ body { height: 15px; width: 15px; } -.btn svg:not(:last-child), -.btn .fa:not(:last-child) { +.btn svg:not(:last-child) { margin-right: 5px; } +.btn-link { + padding: 0; + background-color: transparent; + color: #63a6e9; + font-weight: normal; + border-radius: 0; + border-color: transparent; + border-width: 0; +} .badge.badge-pill:not(.gl-badge) { font-weight: 400; - background-color: rgba(0, 0, 0, 0.07); - color: #dfdfdf; + background-color: rgba(255, 255, 255, 0.07); + color: #dbdbdb; vertical-align: baseline; } -.hint { - font-style: italic; - color: #707070; -} -.bold { - font-weight: 600; -} -pre.wrap { - word-break: break-word; - white-space: pre-wrap; -} -table a code { - position: relative; - top: -2px; - margin-right: 3px; -} -.loading { - margin: 20px auto; - height: 40px; - color: #dfdfdf; - font-size: 32px; - text-align: center; -} -.highlight { - text-shadow: none; -} .chart { overflow: hidden; height: 220px; } -.break-word { - word-wrap: break-word; -} -.center { - text-align: center; -} -.block { - display: block; -} -.flex { - display: flex; -} -.flex-grow { - flex-grow: 1; -} .dropdown { position: relative; } +.dropdown.gl-new-dropdown button.dropdown-toggle, +.dropdown.gl-new-dropdown button.dropdown-menu-toggle { + display: inline-flex; +} .show.dropdown .dropdown-menu { transform: translateY(0); display: block; @@ -810,47 +747,57 @@ table a code { max-height: 312px; overflow-y: auto; } - +.show.dropdown .dropdown-menu.dropdown-extended-height { + max-height: 400px; +} @media (max-width: 575.98px) { .show.dropdown .dropdown-menu { width: 100%; } } - .show.dropdown .dropdown-menu-toggle, +.show.dropdown .dropdown-menu.frequent-items-dropdown-menu { + padding: 0; + overflow-y: initial; + max-height: initial; +} +.show.dropdown .dropdown-toggle, +.show.dropdown .dropdown-menu-toggle, .show.dropdown .dropdown-menu-toggle { border-color: #c4c4c4; } -.show.dropdown [data-toggle='dropdown'] { +.show.dropdown [data-toggle="dropdown"] { outline: 0; } .search-input-container .dropdown-menu { margin-top: 11px; } - .dropdown-menu-toggle { +.dropdown-toggle, +.dropdown-menu-toggle { padding: 6px 8px 6px 10px; background-color: #333; color: #fafafa; font-size: 14px; text-align: left; - border: 1px solid #4f4f4f; + border: 1px solid #404040; border-radius: 0.25rem; white-space: nowrap; } - .no-outline.dropdown-menu-toggle { +.dropdown-toggle.no-outline, +.no-outline.dropdown-menu-toggle { outline: 0; } - .dropdown-menu-toggle .fa { - color: #c4c4c4; -} -.dropdown-menu-toggle { +.dropdown-menu-toggle.dropdown-menu-toggle { + justify-content: flex-start; + overflow: hidden; padding-right: 25px; position: relative; - width: 160px; text-overflow: ellipsis; - overflow: hidden; + width: 160px; } -.dropdown-menu-toggle .fa { +.dropdown-menu-toggle.dropdown-menu-toggle .gl-spinner { position: absolute; + top: 9px; + right: 8px; } .dropdown-menu { display: none; @@ -866,7 +813,7 @@ table a code { font-weight: 400; padding: 8px 0; background-color: #333; - border: 1px solid #4f4f4f; + border: 1px solid #404040; border-radius: 0.25rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } @@ -881,7 +828,9 @@ table a code { padding: 0 1px; } .dropdown-menu li > a, -.dropdown-menu li button { +.dropdown-menu li button, +.dropdown-menu li .gl-button.btn-link, +.dropdown-menu li .menu-item { background: transparent; border: 0; border-radius: 0; @@ -901,7 +850,19 @@ table a code { height: 1px; margin: 0.25rem 0; padding: 0; - background-color: #4f4f4f; + background-color: #404040; +} +.dropdown-menu .dropdown-header { + color: #fff; + font-size: 13px; + font-weight: 600; + line-height: 16px; + padding: 8px 12px; +} +.dropdown-menu .dropdown-bold-header { + font-weight: 600; + line-height: 16px; + padding: 8px 12px; } .dropdown-menu .badge.badge-pill + span:not(.badge):not(.badge-pill) { margin-right: 40px; @@ -909,7 +870,6 @@ table a code { .dropdown-select { width: 300px; } - @media (max-width: 767.98px) { .dropdown-select { width: 100%; @@ -930,123 +890,96 @@ table a code { background-color: rgba(51, 51, 51, 0.6); font-size: 28px; } -.dropdown-loading .fa { - position: absolute; - top: 50%; - left: 50%; - margin-top: -14px; - margin-left: -14px; -} - @media (max-width: 575.98px) { .navbar-gitlab li.dropdown { position: static; } + .navbar-gitlab li.dropdown.user-counter { + margin-left: 8px !important; + } + .navbar-gitlab li.dropdown.user-counter > a { + padding: 0 4px !important; + } header.navbar-gitlab .dropdown .dropdown-menu { width: 100%; min-width: 100%; } } - -@media (max-width: 767.98px) { - .dropdown-menu-toggle { - width: 100%; - } -} -textarea { - resize: vertical; -} -input { - border-radius: 0.25rem; - color: #fafafa; - background-color: #4f4f4f; -} - .search form { - border-radius: 4px; - padding: 6px 10px; +header.header-content .dropdown-menu.frequent-items-dropdown-menu { + padding: 0; } - .search form::placeholder { - color: #a7a7a7; +.frequent-items-dropdown-container { + display: flex; + flex-direction: row; + height: 20rem; } -body.ui-indigo .navbar-gitlab { - background-color: #292961; +.frequent-items-dropdown-container.with-deprecated-styles { + width: 500px; + height: 354px; } -body.ui-indigo .navbar-gitlab .navbar-collapse { - color: #d1d1f0; +.frequent-items-dropdown-container.with-deprecated-styles + .search-input-container { + position: relative; + padding: 4px 16px; } -body.ui-indigo .navbar-gitlab .container-fluid .navbar-toggler { - border-left: 1px solid #6868b9; +.frequent-items-dropdown-container.with-deprecated-styles + .search-input-container + .search-icon { + position: absolute; + top: 13px; + right: 25px; + color: #5e5e5e; } -body.ui-indigo .navbar-gitlab .container-fluid .navbar-toggler svg { - fill: #d1d1f0; +@media (max-width: 575.98px) { + .frequent-items-dropdown-container.with-deprecated-styles { + flex-direction: column; + width: 100%; + height: auto; + flex: 1; + } + .frequent-items-dropdown-container.with-deprecated-styles + .frequent-items-dropdown-sidebar, + .frequent-items-dropdown-container.with-deprecated-styles + .frequent-items-dropdown-content { + width: 100%; + } + .frequent-items-dropdown-container.with-deprecated-styles + .frequent-items-dropdown-sidebar { + border-bottom: 1px solid #404040; + border-right: 0; + } } -body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.active > a, -body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.active > button, body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.dropdown.show > a, -body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.dropdown.show > button, -body.ui-indigo .navbar-gitlab .navbar-nav > li.active > a, -body.ui-indigo .navbar-gitlab .navbar-nav > li.active > button, -body.ui-indigo .navbar-gitlab .navbar-nav > li.dropdown.show > a, -body.ui-indigo .navbar-gitlab .navbar-nav > li.dropdown.show > button { - color: #292961; - background-color: #333; +.frequent-items-dropdown-container .frequent-items-dropdown-sidebar, +.frequent-items-dropdown-container .frequent-items-dropdown-content { + padding-top: 0.5rem; } -body.ui-indigo .navbar-gitlab .navbar-sub-nav { - color: #d1d1f0; +.frequent-items-dropdown-container .frequent-items-dropdown-sidebar { + width: 30%; + border-right: 1px solid #404040; } -body.ui-indigo .navbar-gitlab .nav > li { - color: #d1d1f0; +.frequent-items-dropdown-container .frequent-items-dropdown-content { + position: relative; + width: 70%; } -body.ui-indigo .navbar-gitlab .nav > li > a.header-user-dropdown-toggle .header-user-avatar { - border-color: #d1d1f0; +@media (max-width: 767.98px) { + .dropdown-menu-toggle { + width: 100%; + } } -body.ui-indigo .navbar-gitlab .nav > li.active > a, -body.ui-indigo .navbar-gitlab .nav > li.dropdown.show > a { - color: #292961; +input { + border-radius: 0.25rem; + color: #fafafa; background-color: #333; } -body.ui-indigo .search form { - background-color: rgba(209, 209, 240, 0.2); -} -body.ui-indigo .search .search-input::placeholder { - color: rgba(209, 209, 240, 0.8); -} -body.ui-indigo .search .search-input-wrap .search-icon, -body.ui-indigo .search .search-input-wrap .clear-icon { - fill: rgba(209, 209, 240, 0.8); -} -body.ui-indigo .nav-sidebar li.active { - box-shadow: inset 4px 0 0 #4b4ba3; -} -body.ui-indigo .nav-sidebar li.active > a { - color: #393982; -} -body.ui-indigo .nav-sidebar li.active .nav-icon-container svg { - fill: #393982; -} -body.ui-indigo .sidebar-top-level-items > li.active .badge.badge-pill { - color: #393982; -} -body.gl-dark .logo-text svg { - fill: #fafafa; -} -body.gl-dark .navbar-gitlab { - background-color: #2e2e2e; - box-shadow: 0 1px 0 0 var(--gray-100); +.form-control { + border-radius: 4px; + padding: 6px 10px; } -body.gl-dark .navbar-gitlab .navbar-sub-nav li.active > a, -body.gl-dark .navbar-gitlab .navbar-sub-nav li.active > button, -body.gl-dark .navbar-gitlab .navbar-sub-nav li.dropdown.show > a, -body.gl-dark .navbar-gitlab .navbar-sub-nav li.dropdown.show > button, -body.gl-dark .navbar-gitlab .navbar-nav li.active > a, -body.gl-dark .navbar-gitlab .navbar-nav li.active > button, -body.gl-dark .navbar-gitlab .navbar-nav li.dropdown.show > a, -body.gl-dark .navbar-gitlab .navbar-nav li.dropdown.show > button { - color: #fafafa; - background-color: #707070; +.form-control::-ms-input-placeholder { + color: #868686; } -body.gl-dark .navbar-gitlab .search form { - background-color: #4f4f4f; - box-shadow: inset 0 0 0 1px #4f4f4f; +.form-control::placeholder { + color: #868686; } .navbar-gitlab { padding: 0 16px; @@ -1054,7 +987,6 @@ body.gl-dark .navbar-gitlab .search form { margin-bottom: 0; min-height: 40px; border: 0; - border-bottom: 1px solid #4f4f4f; position: fixed; top: 0; left: 0; @@ -1104,9 +1036,6 @@ body.gl-dark .navbar-gitlab .search form { .navbar-gitlab .header-content .title img + .logo-text { margin-left: 8px; } -.navbar-gitlab .header-content .title.wrap { - white-space: normal; -} .navbar-gitlab .header-content .title a { display: flex; align-items: center; @@ -1114,9 +1043,6 @@ body.gl-dark .navbar-gitlab .search form { margin: 5px 2px 5px -8px; border-radius: 4px; } -.navbar-gitlab .header-content .dropdown.open > a { - border-bottom-color: #333; -} .navbar-gitlab .header-content .navbar-collapse > ul.nav > li:not(.d-none) { margin: 0 2px; } @@ -1125,7 +1051,6 @@ body.gl-dark .navbar-gitlab .search form { border-top: 0; padding: 0; } - @media (max-width: 575.98px) { .navbar-gitlab .navbar-collapse { flex: 1 1 auto; @@ -1134,7 +1059,6 @@ body.gl-dark .navbar-gitlab .search form { .navbar-gitlab .navbar-collapse .nav { flex-wrap: nowrap; } - @media (max-width: 575.98px) { .navbar-gitlab .navbar-collapse .nav > li:not(.d-none) a { margin-left: 0; @@ -1157,7 +1081,6 @@ body.gl-dark .navbar-gitlab .search form { text-align: center; color: currentColor; } - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid .navbar-nav { display: flex; @@ -1165,11 +1088,14 @@ body.gl-dark .navbar-gitlab .search form { flex-direction: row; } } -.navbar-gitlab .container-fluid .navbar-nav li .badge.badge-pill { +.navbar-gitlab + .container-fluid + .navbar-nav + li + .badge.badge-pill:not(.merge-request-badge) { box-shadow: none; font-weight: 600; } - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid .nav > li.header-user { padding-left: 10px; @@ -1181,7 +1107,6 @@ body.gl-dark .navbar-gitlab .search form { padding: 6px 8px; height: 32px; } - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid .nav > li > a { padding: 0; @@ -1190,7 +1115,12 @@ body.gl-dark .navbar-gitlab .search form { .navbar-gitlab .container-fluid .nav > li > a.header-user-dropdown-toggle { margin-left: 2px; } -.navbar-gitlab .container-fluid .nav > li > a.header-user-dropdown-toggle .header-user-avatar { +.navbar-gitlab + .container-fluid + .nav + > li + > a.header-user-dropdown-toggle + .header-user-avatar { margin-right: 0; } .navbar-gitlab .container-fluid .nav > li .header-new-dropdown-toggle { @@ -1211,7 +1141,9 @@ body.gl-dark .navbar-gitlab .search form { height: 32px; font-weight: 600; } +.navbar-sub-nav > li .top-nav-toggle, .navbar-sub-nav > li > button, +.navbar-nav > li .top-nav-toggle, .navbar-nav > li > button { background: transparent; border: 0; @@ -1224,6 +1156,11 @@ body.gl-dark .navbar-gitlab .search form { display: flex; margin: 0 0 0 6px; } +.navbar-sub-nav .dropdown-chevron { + position: relative; + top: -1px; + font-size: 10px; +} .caret-down, .btn .caret-down { top: 0; @@ -1249,31 +1186,25 @@ body.gl-dark .navbar-gitlab .search form { font-weight: 400; margin-left: -6px; font-size: 11px; - color: #333; + color: var(--gray-950, #333); padding: 0 5px; line-height: 12px; border-radius: 7px; box-shadow: 0 1px 0 rgba(76, 78, 84, 0.2); } -.title-container .badge.badge-pill.green-badge, -.navbar-nav .badge.badge-pill.green-badge { - background-color: #1aaa55; +.title-container .badge.badge-pill:not(.merge-request-badge).green-badge, +.navbar-nav .badge.badge-pill:not(.merge-request-badge).green-badge { + background-color: var(--green-400, #108548); } -.title-container .badge.badge-pill.merge-requests-count, -.navbar-nav .badge.badge-pill.merge-requests-count { - background-color: #fca429; +.title-container + .badge.badge-pill:not(.merge-request-badge).merge-requests-count, +.navbar-nav .badge.badge-pill:not(.merge-request-badge).merge-requests-count { + background-color: var(--orange-400, #ab6100); } -.title-container .badge.badge-pill.todos-count, -.navbar-nav .badge.badge-pill.todos-count { - background-color: #1f78d1; +.title-container .badge.badge-pill:not(.merge-request-badge).todos-count, +.navbar-nav .badge.badge-pill:not(.merge-request-badge).todos-count { + background-color: var(--blue-400, #1f75cb); } -.title-container .canary-badge .badge, -.navbar-nav .canary-badge .badge { - font-size: 12px; - line-height: 16px; - padding: 0 0.5rem; -} - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid { font-size: 18px; @@ -1300,7 +1231,7 @@ body.gl-dark .navbar-gitlab .search form { } .header-user.show .dropdown-menu { margin-top: 4px; - color: #fafafa; + color: var(--gl-text-color, #fafafa); left: auto; max-height: 445px; } @@ -1313,30 +1244,35 @@ body.gl-dark .navbar-gitlab .search form { border-radius: 50%; border: 1px solid #333; } -.media { - display: flex; - align-items: flex-start; +.notification-dot { + background-color: #9e5400; + height: 12px; + width: 12px; + margin-top: -15px; + pointer-events: none; + visibility: hidden; } -.card { - margin-bottom: 16px; +.top-nav-toggle .dropdown-icon { + margin-right: 0.5rem; } -.content-wrapper { - width: 100%; +.top-nav-toggle .dropdown-chevron { + top: 0; } -.content-wrapper .container-fluid { - padding: 0 16px; +.tanuki-logo .tanuki-left-ear, +.tanuki-logo .tanuki-right-ear, +.tanuki-logo .tanuki-nose { + fill: #e24329; } - -@media (min-width: 768px) { - .page-with-contextual-sidebar { - padding-left: 50px; - } +.tanuki-logo .tanuki-left-eye, +.tanuki-logo .tanuki-right-eye { + fill: #fc6d26; } - -@media (min-width: 1200px) { - .page-with-contextual-sidebar { - padding-left: 220px; - } +.tanuki-logo .tanuki-left-cheek, +.tanuki-logo .tanuki-right-cheek { + fill: #fca326; +} +.card { + margin-bottom: 16px; } .context-header { position: relative; @@ -1367,104 +1303,85 @@ body.gl-dark .navbar-gitlab .search form { font-weight: normal; font-size: 0.8em; } -.nav-sidebar { +@media (min-width: 768px) { + body:not(.sidebar-refactoring) .page-with-contextual-sidebar { + padding-left: 50px; + } +} +@media (min-width: 1200px) { + body:not(.sidebar-refactoring) .page-with-contextual-sidebar { + padding-left: 220px; + } +} +body:not(.sidebar-refactoring) .nav-sidebar { position: fixed; z-index: 600; width: 220px; top: 40px; bottom: 0; left: 0; - background-color: #2e2e2e; - box-shadow: inset -1px 0 0 #4f4f4f; + background-color: #303030; + box-shadow: inset -1px 0 0 #404040; transform: translate3d(0, 0, 0); } - @media (min-width: 576px) and (max-width: 576px) { - .nav-sidebar:not(.sidebar-collapsed-desktop) { - box-shadow: inset -1px 0 0 #4f4f4f, 2px 1px 3px rgba(0, 0, 0, 0.1); + body:not(.sidebar-refactoring) .nav-sidebar:not(.sidebar-collapsed-desktop) { + box-shadow: inset -1px 0 0 #404040, 2px 1px 3px rgba(0, 0, 0, 0.1); } } -.nav-sidebar.sidebar-collapsed-desktop { - width: 50px; -} -.nav-sidebar.sidebar-collapsed-desktop .nav-sidebar-inner-scroll { - overflow-x: hidden; -} -.nav-sidebar.sidebar-collapsed-desktop .badge.badge-pill:not(.fly-out-badge), -.nav-sidebar.sidebar-collapsed-desktop .sidebar-context-title, -.nav-sidebar.sidebar-collapsed-desktop .nav-item-name { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - white-space: nowrap; - width: 1px; -} -.nav-sidebar.sidebar-collapsed-desktop .sidebar-top-level-items > li > a { - min-height: 45px; -} -.nav-sidebar.sidebar-collapsed-desktop .fly-out-top-item { - display: block; -} -.nav-sidebar.sidebar-collapsed-desktop .avatar-container { - margin: 0 auto; -} -.nav-sidebar.sidebar-expanded-mobile { - left: 0; -} -.nav-sidebar a { +body:not(.sidebar-refactoring) .nav-sidebar a { text-decoration: none; } -.nav-sidebar ul { +body:not(.sidebar-refactoring) .nav-sidebar ul { padding-left: 0; list-style: none; } -.nav-sidebar li { +body:not(.sidebar-refactoring) .nav-sidebar li { white-space: nowrap; } -.nav-sidebar li a { +body:not(.sidebar-refactoring) .nav-sidebar li a { display: flex; align-items: center; padding: 12px 16px; - color: #bababa; + color: #999; } -.nav-sidebar li .nav-item-name { +body:not(.sidebar-refactoring) .nav-sidebar li .nav-item-name { flex: 1; } -.nav-sidebar li.active > a { +body:not(.sidebar-refactoring) .nav-sidebar li.active > a { font-weight: 600; } - @media (max-width: 767.98px) { - .nav-sidebar { + body:not(.sidebar-refactoring) .nav-sidebar { left: -220px; } } -.nav-sidebar .nav-icon-container { +body:not(.sidebar-refactoring) .nav-sidebar .nav-icon-container { display: flex; margin-right: 8px; } -.nav-sidebar .fly-out-top-item { +body:not(.sidebar-refactoring) .nav-sidebar .fly-out-top-item { display: none; } -.nav-sidebar svg { +body:not(.sidebar-refactoring) .nav-sidebar svg { height: 16px; width: 16px; } - @media (min-width: 768px) and (max-width: 1199px) { - .nav-sidebar:not(.sidebar-expanded-mobile) { + body:not(.sidebar-refactoring) .nav-sidebar:not(.sidebar-expanded-mobile) { width: 50px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-sidebar-inner-scroll { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-sidebar-inner-scroll { overflow-x: hidden; } - .nav-sidebar:not(.sidebar-expanded-mobile) .badge.badge-pill:not(.fly-out-badge), - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-context-title, - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-item-name { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .badge.badge-pill:not(.fly-out-badge), + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-item-name { border: 0; clip: rect(0, 0, 0, 0); height: 1px; @@ -1475,273 +1392,476 @@ body.gl-dark .navbar-gitlab .search form { white-space: nowrap; width: 1px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-top-level-items > li > a { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + > a { min-height: 45px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .fly-out-top-item { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .fly-out-top-item { display: block; } - .nav-sidebar:not(.sidebar-expanded-mobile) .avatar-container { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .avatar-container { margin: 0 auto; } - .nav-sidebar:not(.sidebar-expanded-mobile) .context-header { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header { height: 60px; width: 50px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .context-header a { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header + a { padding: 10px 4px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-top-level-items > li .sidebar-sub-level-items:not(.flyout-list) { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-context-title { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + } + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + .sidebar-sub-level-items:not(.flyout-list) { display: none; } - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-icon-container { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-icon-container { margin-right: 0; } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button { padding: 16px; width: 49px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .collapse-text, - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .icon-chevron-double-lg-left { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .collapse-text, + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-left { display: none; } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .icon-chevron-double-lg-right { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-right { display: block; margin: 0; } } -.nav-sidebar-inner-scroll { +body:not(.sidebar-refactoring) .nav-sidebar-inner-scroll { height: 100%; width: 100%; overflow: auto; } -.sidebar-sub-level-items { +body:not(.sidebar-refactoring) .sidebar-sub-level-items { display: none; padding-bottom: 8px; } -.sidebar-sub-level-items > li a { +body:not(.sidebar-refactoring) .sidebar-sub-level-items > li a { padding: 8px 16px 8px 40px; } -.sidebar-top-level-items { +body:not(.sidebar-refactoring) .sidebar-top-level-items { margin-bottom: 60px; } - @media (min-width: 576px) { - .sidebar-top-level-items > li > a { + body:not(.sidebar-refactoring) .sidebar-top-level-items > li > a { margin-right: 1px; } } -.sidebar-top-level-items > li .badge.badge-pill { +body:not(.sidebar-refactoring) .sidebar-top-level-items > li .badge.badge-pill { background-color: rgba(255, 255, 255, 0.08); - color: #bababa; + color: #999; } -.sidebar-top-level-items > li.active { +body:not(.sidebar-refactoring) .sidebar-top-level-items > li.active { background: rgba(255, 255, 255, 0.04); } -.sidebar-top-level-items > li.active > a { +body:not(.sidebar-refactoring) .sidebar-top-level-items > li.active > a { margin-left: 4px; padding-left: 12px; } -.sidebar-top-level-items > li.active .badge.badge-pill { +body:not(.sidebar-refactoring) + .sidebar-top-level-items + > li.active + .badge.badge-pill { font-weight: 600; } -.sidebar-top-level-items > li.active .sidebar-sub-level-items:not(.is-fly-out-only) { +body:not(.sidebar-refactoring) + .sidebar-top-level-items + > li.active + .sidebar-sub-level-items:not(.is-fly-out-only) { display: block; } -.toggle-sidebar-button, -.close-nav-button { - width: 219px; - position: fixed; +body:not(.sidebar-refactoring) .toggle-sidebar-button, +body:not(.sidebar-refactoring) .close-nav-button { height: 48px; - bottom: 0; padding: 0 16px; - background-color: #2e2e2e; + background-color: #303030; border: 0; - border-top: 1px solid #4f4f4f; - color: #bababa; + color: #999; display: flex; align-items: center; } -.toggle-sidebar-button svg, -.close-nav-button svg { +body:not(.sidebar-refactoring) .toggle-sidebar-button, +body:not(.sidebar-refactoring) .close-nav-button { + position: fixed; + bottom: 0; + width: 219px; + border-top: 1px solid #404040; +} +body:not(.sidebar-refactoring) .toggle-sidebar-button svg, +body:not(.sidebar-refactoring) .close-nav-button svg { margin-right: 8px; } -.toggle-sidebar-button .icon-chevron-double-lg-right, -.close-nav-button .icon-chevron-double-lg-right { +body:not(.sidebar-refactoring) + .toggle-sidebar-button + .icon-chevron-double-lg-right, +body:not(.sidebar-refactoring) .close-nav-button .icon-chevron-double-lg-right { display: none; } -.collapse-text { +body:not(.sidebar-refactoring) .collapse-text { white-space: nowrap; overflow: hidden; } -.sidebar-collapsed-desktop .context-header { - height: 60px; - width: 50px; +body:not(.sidebar-refactoring) .fly-out-top-item > a { + display: flex; } -.sidebar-collapsed-desktop .context-header a { - padding: 10px 4px; +body:not(.sidebar-refactoring) .fly-out-top-item .fly-out-badge { + margin-left: 8px; } -.sidebar-collapsed-desktop .sidebar-top-level-items > li .sidebar-sub-level-items:not(.flyout-list) { +body:not(.sidebar-refactoring) .fly-out-top-item-name { + flex: 1; +} +body:not(.sidebar-refactoring) .close-nav-button { display: none; } -.sidebar-collapsed-desktop .nav-icon-container { - margin-right: 0; +@media (max-width: 767.98px) { + body:not(.sidebar-refactoring) .close-nav-button { + display: flex; + } + body:not(.sidebar-refactoring) .toggle-sidebar-button { + display: none; + } } -.sidebar-collapsed-desktop .toggle-sidebar-button { - padding: 16px; - width: 49px; +@media (min-width: 768px) { + body.sidebar-refactoring .page-with-contextual-sidebar { + padding-left: 50px; + } } -.sidebar-collapsed-desktop .toggle-sidebar-button .collapse-text, -.sidebar-collapsed-desktop .toggle-sidebar-button .icon-chevron-double-lg-left { - display: none; +@media (min-width: 1200px) { + body.sidebar-refactoring .page-with-contextual-sidebar { + padding-left: 220px; + } } -.sidebar-collapsed-desktop .toggle-sidebar-button .icon-chevron-double-lg-right { - display: block; - margin: 0; +body.sidebar-refactoring .nav-sidebar { + position: fixed; + z-index: 600; + width: 220px; + top: 40px; + bottom: 0; + left: 0; + background: linear-gradient(#cbbbf2, #8f4700); + box-shadow: inset -1px 0 0 #404040; + transform: translate3d(0, 0, 0); } -.fly-out-top-item > a { - display: flex; +@media (min-width: 576px) and (max-width: 576px) { + body.sidebar-refactoring .nav-sidebar:not(.sidebar-collapsed-desktop) { + box-shadow: inset -1px 0 0 #404040, 2px 1px 3px rgba(0, 0, 0, 0.1); + } } -.fly-out-top-item .fly-out-badge { - margin-left: 8px; +body.sidebar-refactoring .nav-sidebar a { + text-decoration: none; +} +body.sidebar-refactoring .nav-sidebar ul { + padding-left: 0; + list-style: none; +} +body.sidebar-refactoring .nav-sidebar li { + white-space: nowrap; } -.fly-out-top-item-name { +body.sidebar-refactoring .nav-sidebar li a { + display: flex; + align-items: center; + padding: 12px 16px; + color: #999; +} +body.sidebar-refactoring .nav-sidebar li .nav-item-name { flex: 1; } -.close-nav-button { - display: none; +body.sidebar-refactoring .nav-sidebar li.active > a { + font-weight: 600; } - @media (max-width: 767.98px) { - .close-nav-button { - display: flex; + body.sidebar-refactoring .nav-sidebar { + left: -220px; + } +} +body.sidebar-refactoring .nav-sidebar .nav-icon-container { + display: flex; + margin-right: 8px; +} +body.sidebar-refactoring .nav-sidebar .fly-out-top-item { + display: none; +} +body.sidebar-refactoring .nav-sidebar svg { + height: 16px; + width: 16px; +} +@media (min-width: 768px) and (max-width: 1199px) { + body.sidebar-refactoring .nav-sidebar:not(.sidebar-expanded-mobile) { + width: 50px; } - .toggle-sidebar-button { + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-sidebar-inner-scroll { + overflow-x: hidden; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .badge.badge-pill:not(.fly-out-badge), + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-item-name { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + > a { + min-height: 45px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .fly-out-top-item { + display: block; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .avatar-container { + margin: 0 auto; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header { + height: 60px; + width: 50px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header + a { + padding: 10px 4px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-context-title { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + .sidebar-sub-level-items:not(.flyout-list) { + display: none; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-icon-container { + margin-right: 0; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button { + padding: 16px; + width: 49px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .collapse-text, + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-left { display: none; } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-right { + display: block; + margin: 0; + } } -table.table { - margin-bottom: 16px; +body.sidebar-refactoring .nav-sidebar-inner-scroll { + height: 100%; + width: 100%; + overflow: auto; } -table.table .dropdown-menu a { - text-decoration: none; +body.sidebar-refactoring .sidebar-sub-level-items { + display: none; + padding-bottom: 8px; } -table.table .success, -table.table .info { - color: #333; +body.sidebar-refactoring .sidebar-sub-level-items > li a { + padding: 8px 16px 8px 40px; } -table.table .success a:not(.btn), -table.table .info a:not(.btn) { - text-decoration: underline; - color: #333; +body.sidebar-refactoring .sidebar-top-level-items { + margin-bottom: 60px; +} +@media (min-width: 576px) { + body.sidebar-refactoring .sidebar-top-level-items > li > a { + margin-right: 1px; + } } -pre { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; +body.sidebar-refactoring .sidebar-top-level-items > li .badge.badge-pill { + background-color: rgba(255, 255, 255, 0.08); + color: #999; +} +body.sidebar-refactoring .sidebar-top-level-items > li.active { + background: rgba(255, 255, 255, 0.04); +} +body.sidebar-refactoring .sidebar-top-level-items > li.active > a { + margin-left: 4px; + padding-left: 12px; +} +body.sidebar-refactoring + .sidebar-top-level-items + > li.active + .badge.badge-pill { + font-weight: 600; +} +body.sidebar-refactoring + .sidebar-top-level-items + > li.active + .sidebar-sub-level-items:not(.is-fly-out-only) { display: block; - padding: 8px 12px; - margin: 0 0 8px; - font-size: 13px; - word-break: break-all; - word-wrap: break-word; - color: #fafafa; - background-color: #2e2e2e; - border: 1px solid #4f4f4f; - border-radius: 2px; } -.monospace { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; +body.sidebar-refactoring .toggle-sidebar-button, +body.sidebar-refactoring .close-nav-button { + height: 48px; + padding: 0 16px; + background-color: #303030; + border: 0; + color: #999; + display: flex; + align-items: center; +} +body.sidebar-refactoring .toggle-sidebar-button, +body.sidebar-refactoring .close-nav-button { + position: fixed; + bottom: 0; + width: 219px; + border-top: 1px solid #404040; +} +body.sidebar-refactoring .toggle-sidebar-button svg, +body.sidebar-refactoring .close-nav-button svg { + margin-right: 8px; +} +body.sidebar-refactoring .toggle-sidebar-button .icon-chevron-double-lg-right, +body.sidebar-refactoring .close-nav-button .icon-chevron-double-lg-right { + display: none; +} +body.sidebar-refactoring .collapse-text { + white-space: nowrap; + overflow: hidden; +} +body.sidebar-refactoring .fly-out-top-item > a { + display: flex; +} +body.sidebar-refactoring .fly-out-top-item .fly-out-badge { + margin-left: 8px; +} +body.sidebar-refactoring .fly-out-top-item-name { + flex: 1; } -input::-moz-placeholder, -textarea::-moz-placeholder { - color: #a7a7a7; +body.sidebar-refactoring .close-nav-button { + display: none; +} +@media (max-width: 767.98px) { + body.sidebar-refactoring .close-nav-button { + display: flex; + } + body.sidebar-refactoring .toggle-sidebar-button { + display: none; + } +} +input::-moz-placeholder { + color: #868686; opacity: 1; } -input::-ms-input-placeholder, -textarea::-ms-input-placeholder { - color: #a7a7a7; +input::-ms-input-placeholder { + color: #868686; } -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - color: #a7a7a7; +input:-ms-input-placeholder { + color: #868686; } svg { fill: currentColor; } - svg.s12 { width: 12px; height: 12px; } - svg.s16 { width: 16px; height: 16px; } - svg.s18 { width: 18px; height: 18px; } - svg.s12 { vertical-align: -1px; } - svg.s16 { vertical-align: -3px; } -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -table.code { +.js-groups-dropdown { width: 100%; - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; - border: 0; - border-collapse: separate; - margin: 0; - padding: 0; - table-layout: fixed; - border-radius: 0 0 4px 4px; -} -.frame .badge.badge-pill { - position: absolute; - background-color: #1b69b6; - color: #333; - border: #333 1px solid; - min-height: 16px; - padding: 5px 8px; - border-radius: 12px; -} -.frame .badge.badge-pill { - transform: translate(-50%, -50%); -} -.color-label { - padding: 0 0.5rem; - line-height: 16px; - border-radius: 100px; - color: #333; -} -.label-link { - display: inline-flex; - vertical-align: text-bottom; -} -.milestones { - padding: 8px; - margin-top: 8px; - border-radius: 4px; - background-color: #4f4f4f; } .search { margin: 0 8px; } .search form { + display: block; margin: 0; padding: 4px; width: 200px; @@ -1750,7 +1870,6 @@ table.code { border: 0; border-radius: 4px; } - @media (min-width: 1200px) { .search form { width: 320px; @@ -1789,12 +1908,17 @@ table.code { .search .search-input-wrap .dropdown { position: static; } +.search .search-input-wrap .dropdown-header { + font-weight: 600; + color: #fafafa; + font-size: 0.875rem; + line-height: 16px; +} .search .search-input-wrap .dropdown-menu { left: -5px; max-height: 400px; overflow: auto; } - @media (min-width: 1200px) { .search .search-input-wrap .dropdown-menu { width: 320px; @@ -1803,34 +1927,27 @@ table.code { .search .search-input-wrap .dropdown-content { max-height: 382px; } -.settings { - border-top: 1px solid #4f4f4f; -} -.settings:first-of-type { - margin-top: 10px; - border: 0; -} -.settings + div .settings:first-of-type { - margin-top: 0; - border-top: 1px solid #4f4f4f; -} -.avatar, .avatar-container { +.avatar, +.avatar-container { float: left; margin-right: 16px; border-radius: 50%; border: 1px solid #333; } -.s16.avatar, .s16.avatar-container { +.avatar.s16, +.avatar-container.s16 { width: 16px; height: 16px; margin-right: 8px; } -.s18.avatar, .s18.avatar-container { +.avatar.s18, +.avatar-container.s18 { width: 18px; height: 18px; margin-right: 8px; } -.s40.avatar, .s40.avatar-container { +.avatar.s40, +.avatar-container.s40 { width: 40px; height: 40px; margin-right: 8px; @@ -1844,11 +1961,6 @@ table.code { overflow: hidden; border-color: rgba(255, 255, 255, 0.1); } -.avatar.center { - font-size: 14px; - line-height: 1.8em; - text-align: center; -} .avatar.avatar-tile { border-radius: 0; border: 0; @@ -1887,6 +1999,219 @@ table.code { .rect-avatar.s40 { border-radius: 4px; } +#content-body { + display: block; +} +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +body.gl-dark .navbar-gitlab { + background-color: #fafafa; +} +body.gl-dark .navbar-gitlab .navbar-collapse { + color: #fafafa; +} +body.gl-dark .navbar-gitlab .container-fluid .navbar-toggler { + border-left: 1px solid #b3b3b3; +} +body.gl-dark .navbar-gitlab .container-fluid .navbar-toggler svg { + fill: #fafafa; +} +body.gl-dark .navbar-gitlab .navbar-sub-nav > li.active > a, +body.gl-dark .navbar-gitlab .navbar-sub-nav > li.active > button, +body.gl-dark .navbar-gitlab .navbar-sub-nav > li.dropdown.show > a, +body.gl-dark .navbar-gitlab .navbar-sub-nav > li.dropdown.show > button, +body.gl-dark .navbar-gitlab .navbar-nav > li.active > a, +body.gl-dark .navbar-gitlab .navbar-nav > li.active > button, +body.gl-dark .navbar-gitlab .navbar-nav > li.dropdown.show > a, +body.gl-dark .navbar-gitlab .navbar-nav > li.dropdown.show > button { + color: #fafafa; + background-color: #333; +} +body.gl-dark .navbar-gitlab .navbar-sub-nav { + color: #fafafa; +} +body.gl-dark .navbar-gitlab .nav > li { + color: #fafafa; +} +body.gl-dark .navbar-gitlab .nav > li > a .notification-dot { + border: 2px solid #fafafa; +} +body.gl-dark + .navbar-gitlab + .nav + > li + > a.header-help-dropdown-toggle + .notification-dot { + background-color: #fafafa; +} +body.gl-dark + .navbar-gitlab + .nav + > li + > a.header-user-dropdown-toggle + .header-user-avatar { + border-color: #fafafa; +} +body.gl-dark .navbar-gitlab .nav > li.active > a, +body.gl-dark .navbar-gitlab .nav > li.dropdown.show > a { + color: #fafafa; + background-color: #333; +} +body.gl-dark .navbar-gitlab .nav > li.active > a .notification-dot, +body.gl-dark .navbar-gitlab .nav > li.dropdown.show > a .notification-dot { + border-color: #333; +} +body.gl-dark + .navbar-gitlab + .nav + > li.active + > a.header-help-dropdown-toggle + .notification-dot, +body.gl-dark + .navbar-gitlab + .nav + > li.dropdown.show + > a.header-help-dropdown-toggle + .notification-dot { + background-color: #fafafa; +} +body.gl-dark .search form { + background-color: rgba(250, 250, 250, 0.2); +} +body.gl-dark .search .search-input::-ms-input-placeholder { + color: rgba(250, 250, 250, 0.8); +} +body.gl-dark .search .search-input::placeholder { + color: rgba(250, 250, 250, 0.8); +} +body.gl-dark .search .search-input-wrap .search-icon, +body.gl-dark .search .search-input-wrap .clear-icon { + fill: rgba(250, 250, 250, 0.8); +} +body.gl-dark .nav-sidebar li.active { + box-shadow: inset 4px 0 0 #999; +} +body.gl-dark .nav-sidebar li.active > a { + color: #f0f0f0; +} +body.gl-dark .nav-sidebar li.active .nav-icon-container svg { + fill: #f0f0f0; +} +body.gl-dark .sidebar-top-level-items > li.active .badge.badge-pill { + color: #f0f0f0; +} +body.gl-dark .logo-text svg { + fill: var(--gl-text-color); +} +body.gl-dark .navbar-gitlab { + background-color: var(--gray-50); + box-shadow: 0 1px 0 0 var(--gray-100); +} +body.gl-dark .navbar-gitlab .navbar-sub-nav li.active > a, +body.gl-dark .navbar-gitlab .navbar-sub-nav li.active > button, +body.gl-dark .navbar-gitlab .navbar-sub-nav li.dropdown.show > a, +body.gl-dark .navbar-gitlab .navbar-sub-nav li.dropdown.show > button, +body.gl-dark .navbar-gitlab .navbar-nav li.active > a, +body.gl-dark .navbar-gitlab .navbar-nav li.active > button, +body.gl-dark .navbar-gitlab .navbar-nav li.dropdown.show > a, +body.gl-dark .navbar-gitlab .navbar-nav li.dropdown.show > button { + color: var(--gl-text-color); + background-color: var(--gray-200); +} +body.gl-dark .navbar-gitlab .search form { + background-color: var(--gray-100); + box-shadow: inset 0 0 0 1px var(--border-color); +} + +body.gl-dark { + --gray-10: #1f1f1f; + --gray-50: #303030; + --gray-100: #404040; + --gray-200: #525252; + --gray-300: #5e5e5e; + --gray-400: #868686; + --gray-500: #999; + --gray-600: #bfbfbf; + --gray-700: #dbdbdb; + --gray-800: #f0f0f0; + --gray-900: #fafafa; + --gray-950: #fff; + --green-50: #0a4020; + --green-100: #0d532a; + --green-200: #24663b; + --green-300: #217645; + --green-400: #108548; + --green-500: #2da160; + --green-600: #52b87a; + --green-700: #91d4a8; + --green-800: #c3e6cd; + --green-900: #ecf4ee; + --green-950: #f1fdf6; + --blue-50: #033464; + --blue-100: #064787; + --blue-200: #0b5cad; + --blue-300: #1068bf; + --blue-400: #1f75cb; + --blue-500: #428fdc; + --blue-600: #63a6e9; + --blue-700: #9dc7f1; + --blue-800: #cbe2f9; + --blue-900: #e9f3fc; + --blue-950: #f2f9ff; + --orange-50: #5c2900; + --orange-100: #703800; + --orange-200: #8f4700; + --orange-300: #9e5400; + --orange-400: #ab6100; + --orange-500: #c17d10; + --orange-600: #d99530; + --orange-700: #e9be74; + --orange-800: #f5d9a8; + --orange-900: #fdf1dd; + --orange-950: #fff4e1; + --red-50: #660e00; + --red-100: #8d1300; + --red-200: #ae1800; + --red-300: #c91c00; + --red-400: #dd2b0e; + --red-500: #ec5941; + --red-600: #f57f6c; + --red-700: #fcb5aa; + --red-800: #fdd4cd; + --red-900: #fcf1ef; + --red-950: #fff4f3; + --indigo-50: #1a1a40; + --indigo-100: #292961; + --indigo-200: #393982; + --indigo-300: #4b4ba3; + --indigo-400: #5b5bbd; + --indigo-500: #6666c4; + --indigo-600: #7c7ccc; + --indigo-700: #a6a6de; + --indigo-800: #d1d1f0; + --indigo-900: #ebebfa; + --indigo-950: #f7f7ff; + --indigo-900-alpha-008: rgba(235, 235, 250, 0.08); + --gl-text-color: #fafafa; + --border-color: #4f4f4f; + --white: #333; + --black: #fff; + --svg-status-bg: #333; +} +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} .tab-width-8 { -moz-tab-size: 8; tab-size: 8; @@ -1902,12 +2227,61 @@ table.code { white-space: nowrap; width: 1px; } +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +.gl-border-solid { + border-style: solid; +} +.gl-border-gray-100 { + border-color: #404040; +} +.gl-border-0 { + border-width: 0; +} +.gl-border-t-1 { + border-top-width: 1px; +} +.gl-display-flex\! { + display: flex !important; +} +.gl-align-items-center { + align-items: center; +} +.gl-justify-content-space-between { + justify-content: space-between; +} +.gl-absolute { + position: absolute; +} +.gl-px-3\! { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} +.gl-mt-7 { + margin-top: 2rem; +} +.gl-ml-auto { + margin-left: auto; +} .gl-ml-3 { margin-left: 0.5rem; } -.content-wrapper > .alert-wrapper, -#content-body, .modal-dialog { - display: block; +.gl-mx-0\! { + margin-left: 0 !important; + margin-right: 0 !important; +} +.gl-font-weight-bold { + font-weight: 600; } -@import 'cloaking'; +.gl-line-height-20\! { + line-height: 1.25rem !important; +} + +@import "cloaking"; @include cloak-startup-scss(none); diff --git a/app/assets/stylesheets/startup/startup-general.scss b/app/assets/stylesheets/startup/startup-general.scss index 44da509481d..f188ae7f507 100644 --- a/app/assets/stylesheets/startup/startup-general.scss +++ b/app/assets/stylesheets/startup/startup-general.scss @@ -1,3 +1,6 @@ +// DO NOT EDIT! This is auto-generated from "yarn run generate:startup_css" +// Please see the feedback issue for more details and help: +// https://gitlab.com/gitlab-org/gitlab/-/issues/331812 @charset "UTF-8"; *, *::before, @@ -8,12 +11,16 @@ html { font-family: sans-serif; line-height: 1.15; } - header, nav, section { +aside, +header, +nav { display: block; } body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 1rem; font-weight: 400; line-height: 1.5; @@ -21,55 +28,29 @@ body { text-align: left; background-color: #fff; } -h1, h2, h3 { +h1 { margin-top: 0; margin-bottom: 0.25rem; } -p { - margin-top: 0; - margin-bottom: 1rem; -} - ul { margin-top: 0; margin-bottom: 1rem; } - ul ul { margin-bottom: 0; } - strong { font-weight: bolder; } -sub { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sub { - bottom: -.25em; -} a { color: #007bff; text-decoration: none; background-color: transparent; } -a:not([href]) { +a:not([href]):not([class]) { color: inherit; text-decoration: none; } -pre, -code { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; - font-size: 1em; -} -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; -} img { vertical-align: middle; border-style: none; @@ -78,18 +59,11 @@ svg { overflow: hidden; vertical-align: middle; } -table { - border-collapse: collapse; -} -th { - text-align: inherit; -} button { border-radius: 0; } input, -button, -textarea { +button { margin: 0; font-family: inherit; font-size: inherit; @@ -102,21 +76,20 @@ input { button { text-transform: none; } +[role="button"] { + cursor: pointer; +} button:not(:disabled), [type="button"]:not(:disabled), -[type="reset"]:not(:disabled) { +[type="submit"]:not(:disabled) { cursor: pointer; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner { +[type="submit"]::-moz-focus-inner { padding: 0; border-style: none; } -textarea { - overflow: auto; - resize: vertical; -} [type="search"] { outline-offset: -2px; } @@ -130,75 +103,21 @@ template { [hidden] { display: none !important; } -h1, h2, h3, -.h1, .h2, .h3 { +h1, +.h1 { margin-bottom: 0.25rem; font-weight: 600; line-height: 1.2; color: #303030; } -h1, .h1 { +h1, +.h1 { font-size: 2.1875rem; } -h2, .h2 { - font-size: 1.75rem; -} -h3, .h3 { - font-size: 1.53125rem; -} .list-unstyled { padding-left: 0; list-style: none; } -code { - font-size: 90%; - color: #1f1f1f; - word-wrap: break-word; -} -a > code { - color: inherit; -} -pre { - display: block; - font-size: 90%; - color: #303030; -} -pre code { - font-size: inherit; - color: inherit; - word-break: normal; -} -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} .container-fluid { width: 100%; padding-right: 15px; @@ -206,48 +125,7 @@ pre code { margin-right: auto; margin-left: auto; } - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} -.row { - display: flex; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} -.table { - width: 100%; - margin-bottom: 0.5rem; - color: #303030; -} -.table th, -.table td { - padding: 0.75rem; - vertical-align: top; - border-top: 1px solid #dbdbdb; -} - .search form { +.form-control { display: block; width: 100%; height: 34px; @@ -261,18 +139,21 @@ pre code { border: 1px solid #dbdbdb; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } - .search form:-moz-focusring { +.form-control:-moz-focusring { color: transparent; text-shadow: 0 0 0 #303030; } - .search form::placeholder { +.form-control::-ms-input-placeholder { color: #5e5e5e; opacity: 1; } - .search form:disabled { +.form-control::placeholder { + color: #5e5e5e; + opacity: 1; +} +.form-control:disabled { background-color: #fafafa; opacity: 1; } @@ -281,9 +162,8 @@ pre code { flex-flow: row wrap; align-items: center; } - @media (min-width: 576px) { - .form-inline .search form, .search .form-inline form { + .form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; @@ -295,7 +175,7 @@ pre code { color: #303030; text-align: center; vertical-align: middle; - cursor: pointer; + -moz-user-select: none; user-select: none; background-color: transparent; border: 1px solid transparent; @@ -304,26 +184,35 @@ pre code { line-height: 20px; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } -.btn.disabled, .btn:disabled { +.btn:disabled { opacity: 0.65; } -a.btn.disabled { +.btn:not(:disabled):not(.disabled) { + cursor: pointer; +} +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} +.btn-link:disabled { + color: #5e5e5e; pointer-events: none; } .collapse:not(.show) { display: none; } - .dropdown { position: relative; } - .dropdown-menu-toggle { +.dropdown-toggle, +.dropdown-menu-toggle { white-space: nowrap; } - .dropdown-menu-toggle::after { +.dropdown-toggle::after, +.dropdown-menu-toggle::after { display: inline-block; margin-left: 0.255em; vertical-align: 0.255em; @@ -333,7 +222,8 @@ a.btn.disabled { border-bottom: 0; border-left: 0.3em solid transparent; } - .dropdown-menu-toggle:empty::after { +.dropdown-toggle:empty::after, +.dropdown-menu-toggle:empty::after { margin-left: 0; } .dropdown-menu { @@ -359,15 +249,17 @@ a.btn.disabled { right: 0; left: auto; } - .divider { - height: 0; - margin: 4px 0; - overflow: hidden; - border-top: 1px solid #dbdbdb; -} .dropdown-menu.show { display: block; } +.dropdown-header { + display: block; + padding: 0.5rem 12px; + margin-bottom: 0; + font-size: 0.875rem; + color: #5e5e5e; + white-space: nowrap; +} .nav { display: flex; flex-wrap: wrap; @@ -375,6 +267,10 @@ a.btn.disabled { margin-bottom: 0; list-style: none; } +.nav-link { + display: block; + padding: 0.5rem 1rem; +} .navbar { position: relative; display: flex; @@ -383,7 +279,6 @@ a.btn.disabled { justify-content: space-between; padding: 0.25rem 0.5rem; } -.navbar .container, .navbar .container-fluid { display: flex; flex-wrap: wrap; @@ -397,6 +292,10 @@ a.btn.disabled { margin-bottom: 0; list-style: none; } +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; +} .navbar-nav .dropdown-menu { position: static; float: none; @@ -414,15 +313,12 @@ a.btn.disabled { border: 1px solid transparent; border-radius: 0.25rem; } - @media (max-width: 575.98px) { - .navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid { padding-right: 0; padding-left: 0; } } - @media (min-width: 576px) { .navbar-expand-sm { flex-flow: row nowrap; @@ -434,7 +330,10 @@ a.btn.disabled { .navbar-expand-sm .navbar-nav .dropdown-menu { position: absolute; } - .navbar-expand-sm > .container, + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; + } .navbar-expand-sm > .container-fluid { flex-wrap: nowrap; } @@ -468,7 +367,6 @@ a.btn.disabled { vertical-align: baseline; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } .badge:empty { @@ -483,9 +381,9 @@ a.btn.disabled { padding-left: 0.6em; border-radius: 10rem; } -.media { - display: flex; - align-items: flex-start; +.badge-dark { + color: #fff; + background-color: #404040; } .close { float: right; @@ -494,55 +392,15 @@ a.btn.disabled { line-height: 1; color: #000; text-shadow: 0 1px 0 #fff; - opacity: .5; + opacity: 0.5; } button.close { padding: 0; background-color: transparent; border: 0; - appearance: none; -} -a.close.disabled { - pointer-events: none; } -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; -} - -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } -} -.bg-transparent { - background-color: transparent !important; -} -.border { - border: 1px solid #dbdbdb !important; -} -.border-top { - border-top: 1px solid #dbdbdb !important; -} -.border-right { - border-right: 1px solid #dbdbdb !important; -} -.border-bottom { - border-bottom: 1px solid #dbdbdb !important; -} -.border-left { - border-left: 1px solid #dbdbdb !important; -} -.rounded { - border-radius: 0.25rem !important; -} -.clearfix::after { - display: block; - clear: both; - content: ""; +.rounded-circle { + border-radius: 50% !important; } .d-none { display: none !important; @@ -553,19 +411,19 @@ a.close.disabled { .d-block { display: block !important; } - @media (min-width: 576px) { .d-sm-none { display: none !important; } } - @media (min-width: 768px) { + .d-md-none { + display: none !important; + } .d-md-block { display: block !important; } } - @media (min-width: 992px) { .d-lg-none { display: none !important; @@ -574,15 +432,14 @@ a.close.disabled { display: block !important; } } - @media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } .d-xl-block { display: block !important; } } -.flex-wrap { - flex-wrap: wrap !important; -} .float-right { float: right !important; } @@ -603,15 +460,13 @@ a.close.disabled { .text-nowrap { white-space: nowrap !important; } -.visible { - visibility: visible !important; -} - .search form.focus { - color: #303030; - background-color: #fff; - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } } .gl-badge { display: inline-flex; @@ -623,50 +478,148 @@ a.close.disabled { padding-bottom: 0.25rem; padding-left: 0.5rem; padding-right: 0.5rem; +} +.gl-badge.sm { + padding-top: 0; + padding-bottom: 0; +} +.gl-badge.badge-muted { + background-color: #f0f0f0; + color: #666; +} +a.gl-badge.badge-muted.active, +a.gl-badge.badge-muted:active { + color: #404040; + background-color: #dbdbdb; +} +.gl-new-dropdown .dropdown-menu { + background-color: #fff; + border-width: 1px; + border-color: #bfbfbf; + margin-top: 0.25rem; + margin-bottom: 0.25rem; + padding: 0; + border-radius: 0.25rem; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1); + width: 15rem; +} +.gl-new-dropdown .dropdown-menu li { + padding: 0; +} +.gl-new-dropdown .dropdown-toggle::after, +.gl-new-dropdown .dropdown-menu-toggle::after { + display: none; +} +.gl-new-dropdown .dropdown-toggle.gl-button, +.gl-new-dropdown .gl-button.dropdown-menu-toggle { + padding-right: 0.5rem; +} +.gl-new-dropdown.dropdown .gl-button .dropdown-chevron, +.gl-new-dropdown.dropdown .dropdown-chevron { + margin-left: 0.25rem; + margin-right: 0; +} +.gl-new-dropdown .dropdown-icon { + margin-right: 0.25rem; +} +.gl-spinner-container { + line-height: 0; + text-align: center; +} +.gl-spinner { + position: relative; + display: inline-flex; + border-radius: 50%; + border-style: solid; + margin-left: auto; + margin-right: auto; + margin-top: 0; + margin-bottom: 0; + font-size: 0.875rem; + animation-name: gl-spinner-rotate; + animation-duration: 0.6s; + animation-timing-function: linear; + animation-iteration-count: infinite; + width: 1rem; + height: 1rem; + border-width: 2px; + transform-origin: 50% 50% calc((1rem / 2) + 2px); + border-color: rgba(82, 82, 82, 0.25); + border-top-color: #525252; +} +.gl-spinner.gl-spinner-md { + width: 1.5rem; + height: 1.5rem; + border-width: 3px; + transform-origin: 50% 50% calc((1.5rem / 2) + 3px); +} +.gl-button { + display: inline-flex; +} +.gl-button.gl-button { + border-width: 0; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + background-color: transparent; + line-height: 1rem; + color: #303030; + fill: currentColor; + box-shadow: inset 0 0 0 1px #bfbfbf; + justify-content: center; + align-items: center; + font-size: 0.875rem; + border-radius: 0.25rem; +} +.gl-button.gl-button.btn-default { + background-color: #fff; +} +.gl-button.gl-button.btn-default:active, +.gl-button.gl-button.btn-default.active { + box-shadow: inset 0 0 0 2px #5e5e5e, 0 0 0 1px rgba(255, 255, 255, 0.4), + 0 0 0 4px rgba(31, 117, 203, 0.48); outline: none; + background-color: #dbdbdb; +} +.gl-button.gl-button.btn-link { + background-color: transparent; + border-width: 0; + font-size: 0.875rem; + line-height: 1rem; + color: #1f75cb; + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + box-shadow: none; +} +.gl-button.gl-button.btn-link:active { + color: #0b5cad; + text-decoration: underline; } -body, .search form, +body, +.form-control, .search form { font-size: 0.875rem; } button, -html [type='button'], -[type='reset'], -[role='button'] { +html [type="button"], +[type="submit"], +[role="button"] { cursor: pointer; } h1, -.h1, -h2, -.h2, -h3, -.h3 { +.h1 { margin-top: 20px; margin-bottom: 10px; } -input[type='file'] { - line-height: 1; -} - strong { font-weight: bold; } a { color: #1068bf; } -code { - padding: 2px 4px; - color: #1f1f1f; - background-color: #f0f0f0; - border-radius: 4px; -} -.code > code { - background-color: inherit; - padding: unset; -} -table { - border-spacing: 0; -} .hidden { display: none !important; visibility: hidden !important; @@ -674,7 +627,8 @@ table { .hide { display: none; } - .dropdown-menu-toggle::after { +.dropdown-toggle::after, +.dropdown-menu-toggle::after { display: none; } .badge:not(.gl-badge) { @@ -684,8 +638,11 @@ table { font-weight: 400; display: inline-block; } -pre code { - white-space: pre-wrap; +.divider { + height: 0; + margin: 4px 0; + overflow: hidden; + border-top: 1px solid #dbdbdb; } .toggle-sidebar-button .collapse-text, .toggle-sidebar-button .icon-chevron-double-lg-left, @@ -701,29 +658,21 @@ html { body { text-decoration-skip: ink; } -.content-wrapper { - margin-top: 40px; - padding-bottom: 100px; -} -.container { - padding-top: 0; - z-index: 5; -} -.container .content { - margin: 0; -} - -@media (max-width: 575.98px) { - .container .content { - margin-top: 20px; +@keyframes spin { + 0% { + transform: rotate(0deg); } -} - -@media (max-width: 575.98px) { - .container .container .title { - padding-left: 15px !important; + 100% { + transform: rotate(360deg); } } +.gl-spinner { + animation-name: spin; + animation-iteration-count: infinite; + animation-timing-function: linear; + animation-duration: 1s; + transform-origin: 50% 50%; +} .btn { border-radius: 4px; font-size: 0.875rem; @@ -735,7 +684,8 @@ body { color: #303030; white-space: nowrap; } -.btn:active, .btn.active { +.btn:active, +.btn.active { background-color: #eaeaea; border-color: #e3e3e3; color: #303030; @@ -744,64 +694,35 @@ body { height: 15px; width: 15px; } -.btn svg:not(:last-child), -.btn .fa:not(:last-child) { +.btn svg:not(:last-child) { margin-right: 5px; } +.btn-link { + padding: 0; + background-color: transparent; + color: #1068bf; + font-weight: normal; + border-radius: 0; + border-color: transparent; + border-width: 0; +} .badge.badge-pill:not(.gl-badge) { font-weight: 400; background-color: rgba(0, 0, 0, 0.07); color: #525252; vertical-align: baseline; } -.hint { - font-style: italic; - color: #bfbfbf; -} -.bold { - font-weight: 600; -} -pre.wrap { - word-break: break-word; - white-space: pre-wrap; -} -table a code { - position: relative; - top: -2px; - margin-right: 3px; -} -.loading { - margin: 20px auto; - height: 40px; - color: #525252; - font-size: 32px; - text-align: center; -} -.highlight { - text-shadow: none; -} .chart { overflow: hidden; height: 220px; } -.break-word { - word-wrap: break-word; -} -.center { - text-align: center; -} -.block { - display: block; -} -.flex { - display: flex; -} -.flex-grow { - flex-grow: 1; -} .dropdown { position: relative; } +.dropdown.gl-new-dropdown button.dropdown-toggle, +.dropdown.gl-new-dropdown button.dropdown-menu-toggle { + display: inline-flex; +} .show.dropdown .dropdown-menu { transform: translateY(0); display: block; @@ -809,23 +730,32 @@ table a code { max-height: 312px; overflow-y: auto; } - +.show.dropdown .dropdown-menu.dropdown-extended-height { + max-height: 400px; +} @media (max-width: 575.98px) { .show.dropdown .dropdown-menu { width: 100%; } } - .show.dropdown .dropdown-menu-toggle, +.show.dropdown .dropdown-menu.frequent-items-dropdown-menu { + padding: 0; + overflow-y: initial; + max-height: initial; +} +.show.dropdown .dropdown-toggle, +.show.dropdown .dropdown-menu-toggle, .show.dropdown .dropdown-menu-toggle { border-color: #c4c4c4; } -.show.dropdown [data-toggle='dropdown'] { +.show.dropdown [data-toggle="dropdown"] { outline: 0; } .search-input-container .dropdown-menu { margin-top: 11px; } - .dropdown-menu-toggle { +.dropdown-toggle, +.dropdown-menu-toggle { padding: 6px 8px 6px 10px; background-color: #fff; color: #303030; @@ -835,21 +765,22 @@ table a code { border-radius: 0.25rem; white-space: nowrap; } - .no-outline.dropdown-menu-toggle { +.dropdown-toggle.no-outline, +.no-outline.dropdown-menu-toggle { outline: 0; } - .dropdown-menu-toggle .fa { - color: #c4c4c4; -} -.dropdown-menu-toggle { +.dropdown-menu-toggle.dropdown-menu-toggle { + justify-content: flex-start; + overflow: hidden; padding-right: 25px; position: relative; - width: 160px; text-overflow: ellipsis; - overflow: hidden; + width: 160px; } -.dropdown-menu-toggle .fa { +.dropdown-menu-toggle.dropdown-menu-toggle .gl-spinner { position: absolute; + top: 9px; + right: 8px; } .dropdown-menu { display: none; @@ -880,7 +811,9 @@ table a code { padding: 0 1px; } .dropdown-menu li > a, -.dropdown-menu li button { +.dropdown-menu li button, +.dropdown-menu li .gl-button.btn-link, +.dropdown-menu li .menu-item { background: transparent; border: 0; border-radius: 0; @@ -902,13 +835,24 @@ table a code { padding: 0; background-color: #dbdbdb; } +.dropdown-menu .dropdown-header { + color: #000; + font-size: 13px; + font-weight: 600; + line-height: 16px; + padding: 8px 12px; +} +.dropdown-menu .dropdown-bold-header { + font-weight: 600; + line-height: 16px; + padding: 8px 12px; +} .dropdown-menu .badge.badge-pill + span:not(.badge):not(.badge-pill) { margin-right: 40px; } .dropdown-select { width: 300px; } - @media (max-width: 767.98px) { .dropdown-select { width: 100%; @@ -929,42 +873,95 @@ table a code { background-color: rgba(255, 255, 255, 0.6); font-size: 28px; } -.dropdown-loading .fa { - position: absolute; - top: 50%; - left: 50%; - margin-top: -14px; - margin-left: -14px; -} - @media (max-width: 575.98px) { .navbar-gitlab li.dropdown { position: static; } + .navbar-gitlab li.dropdown.user-counter { + margin-left: 8px !important; + } + .navbar-gitlab li.dropdown.user-counter > a { + padding: 0 4px !important; + } header.navbar-gitlab .dropdown .dropdown-menu { width: 100%; min-width: 100%; } } - +header.header-content .dropdown-menu.frequent-items-dropdown-menu { + padding: 0; +} +.frequent-items-dropdown-container { + display: flex; + flex-direction: row; + height: 20rem; +} +.frequent-items-dropdown-container.with-deprecated-styles { + width: 500px; + height: 354px; +} +.frequent-items-dropdown-container.with-deprecated-styles + .search-input-container { + position: relative; + padding: 4px 16px; +} +.frequent-items-dropdown-container.with-deprecated-styles + .search-input-container + .search-icon { + position: absolute; + top: 13px; + right: 25px; + color: #999; +} +@media (max-width: 575.98px) { + .frequent-items-dropdown-container.with-deprecated-styles { + flex-direction: column; + width: 100%; + height: auto; + flex: 1; + } + .frequent-items-dropdown-container.with-deprecated-styles + .frequent-items-dropdown-sidebar, + .frequent-items-dropdown-container.with-deprecated-styles + .frequent-items-dropdown-content { + width: 100%; + } + .frequent-items-dropdown-container.with-deprecated-styles + .frequent-items-dropdown-sidebar { + border-bottom: 1px solid #dbdbdb; + border-right: 0; + } +} +.frequent-items-dropdown-container .frequent-items-dropdown-sidebar, +.frequent-items-dropdown-container .frequent-items-dropdown-content { + padding-top: 0.5rem; +} +.frequent-items-dropdown-container .frequent-items-dropdown-sidebar { + width: 30%; + border-right: 1px solid #dbdbdb; +} +.frequent-items-dropdown-container .frequent-items-dropdown-content { + position: relative; + width: 70%; +} @media (max-width: 767.98px) { .dropdown-menu-toggle { width: 100%; } } -textarea { - resize: vertical; -} input { border-radius: 0.25rem; color: #303030; background-color: #fff; } - .search form { +.form-control { border-radius: 4px; padding: 6px 10px; } - .search form::placeholder { +.form-control::-ms-input-placeholder { + color: #868686; +} +.form-control::placeholder { color: #868686; } .navbar-gitlab { @@ -973,7 +970,6 @@ input { margin-bottom: 0; min-height: 40px; border: 0; - border-bottom: 1px solid #dbdbdb; position: fixed; top: 0; left: 0; @@ -1023,9 +1019,6 @@ input { .navbar-gitlab .header-content .title img + .logo-text { margin-left: 8px; } -.navbar-gitlab .header-content .title.wrap { - white-space: normal; -} .navbar-gitlab .header-content .title a { display: flex; align-items: center; @@ -1033,9 +1026,6 @@ input { margin: 5px 2px 5px -8px; border-radius: 4px; } -.navbar-gitlab .header-content .dropdown.open > a { - border-bottom-color: #fff; -} .navbar-gitlab .header-content .navbar-collapse > ul.nav > li:not(.d-none) { margin: 0 2px; } @@ -1044,7 +1034,6 @@ input { border-top: 0; padding: 0; } - @media (max-width: 575.98px) { .navbar-gitlab .navbar-collapse { flex: 1 1 auto; @@ -1053,7 +1042,6 @@ input { .navbar-gitlab .navbar-collapse .nav { flex-wrap: nowrap; } - @media (max-width: 575.98px) { .navbar-gitlab .navbar-collapse .nav > li:not(.d-none) a { margin-left: 0; @@ -1076,7 +1064,6 @@ input { text-align: center; color: currentColor; } - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid .navbar-nav { display: flex; @@ -1084,11 +1071,14 @@ input { flex-direction: row; } } -.navbar-gitlab .container-fluid .navbar-nav li .badge.badge-pill { +.navbar-gitlab + .container-fluid + .navbar-nav + li + .badge.badge-pill:not(.merge-request-badge) { box-shadow: none; font-weight: 600; } - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid .nav > li.header-user { padding-left: 10px; @@ -1100,7 +1090,6 @@ input { padding: 6px 8px; height: 32px; } - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid .nav > li > a { padding: 0; @@ -1109,7 +1098,12 @@ input { .navbar-gitlab .container-fluid .nav > li > a.header-user-dropdown-toggle { margin-left: 2px; } -.navbar-gitlab .container-fluid .nav > li > a.header-user-dropdown-toggle .header-user-avatar { +.navbar-gitlab + .container-fluid + .nav + > li + > a.header-user-dropdown-toggle + .header-user-avatar { margin-right: 0; } .navbar-gitlab .container-fluid .nav > li .header-new-dropdown-toggle { @@ -1130,7 +1124,9 @@ input { height: 32px; font-weight: 600; } +.navbar-sub-nav > li .top-nav-toggle, .navbar-sub-nav > li > button, +.navbar-nav > li .top-nav-toggle, .navbar-nav > li > button { background: transparent; border: 0; @@ -1143,6 +1139,11 @@ input { display: flex; margin: 0 0 0 6px; } +.navbar-sub-nav .dropdown-chevron { + position: relative; + top: -1px; + font-size: 10px; +} .caret-down, .btn .caret-down { top: 0; @@ -1168,31 +1169,25 @@ input { font-weight: 400; margin-left: -6px; font-size: 11px; - color: #fff; + color: var(--gray-950, #fff); padding: 0 5px; line-height: 12px; border-radius: 7px; box-shadow: 0 1px 0 rgba(76, 78, 84, 0.2); } -.title-container .badge.badge-pill.green-badge, -.navbar-nav .badge.badge-pill.green-badge { - background-color: #108548; +.title-container .badge.badge-pill:not(.merge-request-badge).green-badge, +.navbar-nav .badge.badge-pill:not(.merge-request-badge).green-badge { + background-color: var(--green-400, #2da160); } -.title-container .badge.badge-pill.merge-requests-count, -.navbar-nav .badge.badge-pill.merge-requests-count { - background-color: #de7e00; +.title-container + .badge.badge-pill:not(.merge-request-badge).merge-requests-count, +.navbar-nav .badge.badge-pill:not(.merge-request-badge).merge-requests-count { + background-color: var(--orange-400, #c17d10); } -.title-container .badge.badge-pill.todos-count, -.navbar-nav .badge.badge-pill.todos-count { - background-color: #1f75cb; +.title-container .badge.badge-pill:not(.merge-request-badge).todos-count, +.navbar-nav .badge.badge-pill:not(.merge-request-badge).todos-count { + background-color: var(--blue-400, #428fdc); } -.title-container .canary-badge .badge, -.navbar-nav .canary-badge .badge { - font-size: 12px; - line-height: 16px; - padding: 0 0.5rem; -} - @media (max-width: 575.98px) { .navbar-gitlab .container-fluid { font-size: 18px; @@ -1219,7 +1214,7 @@ input { } .header-user.show .dropdown-menu { margin-top: 4px; - color: #303030; + color: var(--gl-text-color, #303030); left: auto; max-height: 445px; } @@ -1232,30 +1227,35 @@ input { border-radius: 50%; border: 1px solid #f5f5f5; } -.media { - display: flex; - align-items: flex-start; +.notification-dot { + background-color: #d99530; + height: 12px; + width: 12px; + margin-top: -15px; + pointer-events: none; + visibility: hidden; } -.card { - margin-bottom: 16px; +.top-nav-toggle .dropdown-icon { + margin-right: 0.5rem; } -.content-wrapper { - width: 100%; +.top-nav-toggle .dropdown-chevron { + top: 0; } -.content-wrapper .container-fluid { - padding: 0 16px; +.tanuki-logo .tanuki-left-ear, +.tanuki-logo .tanuki-right-ear, +.tanuki-logo .tanuki-nose { + fill: #e24329; } - -@media (min-width: 768px) { - .page-with-contextual-sidebar { - padding-left: 50px; - } +.tanuki-logo .tanuki-left-eye, +.tanuki-logo .tanuki-right-eye { + fill: #fc6d26; } - -@media (min-width: 1200px) { - .page-with-contextual-sidebar { - padding-left: 220px; - } +.tanuki-logo .tanuki-left-cheek, +.tanuki-logo .tanuki-right-cheek { + fill: #fca326; +} +.card { + margin-bottom: 16px; } .context-header { position: relative; @@ -1286,7 +1286,17 @@ input { font-weight: normal; font-size: 0.8em; } -.nav-sidebar { +@media (min-width: 768px) { + body:not(.sidebar-refactoring) .page-with-contextual-sidebar { + padding-left: 50px; + } +} +@media (min-width: 1200px) { + body:not(.sidebar-refactoring) .page-with-contextual-sidebar { + padding-left: 220px; + } +} +body:not(.sidebar-refactoring) .nav-sidebar { position: fixed; z-index: 600; width: 220px; @@ -1297,93 +1307,64 @@ input { box-shadow: inset -1px 0 0 #dbdbdb; transform: translate3d(0, 0, 0); } - @media (min-width: 576px) and (max-width: 576px) { - .nav-sidebar:not(.sidebar-collapsed-desktop) { + body:not(.sidebar-refactoring) .nav-sidebar:not(.sidebar-collapsed-desktop) { box-shadow: inset -1px 0 0 #dbdbdb, 2px 1px 3px rgba(0, 0, 0, 0.1); } } -.nav-sidebar.sidebar-collapsed-desktop { - width: 50px; -} -.nav-sidebar.sidebar-collapsed-desktop .nav-sidebar-inner-scroll { - overflow-x: hidden; -} -.nav-sidebar.sidebar-collapsed-desktop .badge.badge-pill:not(.fly-out-badge), -.nav-sidebar.sidebar-collapsed-desktop .sidebar-context-title, -.nav-sidebar.sidebar-collapsed-desktop .nav-item-name { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - white-space: nowrap; - width: 1px; -} -.nav-sidebar.sidebar-collapsed-desktop .sidebar-top-level-items > li > a { - min-height: 45px; -} -.nav-sidebar.sidebar-collapsed-desktop .fly-out-top-item { - display: block; -} -.nav-sidebar.sidebar-collapsed-desktop .avatar-container { - margin: 0 auto; -} -.nav-sidebar.sidebar-expanded-mobile { - left: 0; -} -.nav-sidebar a { +body:not(.sidebar-refactoring) .nav-sidebar a { text-decoration: none; } -.nav-sidebar ul { +body:not(.sidebar-refactoring) .nav-sidebar ul { padding-left: 0; list-style: none; } -.nav-sidebar li { +body:not(.sidebar-refactoring) .nav-sidebar li { white-space: nowrap; } -.nav-sidebar li a { +body:not(.sidebar-refactoring) .nav-sidebar li a { display: flex; align-items: center; padding: 12px 16px; color: #666; } -.nav-sidebar li .nav-item-name { +body:not(.sidebar-refactoring) .nav-sidebar li .nav-item-name { flex: 1; } -.nav-sidebar li.active > a { +body:not(.sidebar-refactoring) .nav-sidebar li.active > a { font-weight: 600; } - @media (max-width: 767.98px) { - .nav-sidebar { + body:not(.sidebar-refactoring) .nav-sidebar { left: -220px; } } -.nav-sidebar .nav-icon-container { +body:not(.sidebar-refactoring) .nav-sidebar .nav-icon-container { display: flex; margin-right: 8px; } -.nav-sidebar .fly-out-top-item { +body:not(.sidebar-refactoring) .nav-sidebar .fly-out-top-item { display: none; } -.nav-sidebar svg { +body:not(.sidebar-refactoring) .nav-sidebar svg { height: 16px; width: 16px; } - @media (min-width: 768px) and (max-width: 1199px) { - .nav-sidebar:not(.sidebar-expanded-mobile) { + body:not(.sidebar-refactoring) .nav-sidebar:not(.sidebar-expanded-mobile) { width: 50px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-sidebar-inner-scroll { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-sidebar-inner-scroll { overflow-x: hidden; } - .nav-sidebar:not(.sidebar-expanded-mobile) .badge.badge-pill:not(.fly-out-badge), - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-context-title, - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-item-name { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .badge.badge-pill:not(.fly-out-badge), + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-item-name { border: 0; clip: rect(0, 0, 0, 0); height: 1px; @@ -1394,273 +1375,476 @@ input { white-space: nowrap; width: 1px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-top-level-items > li > a { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + > a { min-height: 45px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .fly-out-top-item { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .fly-out-top-item { display: block; } - .nav-sidebar:not(.sidebar-expanded-mobile) .avatar-container { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .avatar-container { margin: 0 auto; } - .nav-sidebar:not(.sidebar-expanded-mobile) .context-header { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header { height: 60px; width: 50px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .context-header a { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header + a { padding: 10px 4px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-top-level-items > li .sidebar-sub-level-items:not(.flyout-list) { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-context-title { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + } + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + .sidebar-sub-level-items:not(.flyout-list) { display: none; } - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-icon-container { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-icon-container { margin-right: 0; } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button { padding: 16px; width: 49px; } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .collapse-text, - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .icon-chevron-double-lg-left { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .collapse-text, + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-left { display: none; } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .icon-chevron-double-lg-right { + body:not(.sidebar-refactoring) + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-right { display: block; margin: 0; } } -.nav-sidebar-inner-scroll { +body:not(.sidebar-refactoring) .nav-sidebar-inner-scroll { height: 100%; width: 100%; overflow: auto; } -.sidebar-sub-level-items { +body:not(.sidebar-refactoring) .sidebar-sub-level-items { display: none; padding-bottom: 8px; } -.sidebar-sub-level-items > li a { +body:not(.sidebar-refactoring) .sidebar-sub-level-items > li a { padding: 8px 16px 8px 40px; } -.sidebar-top-level-items { +body:not(.sidebar-refactoring) .sidebar-top-level-items { margin-bottom: 60px; } - @media (min-width: 576px) { - .sidebar-top-level-items > li > a { + body:not(.sidebar-refactoring) .sidebar-top-level-items > li > a { margin-right: 1px; } } -.sidebar-top-level-items > li .badge.badge-pill { +body:not(.sidebar-refactoring) .sidebar-top-level-items > li .badge.badge-pill { background-color: rgba(0, 0, 0, 0.08); color: #666; } -.sidebar-top-level-items > li.active { +body:not(.sidebar-refactoring) .sidebar-top-level-items > li.active { background: rgba(0, 0, 0, 0.04); } -.sidebar-top-level-items > li.active > a { +body:not(.sidebar-refactoring) .sidebar-top-level-items > li.active > a { margin-left: 4px; padding-left: 12px; } -.sidebar-top-level-items > li.active .badge.badge-pill { +body:not(.sidebar-refactoring) + .sidebar-top-level-items + > li.active + .badge.badge-pill { font-weight: 600; } -.sidebar-top-level-items > li.active .sidebar-sub-level-items:not(.is-fly-out-only) { +body:not(.sidebar-refactoring) + .sidebar-top-level-items + > li.active + .sidebar-sub-level-items:not(.is-fly-out-only) { display: block; } -.toggle-sidebar-button, -.close-nav-button { - width: 219px; - position: fixed; +body:not(.sidebar-refactoring) .toggle-sidebar-button, +body:not(.sidebar-refactoring) .close-nav-button { height: 48px; - bottom: 0; padding: 0 16px; background-color: #fafafa; border: 0; - border-top: 1px solid #dbdbdb; color: #666; display: flex; align-items: center; } -.toggle-sidebar-button svg, -.close-nav-button svg { +body:not(.sidebar-refactoring) .toggle-sidebar-button, +body:not(.sidebar-refactoring) .close-nav-button { + position: fixed; + bottom: 0; + width: 219px; + border-top: 1px solid #dbdbdb; +} +body:not(.sidebar-refactoring) .toggle-sidebar-button svg, +body:not(.sidebar-refactoring) .close-nav-button svg { margin-right: 8px; } -.toggle-sidebar-button .icon-chevron-double-lg-right, -.close-nav-button .icon-chevron-double-lg-right { +body:not(.sidebar-refactoring) + .toggle-sidebar-button + .icon-chevron-double-lg-right, +body:not(.sidebar-refactoring) .close-nav-button .icon-chevron-double-lg-right { display: none; } -.collapse-text { +body:not(.sidebar-refactoring) .collapse-text { white-space: nowrap; overflow: hidden; } -.sidebar-collapsed-desktop .context-header { - height: 60px; - width: 50px; +body:not(.sidebar-refactoring) .fly-out-top-item > a { + display: flex; +} +body:not(.sidebar-refactoring) .fly-out-top-item .fly-out-badge { + margin-left: 8px; } -.sidebar-collapsed-desktop .context-header a { - padding: 10px 4px; +body:not(.sidebar-refactoring) .fly-out-top-item-name { + flex: 1; } -.sidebar-collapsed-desktop .sidebar-top-level-items > li .sidebar-sub-level-items:not(.flyout-list) { +body:not(.sidebar-refactoring) .close-nav-button { display: none; } -.sidebar-collapsed-desktop .nav-icon-container { - margin-right: 0; +@media (max-width: 767.98px) { + body:not(.sidebar-refactoring) .close-nav-button { + display: flex; + } + body:not(.sidebar-refactoring) .toggle-sidebar-button { + display: none; + } } -.sidebar-collapsed-desktop .toggle-sidebar-button { - padding: 16px; - width: 49px; +@media (min-width: 768px) { + body.sidebar-refactoring .page-with-contextual-sidebar { + padding-left: 50px; + } } -.sidebar-collapsed-desktop .toggle-sidebar-button .collapse-text, -.sidebar-collapsed-desktop .toggle-sidebar-button .icon-chevron-double-lg-left { - display: none; +@media (min-width: 1200px) { + body.sidebar-refactoring .page-with-contextual-sidebar { + padding-left: 220px; + } } -.sidebar-collapsed-desktop .toggle-sidebar-button .icon-chevron-double-lg-right { - display: block; - margin: 0; +body.sidebar-refactoring .nav-sidebar { + position: fixed; + z-index: 600; + width: 220px; + top: 40px; + bottom: 0; + left: 0; + background: linear-gradient(#cbbbf2, #e9be74); + box-shadow: inset -1px 0 0 #dbdbdb; + transform: translate3d(0, 0, 0); } -.fly-out-top-item > a { - display: flex; +@media (min-width: 576px) and (max-width: 576px) { + body.sidebar-refactoring .nav-sidebar:not(.sidebar-collapsed-desktop) { + box-shadow: inset -1px 0 0 #dbdbdb, 2px 1px 3px rgba(0, 0, 0, 0.1); + } } -.fly-out-top-item .fly-out-badge { - margin-left: 8px; +body.sidebar-refactoring .nav-sidebar a { + text-decoration: none; +} +body.sidebar-refactoring .nav-sidebar ul { + padding-left: 0; + list-style: none; +} +body.sidebar-refactoring .nav-sidebar li { + white-space: nowrap; +} +body.sidebar-refactoring .nav-sidebar li a { + display: flex; + align-items: center; + padding: 12px 16px; + color: #666; } -.fly-out-top-item-name { +body.sidebar-refactoring .nav-sidebar li .nav-item-name { flex: 1; } -.close-nav-button { - display: none; +body.sidebar-refactoring .nav-sidebar li.active > a { + font-weight: 600; } - @media (max-width: 767.98px) { - .close-nav-button { - display: flex; + body.sidebar-refactoring .nav-sidebar { + left: -220px; + } +} +body.sidebar-refactoring .nav-sidebar .nav-icon-container { + display: flex; + margin-right: 8px; +} +body.sidebar-refactoring .nav-sidebar .fly-out-top-item { + display: none; +} +body.sidebar-refactoring .nav-sidebar svg { + height: 16px; + width: 16px; +} +@media (min-width: 768px) and (max-width: 1199px) { + body.sidebar-refactoring .nav-sidebar:not(.sidebar-expanded-mobile) { + width: 50px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-sidebar-inner-scroll { + overflow-x: hidden; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .badge.badge-pill:not(.fly-out-badge), + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-item-name { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + > a { + min-height: 45px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .fly-out-top-item { + display: block; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .avatar-container { + margin: 0 auto; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header { + height: 60px; + width: 50px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .context-header + a { + padding: 10px 4px; } - .toggle-sidebar-button { + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-context-title { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .sidebar-top-level-items + > li + .sidebar-sub-level-items:not(.flyout-list) { display: none; } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .nav-icon-container { + margin-right: 0; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button { + padding: 16px; + width: 49px; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .collapse-text, + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-left { + display: none; + } + body.sidebar-refactoring + .nav-sidebar:not(.sidebar-expanded-mobile) + .toggle-sidebar-button + .icon-chevron-double-lg-right { + display: block; + margin: 0; + } } -table.table { - margin-bottom: 16px; +body.sidebar-refactoring .nav-sidebar-inner-scroll { + height: 100%; + width: 100%; + overflow: auto; } -table.table .dropdown-menu a { - text-decoration: none; +body.sidebar-refactoring .sidebar-sub-level-items { + display: none; + padding-bottom: 8px; } -table.table .success, -table.table .info { - color: #fff; +body.sidebar-refactoring .sidebar-sub-level-items > li a { + padding: 8px 16px 8px 40px; } -table.table .success a:not(.btn), -table.table .info a:not(.btn) { - text-decoration: underline; - color: #fff; +body.sidebar-refactoring .sidebar-top-level-items { + margin-bottom: 60px; +} +@media (min-width: 576px) { + body.sidebar-refactoring .sidebar-top-level-items > li > a { + margin-right: 1px; + } +} +body.sidebar-refactoring .sidebar-top-level-items > li .badge.badge-pill { + background-color: rgba(0, 0, 0, 0.08); + color: #666; +} +body.sidebar-refactoring .sidebar-top-level-items > li.active { + background: rgba(0, 0, 0, 0.04); } -pre { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; +body.sidebar-refactoring .sidebar-top-level-items > li.active > a { + margin-left: 4px; + padding-left: 12px; +} +body.sidebar-refactoring + .sidebar-top-level-items + > li.active + .badge.badge-pill { + font-weight: 600; +} +body.sidebar-refactoring + .sidebar-top-level-items + > li.active + .sidebar-sub-level-items:not(.is-fly-out-only) { display: block; - padding: 8px 12px; - margin: 0 0 8px; - font-size: 13px; - word-break: break-all; - word-wrap: break-word; - color: #303030; +} +body.sidebar-refactoring .toggle-sidebar-button, +body.sidebar-refactoring .close-nav-button { + height: 48px; + padding: 0 16px; background-color: #fafafa; - border: 1px solid #dbdbdb; - border-radius: 2px; + border: 0; + color: #666; + display: flex; + align-items: center; } -.monospace { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; +body.sidebar-refactoring .toggle-sidebar-button, +body.sidebar-refactoring .close-nav-button { + position: fixed; + bottom: 0; + width: 219px; + border-top: 1px solid #dbdbdb; +} +body.sidebar-refactoring .toggle-sidebar-button svg, +body.sidebar-refactoring .close-nav-button svg { + margin-right: 8px; +} +body.sidebar-refactoring .toggle-sidebar-button .icon-chevron-double-lg-right, +body.sidebar-refactoring .close-nav-button .icon-chevron-double-lg-right { + display: none; +} +body.sidebar-refactoring .collapse-text { + white-space: nowrap; + overflow: hidden; +} +body.sidebar-refactoring .fly-out-top-item > a { + display: flex; +} +body.sidebar-refactoring .fly-out-top-item .fly-out-badge { + margin-left: 8px; +} +body.sidebar-refactoring .fly-out-top-item-name { + flex: 1; +} +body.sidebar-refactoring .close-nav-button { + display: none; +} +@media (max-width: 767.98px) { + body.sidebar-refactoring .close-nav-button { + display: flex; + } + body.sidebar-refactoring .toggle-sidebar-button { + display: none; + } } -input::-moz-placeholder, -textarea::-moz-placeholder { +input::-moz-placeholder { color: #868686; opacity: 1; } -input::-ms-input-placeholder, -textarea::-ms-input-placeholder { +input::-ms-input-placeholder { color: #868686; } -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { +input:-ms-input-placeholder { color: #868686; } svg { fill: currentColor; } - svg.s12 { width: 12px; height: 12px; } - svg.s16 { width: 16px; height: 16px; } - svg.s18 { width: 18px; height: 18px; } - svg.s12 { vertical-align: -1px; } - svg.s16 { vertical-align: -3px; } -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -table.code { +.js-groups-dropdown { width: 100%; - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; - border: 0; - border-collapse: separate; - margin: 0; - padding: 0; - table-layout: fixed; - border-radius: 0 0 4px 4px; -} -.frame .badge.badge-pill { - position: absolute; - background-color: #428fdc; - color: #fff; - border: #fff 1px solid; - min-height: 16px; - padding: 5px 8px; - border-radius: 12px; -} -.frame .badge.badge-pill { - transform: translate(-50%, -50%); -} -.color-label { - padding: 0 0.5rem; - line-height: 16px; - border-radius: 100px; - color: #fff; -} -.label-link { - display: inline-flex; - vertical-align: text-bottom; -} -.milestones { - padding: 8px; - margin-top: 8px; - border-radius: 4px; - background-color: #dbdbdb; } .search { margin: 0 8px; } .search form { + display: block; margin: 0; padding: 4px; width: 200px; @@ -1669,7 +1853,6 @@ table.code { border: 0; border-radius: 4px; } - @media (min-width: 1200px) { .search form { width: 320px; @@ -1708,12 +1891,17 @@ table.code { .search .search-input-wrap .dropdown { position: static; } +.search .search-input-wrap .dropdown-header { + font-weight: 600; + color: #303030; + font-size: 0.875rem; + line-height: 16px; +} .search .search-input-wrap .dropdown-menu { left: -5px; max-height: 400px; overflow: auto; } - @media (min-width: 1200px) { .search .search-input-wrap .dropdown-menu { width: 320px; @@ -1722,34 +1910,27 @@ table.code { .search .search-input-wrap .dropdown-content { max-height: 382px; } -.settings { - border-top: 1px solid #dbdbdb; -} -.settings:first-of-type { - margin-top: 10px; - border: 0; -} -.settings + div .settings:first-of-type { - margin-top: 0; - border-top: 1px solid #dbdbdb; -} -.avatar, .avatar-container { +.avatar, +.avatar-container { float: left; margin-right: 16px; border-radius: 50%; border: 1px solid #f5f5f5; } -.s16.avatar, .s16.avatar-container { +.avatar.s16, +.avatar-container.s16 { width: 16px; height: 16px; margin-right: 8px; } -.s18.avatar, .s18.avatar-container { +.avatar.s18, +.avatar-container.s18 { width: 18px; height: 18px; margin-right: 8px; } -.s40.avatar, .s40.avatar-container { +.avatar.s40, +.avatar-container.s40 { width: 40px; height: 40px; margin-right: 8px; @@ -1763,11 +1944,6 @@ table.code { overflow: hidden; border-color: rgba(0, 0, 0, 0.1); } -.avatar.center { - font-size: 14px; - line-height: 1.8em; - text-align: center; -} .avatar.avatar-tile { border-radius: 0; border: 0; @@ -1806,6 +1982,18 @@ table.code { .rect-avatar.s40 { border-radius: 4px; } +#content-body { + display: block; +} + +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} .tab-width-8 { -moz-tab-size: 8; tab-size: 8; @@ -1821,12 +2009,61 @@ table.code { white-space: nowrap; width: 1px; } +@keyframes gl-spinner-rotate { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +.gl-border-solid { + border-style: solid; +} +.gl-border-gray-100 { + border-color: #dbdbdb; +} +.gl-border-0 { + border-width: 0; +} +.gl-border-t-1 { + border-top-width: 1px; +} +.gl-display-flex\! { + display: flex !important; +} +.gl-align-items-center { + align-items: center; +} +.gl-justify-content-space-between { + justify-content: space-between; +} +.gl-absolute { + position: absolute; +} +.gl-px-3\! { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} +.gl-mt-7 { + margin-top: 2rem; +} +.gl-ml-auto { + margin-left: auto; +} .gl-ml-3 { margin-left: 0.5rem; } -.content-wrapper > .alert-wrapper, -#content-body, .modal-dialog { - display: block; +.gl-mx-0\! { + margin-left: 0 !important; + margin-right: 0 !important; +} +.gl-font-weight-bold { + font-weight: 600; } -@import 'cloaking'; +.gl-line-height-20\! { + line-height: 1.25rem !important; +} + +@import "cloaking"; @include cloak-startup-scss(none); diff --git a/app/assets/stylesheets/startup/startup-signin.scss b/app/assets/stylesheets/startup/startup-signin.scss index 6b78abdb5e0..ccc67c23dd3 100644 --- a/app/assets/stylesheets/startup/startup-signin.scss +++ b/app/assets/stylesheets/startup/startup-signin.scss @@ -1,3 +1,6 @@ +// DO NOT EDIT! This is auto-generated from "yarn run generate:startup_css" +// Please see the feedback issue for more details and help: +// https://gitlab.com/gitlab-org/gitlab/-/issues/331812 @charset "UTF-8"; *, *::before, @@ -8,12 +11,14 @@ html { font-family: sans-serif; line-height: 1.15; } - header, nav, section { +header { display: block; } body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 1rem; font-weight: 400; line-height: 1.5; @@ -26,7 +31,8 @@ hr { height: 0; overflow: visible; } -h1, h2, h3 { +h1, +h3 { margin-top: 0; margin-bottom: 0.25rem; } @@ -39,47 +45,20 @@ address { font-style: normal; line-height: inherit; } - -ul { - margin-top: 0; - margin-bottom: 1rem; -} - -ul ul { - margin-bottom: 0; -} - -strong { - font-weight: bolder; -} -sub { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sub { - bottom: -.25em; -} a { color: #007bff; text-decoration: none; background-color: transparent; } -a:not([href]) { +a:not([href]):not([class]) { color: inherit; text-decoration: none; } -pre, code { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; + font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", + "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-size: 1em; } -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; -} img { vertical-align: middle; border-style: none; @@ -88,89 +67,54 @@ svg { overflow: hidden; vertical-align: middle; } -table { - border-collapse: collapse; -} -th { - text-align: inherit; -} label { display: inline-block; margin-bottom: 0.5rem; } -button { - border-radius: 0; -} -input, -button, -textarea { +input { margin: 0; font-family: inherit; font-size: inherit; line-height: inherit; } -button, input { overflow: visible; } -button { - text-transform: none; -} -button:not(:disabled), -[type="button"]:not(:disabled), -[type="reset"]:not(:disabled), [type="submit"]:not(:disabled) { cursor: pointer; } -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { padding: 0; border-style: none; } - -input[type="checkbox"] { - box-sizing: border-box; - padding: 0; -} -textarea { - overflow: auto; - resize: vertical; -} fieldset { min-width: 0; padding: 0; margin: 0; border: 0; } -[type="search"] { - outline-offset: -2px; -} summary { display: list-item; cursor: pointer; } -template { - display: none; -} [hidden] { display: none !important; } -h1, h2, h3, -.h1, .h2, .h3 { +h1, +h3, +.h1, +.h3 { margin-bottom: 0.25rem; font-weight: 600; line-height: 1.2; color: #303030; } -h1, .h1 { +h1, +.h1 { font-size: 2.1875rem; } -h2, .h2 { - font-size: 1.75rem; -} -h3, .h3 { +h3, +.h3 { font-size: 1.53125rem; } hr { @@ -179,10 +123,6 @@ hr { border: 0; border-top: 1px solid rgba(0, 0, 0, 0.1); } -.list-unstyled { - padding-left: 0; - list-style: none; -} code { font-size: 90%; color: #1f1f1f; @@ -191,16 +131,6 @@ code { a > code { color: inherit; } -pre { - display: block; - font-size: 90%; - color: #303030; -} -pre code { - font-size: inherit; - color: inherit; - word-break: normal; -} .container { width: 100%; padding-right: 15px; @@ -208,56 +138,21 @@ pre code { margin-right: auto; margin-left: auto; } - @media (min-width: 576px) { .container { max-width: 540px; } } - @media (min-width: 768px) { .container { max-width: 720px; } } - @media (min-width: 992px) { .container { max-width: 960px; } } - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} -.container-fluid { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - @media (min-width: 1200px) { .container { max-width: 1140px; @@ -269,19 +164,26 @@ pre code { margin-right: -15px; margin-left: -15px; } - .col-sm-5, .col-sm-7, .col-sm-12 { +.col, +.col-sm-5, +.col-sm-7, +.col-sm-12 { position: relative; width: 100%; padding-right: 15px; padding-left: 15px; } +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} .order-1 { order: 1; } .order-12 { order: 12; } - @media (min-width: 576px) { .col-sm-5 { flex: 0 0 41.66667%; @@ -302,18 +204,7 @@ pre code { order: 12; } } -.table { - width: 100%; - margin-bottom: 0.5rem; - color: #303030; -} -.table th, -.table td { - padding: 0.75rem; - vertical-align: top; - border-top: 1px solid #dbdbdb; -} -.form-control, .search form { +.form-control { display: block; width: 100%; height: 34px; @@ -327,52 +218,37 @@ pre code { border: 1px solid #dbdbdb; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } -.form-control:-moz-focusring, .search form:-moz-focusring { +.form-control:-moz-focusring { color: transparent; text-shadow: 0 0 0 #303030; } -.form-control::placeholder, .search form::placeholder { +.form-control::-ms-input-placeholder { color: #5e5e5e; opacity: 1; } -.form-control:disabled, .search form:disabled { - background-color: #fafafa; +.form-control::placeholder { + color: #5e5e5e; opacity: 1; } -textarea.form-control { - height: auto; +.form-control:disabled { + background-color: #fafafa; + opacity: 1; } .form-group { margin-bottom: 1rem; } -.form-inline { +.form-row { display: flex; - flex-flow: row wrap; - align-items: center; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; } - -@media (min-width: 576px) { - .form-inline label { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; - } - .form-inline .form-group { - display: flex; - flex: 0 0 auto; - flex-flow: row wrap; - align-items: center; - margin-bottom: 0; - } - .form-inline .form-control, .form-inline .search form, .search .form-inline form { - display: inline-block; - width: auto; - vertical-align: middle; - } +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; } .btn { display: inline-block; @@ -380,7 +256,7 @@ textarea.form-control { color: #303030; text-align: center; vertical-align: middle; - cursor: pointer; + -moz-user-select: none; user-select: none; background-color: transparent; border: 1px solid transparent; @@ -389,147 +265,16 @@ textarea.form-control { line-height: 20px; border-radius: 0.25rem; } - @media (prefers-reduced-motion: reduce) { } -.btn.disabled, .btn:disabled { +.btn:disabled { opacity: 0.65; } -a.btn.disabled, -fieldset:disabled a.btn { - pointer-events: none; -} -.btn-success { - color: #fff; - background-color: #108548; - border-color: #108548; -} -.btn-success.disabled, .btn-success:disabled { - color: #fff; - background-color: #108548; - border-color: #108548; -} -.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, -.show > .btn-success.dropdown-menu-toggle { - color: #fff; - background-color: #0b572f; - border-color: #094c29; -} - .login-page input[type='submit'] { - display: block; - width: 100%; -} - .login-page input[type='submit'] + input[type='submit'] { - margin-top: 0.5rem; -} - .login-page input[type="submit"][type='submit'], -.login-page input[type="reset"][type='submit'], -.login-page input[type="button"][type='submit'] { - width: 100%; -} -.collapse:not(.show) { - display: none; -} - -.dropdown { - position: relative; -} - .dropdown-menu-toggle { - white-space: nowrap; -} - .dropdown-menu-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; -} - .dropdown-menu-toggle:empty::after { - margin-left: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 1rem; - color: #303030; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0.25rem; -} -.dropdown-menu-right { - right: 0; - left: auto; -} - .divider { - height: 0; - margin: 4px 0; - overflow: hidden; - border-top: 1px solid #dbdbdb; -} -.dropdown-menu.show { - display: block; -} -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav-link { - display: block; - padding: 0.5rem 1rem; +.btn:not(:disabled):not(.disabled) { + cursor: pointer; } -.nav-link.disabled { - color: #5e5e5e; +fieldset:disabled a.btn { pointer-events: none; - cursor: default; -} -.nav-tabs { - border-bottom: 1px solid #999; -} -.nav-tabs .nav-item { - margin-bottom: -1px; -} -.nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} -.nav-tabs .nav-link.disabled { - color: #5e5e5e; - background-color: transparent; - border-color: transparent; -} -.nav-tabs .nav-link.active, -.nav-tabs .nav-item.show .nav-link { - color: #525252; - background-color: #fff; - border-color: #999 #999 #fff; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; } .navbar { position: relative; @@ -539,77 +284,12 @@ fieldset:disabled a.btn { justify-content: space-between; padding: 0.25rem 0.5rem; } -.navbar .container, -.navbar .container-fluid { +.navbar .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; } -.navbar-nav { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; -} -.navbar-nav .dropdown-menu { - position: static; - float: none; -} -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; -} -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.25rem; - line-height: 1; - background-color: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; -} - -@media (max-width: 575.98px) { - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 576px) { - .navbar-expand-sm { - flex-flow: row nowrap; - justify-content: flex-start; - } - .navbar-expand-sm .navbar-nav { - flex-direction: row; - } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; - } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - flex-wrap: nowrap; - } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-sm .navbar-toggler { - display: none; - } -} .card { position: relative; display: flex; @@ -625,132 +305,12 @@ fieldset:disabled a.btn { margin-right: 0; margin-left: 0; } -.badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 600; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.25rem; -} - -@media (prefers-reduced-motion: reduce) { -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; -} -.media { - display: flex; - align-items: flex-start; -} -.close { - float: right; - font-size: 1.5rem; - font-weight: 600; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5; -} -button.close { - padding: 0; - background-color: transparent; - border: 0; - appearance: none; -} -a.close.disabled { - pointer-events: none; -} -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; -} - -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } -} -.bg-transparent { - background-color: transparent !important; -} -.border { - border: 1px solid #dbdbdb !important; -} -.border-top { - border-top: 1px solid #dbdbdb !important; -} -.border-right { - border-right: 1px solid #dbdbdb !important; -} -.border-bottom { - border-bottom: 1px solid #dbdbdb !important; -} -.border-left { - border-left: 1px solid #dbdbdb !important; -} -.rounded { - border-radius: 0.25rem !important; -} -.clearfix::after { - display: block; - clear: both; - content: ""; -} -.d-none { - display: none !important; -} -.d-inline-block { - display: inline-block !important; -} .d-block { display: block !important; } .d-flex { display: flex !important; } - -@media (min-width: 576px) { - .d-sm-none { - display: none !important; - } -} - -@media (min-width: 768px) { - .d-md-block { - display: block !important; - } -} - -@media (min-width: 992px) { - .d-lg-none { - display: none !important; - } - .d-lg-block { - display: block !important; - } -} - -@media (min-width: 1200px) { - .d-xl-block { - display: block !important; - } -} .flex-wrap { flex-wrap: wrap !important; } @@ -760,9 +320,6 @@ a.close.disabled { .align-items-center { align-items: center !important; } -.float-right { - float: right !important; -} .fixed-top { position: fixed; top: 0; @@ -770,16 +327,8 @@ a.close.disabled { left: 0; z-index: 1030; } -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; +.ml-2 { + margin-left: 0.5rem !important; } .mt-3 { margin-top: 1rem !important; @@ -787,81 +336,122 @@ a.close.disabled { .mb-3 { margin-bottom: 1rem !important; } -.m-auto { - margin: auto !important; -} - @media (min-width: 576px) { .mt-sm-0 { margin-top: 0 !important; } } -.text-nowrap { - white-space: nowrap !important; -} -.text-left { - text-align: left !important; +.text-center { + text-align: center !important; } .font-weight-normal { font-weight: 400 !important; } -.visible { - visibility: visible !important; -} -.form-control.focus, .search form.focus { - color: #303030; +.gl-form-input, +.gl-form-input.form-control { background-color: #fff; - border-color: #80bdff; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 0.875rem; + line-height: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + height: auto; + color: #303030; + box-shadow: inset 0 0 0 1px #868686; + border-style: none; + appearance: none; + -moz-appearance: none; } -input[type="color"].form-control { - height: 34px; - padding: 0.125rem 0.25rem; +.gl-form-input:not(.form-control-plaintext):-moz-read-only, +.gl-form-input.form-control:not(.form-control-plaintext):-moz-read-only { + background-color: #fafafa; + color: #868686; + box-shadow: inset 0 0 0 1px #dbdbdb; + cursor: not-allowed; } -input[type="color"].form-control:disabled { - background-color: #666; - opacity: 0.65; +.gl-form-input:disabled, +.gl-form-input:not(.form-control-plaintext):read-only, +.gl-form-input.form-control:disabled, +.gl-form-input.form-control:not(.form-control-plaintext):read-only { + background-color: #fafafa; + color: #868686; + box-shadow: inset 0 0 0 1px #dbdbdb; + cursor: not-allowed; +} +.gl-form-input::-ms-input-placeholder, +.gl-form-input.form-control::-ms-input-placeholder { + color: #868686; +} +.gl-form-input::placeholder, +.gl-form-input.form-control::placeholder { + color: #868686; } -.gl-badge { +.gl-button { display: inline-flex; - align-items: center; - font-size: 0.75rem; - font-weight: 400; +} +.gl-button.gl-button { + border-width: 0; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + padding-right: 0.75rem; + background-color: transparent; line-height: 1rem; - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - padding-right: 0.5rem; + color: #303030; + fill: currentColor; + box-shadow: inset 0 0 0 1px #bfbfbf; + justify-content: center; + align-items: center; + font-size: 0.875rem; + border-radius: 0.25rem; +} +.gl-button.gl-button .gl-button-icon { + height: 1rem; + width: 1rem; + flex-shrink: 0; + margin-right: 0.25rem; + top: auto; +} +.gl-button.gl-button.btn-default { + background-color: #fff; +} +.gl-button.gl-button.btn-default:active { + box-shadow: inset 0 0 0 2px #5e5e5e, 0 0 0 1px rgba(255, 255, 255, 0.4), + 0 0 0 4px rgba(31, 117, 203, 0.48); + outline: none; + background-color: #dbdbdb; +} +.gl-button.gl-button.btn-confirm { + color: #fff; +} +.gl-button.gl-button.btn-confirm { + background-color: #1f75cb; + box-shadow: inset 0 0 0 1px #1068bf; +} +.gl-button.gl-button.btn-confirm:active { + box-shadow: inset 0 0 0 2px #033464, 0 0 0 1px rgba(255, 255, 255, 0.4), + 0 0 0 4px rgba(31, 117, 203, 0.48); outline: none; + background-color: #0b5cad; } -body, .form-control, .search form, -.search form { +body, +.form-control { font-size: 0.875rem; } -button, -html [type='button'], -[type='reset'], -[type='submit'], -[role='button'] { +[type="submit"] { cursor: pointer; } h1, .h1, -h2, -.h2, h3, .h3 { margin-top: 20px; margin-bottom: 10px; } -input[type='file'] { - line-height: 1; -} - -strong { - font-weight: bold; -} a { color: #1068bf; } @@ -878,9 +468,6 @@ code { background-color: inherit; padding: unset; } -table { - border-spacing: 0; -} .hidden { display: none !important; visibility: hidden !important; @@ -888,10 +475,6 @@ table { .hide { display: none; } - .dropdown-menu-toggle::after { - display: none; -} -.badge:not(.gl-badge), .label { padding: 4px 5px; font-size: 12px; @@ -899,28 +482,6 @@ table { font-weight: 400; display: inline-block; } -.nav-tabs { - border-bottom: 0; -} -.nav-tabs .nav-link { - border-top: 0; - border-left: 0; - border-right: 0; -} -.nav-tabs .nav-item { - margin-bottom: 0; -} -pre code { - white-space: pre-wrap; -} -input[type="color"].form-control { - height: 34px; -} -.toggle-sidebar-button .collapse-text, -.toggle-sidebar-button .icon-chevron-double-lg-left, -.toggle-sidebar-button .icon-chevron-double-lg-right { - color: #666; -} svg { vertical-align: baseline; } @@ -933,10 +494,6 @@ body { body.navless { background-color: #fff !important; } -.content-wrapper { - margin-top: 40px; - padding-bottom: 100px; -} .container { padding-top: 0; z-index: 5; @@ -944,13 +501,11 @@ body.navless { .container .content { margin: 0; } - @media (max-width: 575.98px) { .container .content { margin-top: 20px; } } - @media (max-width: 575.98px) { .container .container .title { padding-left: 15px !important; @@ -971,259 +526,31 @@ body.navless { color: #303030; white-space: nowrap; } -.btn:active, .btn.active { - box-shadow: rgba(0, 0, 0, 0.16); +.btn:active { background-color: #eaeaea; border-color: #e3e3e3; color: #303030; } -.btn.btn-success { - background-color: #108548; - border-color: #217645; - color: #fff; -} -.btn.btn-success:active, .btn.btn-success.active { - box-shadow: rgba(0, 0, 0, 0.16); - background-color: #24663b; - border-color: #0d532a; - color: #fff; -} .btn svg { height: 15px; width: 15px; } -.btn svg:not(:last-child), -.btn .fa:not(:last-child) { +.btn svg:not(:last-child) { margin-right: 5px; } - .login-page input[type='submit'] { - width: 100%; - margin: 0; - margin-bottom: 15px; -} - .login-page input.btn[type='submit'] { - padding: 6px 0; -} -.badge.badge-pill:not(.gl-badge) { - font-weight: 400; - background-color: rgba(0, 0, 0, 0.07); - color: #525252; - vertical-align: baseline; -} -.hint { - font-style: italic; - color: #bfbfbf; -} -.bold { - font-weight: 600; -} -.tab-content { - overflow: visible; -} -pre.wrap { - word-break: break-word; - white-space: pre-wrap; +.light { + color: #303030; } hr { - margin: 24px 0; + margin: 1.5rem 0; border-top: 1px solid #eee; } -table a code { - position: relative; - top: -2px; - margin-right: 3px; -} -.loading { - margin: 20px auto; - height: 40px; - color: #525252; - font-size: 32px; - text-align: center; -} -.highlight { - text-shadow: none; -} -.chart { - overflow: hidden; - height: 220px; -} .footer-links { margin-bottom: 20px; } .footer-links a { margin-right: 15px; } -.break-word { - word-wrap: break-word; -} -.append-bottom-20 { - margin-bottom: 20px; -} -.center { - text-align: center; -} -.block { - display: block; -} -.flex { - display: flex; -} -.flex-grow { - flex-grow: 1; -} -.dropdown { - position: relative; -} -.show.dropdown .dropdown-menu { - transform: translateY(0); - display: block; - min-height: 40px; - max-height: 312px; - overflow-y: auto; -} - -@media (max-width: 575.98px) { - .show.dropdown .dropdown-menu { - width: 100%; - } -} - .show.dropdown .dropdown-menu-toggle, -.show.dropdown .dropdown-menu-toggle { - border-color: #c4c4c4; -} -.show.dropdown [data-toggle='dropdown'] { - outline: 0; -} -.search-input-container .dropdown-menu { - margin-top: 11px; -} - .dropdown-menu-toggle { - padding: 6px 8px 6px 10px; - background-color: #fff; - color: #303030; - font-size: 14px; - text-align: left; - border: 1px solid #dbdbdb; - border-radius: 0.25rem; - white-space: nowrap; -} - .no-outline.dropdown-menu-toggle { - outline: 0; -} - .dropdown-menu-toggle .fa { - color: #c4c4c4; -} -.dropdown-menu-toggle { - padding-right: 25px; - position: relative; - width: 160px; - text-overflow: ellipsis; - overflow: hidden; -} -.dropdown-menu-toggle .fa { - position: absolute; -} -.dropdown-menu { - display: none; - position: absolute; - width: auto; - top: 100%; - z-index: 300; - min-width: 240px; - max-width: 500px; - margin-top: 4px; - margin-bottom: 24px; - font-size: 14px; - font-weight: 400; - padding: 8px 0; - background-color: #fff; - border: 1px solid #dbdbdb; - border-radius: 0.25rem; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); -} -.dropdown-menu ul { - margin: 0; - padding: 0; -} -.dropdown-menu li { - display: block; - text-align: left; - list-style: none; - padding: 0 1px; -} -.dropdown-menu li > a, -.dropdown-menu li button { - background: transparent; - border: 0; - border-radius: 0; - box-shadow: none; - display: block; - font-weight: 400; - position: relative; - padding: 8px 12px; - color: #303030; - line-height: 16px; - white-space: normal; - overflow: hidden; - text-align: left; - width: 100%; -} -.dropdown-menu .divider { - height: 1px; - margin: 0.25rem 0; - padding: 0; - background-color: #dbdbdb; -} -.dropdown-menu .badge.badge-pill + span:not(.badge):not(.badge-pill) { - margin-right: 40px; -} -.dropdown-select { - width: 300px; -} - -@media (max-width: 767.98px) { - .dropdown-select { - width: 100%; - } -} -.dropdown-content { - max-height: 252px; - overflow-y: auto; -} -.dropdown-loading { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - display: none; - z-index: 9; - background-color: rgba(255, 255, 255, 0.6); - font-size: 28px; -} -.dropdown-loading .fa { - position: absolute; - top: 50%; - left: 50%; - margin-top: -14px; - margin-left: -14px; -} - -@media (max-width: 575.98px) { - .navbar-gitlab li.dropdown { - position: static; - } - header.navbar-gitlab .dropdown .dropdown-menu { - width: 100%; - min-width: 100%; - } -} - -@media (max-width: 767.98px) { - .dropdown-menu-toggle { - width: 100%; - } -} .flash-container { margin: 0; margin-bottom: 16px; @@ -1232,8 +559,8 @@ table a code { z-index: 1; } .flash-container.sticky { - position: sticky; position: -webkit-sticky; + position: sticky; top: 48px; z-index: 251; } @@ -1243,9 +570,6 @@ table a code { .flash-container:empty { margin: 0; } -textarea { - resize: vertical; -} input { border-radius: 0.25rem; color: #303030; @@ -1257,809 +581,61 @@ label { label.label-bold { font-weight: 600; } -.form-control, .search form { +.form-control { border-radius: 4px; padding: 6px 10px; } -.form-control::placeholder, .search form::placeholder { +.form-control::-ms-input-placeholder { color: #868686; } -.gl-field-error { - color: #dd2b0e; - font-size: 0.875rem; +.form-control::placeholder { + color: #868686; } -.gl-show-field-errors .form-control:not(textarea), .gl-show-field-errors .search form:not(textarea), .search .gl-show-field-errors form:not(textarea) { +.gl-show-field-errors .form-control:not(textarea) { height: 34px; } .gl-show-field-errors .gl-field-hint { color: #303030; } - -@media (max-width: 575.98px) { - .remember-me .remember-me-checkbox { - margin-top: 0; - } -} -body.ui-indigo .navbar-gitlab { - background-color: #292961; -} -body.ui-indigo .navbar-gitlab .navbar-collapse { - color: #d1d1f0; -} -body.ui-indigo .navbar-gitlab .container-fluid .navbar-toggler { - border-left: 1px solid #6868b9; -} -body.ui-indigo .navbar-gitlab .container-fluid .navbar-toggler svg { - fill: #d1d1f0; -} -body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.active > a, -body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.active > button, body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.dropdown.show > a, -body.ui-indigo .navbar-gitlab .navbar-sub-nav > li.dropdown.show > button, -body.ui-indigo .navbar-gitlab .navbar-nav > li.active > a, -body.ui-indigo .navbar-gitlab .navbar-nav > li.active > button, -body.ui-indigo .navbar-gitlab .navbar-nav > li.dropdown.show > a, -body.ui-indigo .navbar-gitlab .navbar-nav > li.dropdown.show > button { - color: #292961; - background-color: #fff; -} -body.ui-indigo .navbar-gitlab .navbar-sub-nav { - color: #d1d1f0; -} -body.ui-indigo .navbar-gitlab .nav > li { - color: #d1d1f0; -} -body.ui-indigo .navbar-gitlab .nav > li > a.header-user-dropdown-toggle .header-user-avatar { - border-color: #d1d1f0; -} -body.ui-indigo .navbar-gitlab .nav > li.active > a, -body.ui-indigo .navbar-gitlab .nav > li.dropdown.show > a { - color: #292961; - background-color: #fff; -} -body.ui-indigo .search form { - background-color: rgba(209, 209, 240, 0.2); -} -body.ui-indigo .search .search-input::placeholder { - color: rgba(209, 209, 240, 0.8); -} -body.ui-indigo .search .search-input-wrap .search-icon, -body.ui-indigo .search .search-input-wrap .clear-icon { - fill: rgba(209, 209, 240, 0.8); -} -body.ui-indigo .nav-sidebar li.active { - box-shadow: inset 4px 0 0 #4b4ba3; -} -body.ui-indigo .nav-sidebar li.active > a { - color: #393982; -} -body.ui-indigo .nav-sidebar li.active .nav-icon-container svg { - fill: #393982; -} -body.ui-indigo .sidebar-top-level-items > li.active .badge.badge-pill { - color: #393982; -} -body.ui-indigo .nav-links li.active a, -body.ui-indigo .nav-links li a.active { - border-bottom: 2px solid #6666c4; -} -body.ui-indigo .nav-links li.active a .badge.badge-pill, -body.ui-indigo .nav-links li a.active .badge.badge-pill { - font-weight: 600; -} -.navbar-gitlab { - padding: 0 16px; - z-index: 1000; - margin-bottom: 0; - min-height: 40px; - border: 0; - border-bottom: 1px solid #dbdbdb; - position: fixed; - top: 0; - left: 0; - right: 0; - border-radius: 0; -} -.navbar-gitlab .logo-text { - line-height: initial; -} -.navbar-gitlab .logo-text svg { - width: 55px; - height: 14px; - margin: 0; - fill: #fff; -} -.navbar-gitlab .close-icon { - display: none; -} -.navbar-gitlab .header-content { - width: 100%; - display: flex; - justify-content: space-between; - position: relative; - min-height: 40px; - padding-left: 0; -} -.navbar-gitlab .header-content .title-container { - display: flex; - align-items: stretch; - flex: 1 1 auto; - padding-top: 0; - overflow: visible; -} -.navbar-gitlab .header-content .title { - padding-right: 0; - color: currentColor; - display: flex; - position: relative; - margin: 0; - font-size: 18px; - vertical-align: top; - white-space: nowrap; -} -.navbar-gitlab .header-content .title img { - height: 28px; -} -.navbar-gitlab .header-content .title img + .logo-text { - margin-left: 8px; -} -.navbar-gitlab .header-content .title.wrap { - white-space: normal; -} -.navbar-gitlab .header-content .title a { - display: flex; - align-items: center; - padding: 2px 8px; - margin: 5px 2px 5px -8px; - border-radius: 4px; -} -.navbar-gitlab .header-content .dropdown.open > a { - border-bottom-color: #fff; -} -.navbar-gitlab .header-content .navbar-collapse > ul.nav > li:not(.d-none) { - margin: 0 2px; -} -.navbar-gitlab .navbar-collapse { - flex: 0 0 auto; - border-top: 0; - padding: 0; -} - -@media (max-width: 575.98px) { - .navbar-gitlab .navbar-collapse { - flex: 1 1 auto; - } -} -.navbar-gitlab .navbar-collapse .nav { - flex-wrap: nowrap; -} - -@media (max-width: 575.98px) { - .navbar-gitlab .navbar-collapse .nav > li:not(.d-none) a { - margin-left: 0; - } -} -.navbar-gitlab .container-fluid { - padding: 0; -} -.navbar-gitlab .container-fluid .user-counter svg { - margin-right: 3px; -} -.navbar-gitlab .container-fluid .navbar-toggler { - position: relative; - right: -10px; - border-radius: 0; - min-width: 45px; - padding: 0; - margin: 8px -7px 8px 0; - font-size: 14px; - text-align: center; - color: currentColor; -} - -@media (max-width: 575.98px) { - .navbar-gitlab .container-fluid .navbar-nav { - display: flex; - padding-right: 10px; - flex-direction: row; - } -} -.navbar-gitlab .container-fluid .navbar-nav li .badge.badge-pill { - box-shadow: none; - font-weight: 600; -} - -@media (max-width: 575.98px) { - .navbar-gitlab .container-fluid .nav > li.header-user { - padding-left: 10px; - } -} -.navbar-gitlab .container-fluid .nav > li > a { - will-change: color; - margin: 4px 0; - padding: 6px 8px; - height: 32px; -} - -@media (max-width: 575.98px) { - .navbar-gitlab .container-fluid .nav > li > a { - padding: 0; - } -} -.navbar-gitlab .container-fluid .nav > li > a.header-user-dropdown-toggle { - margin-left: 2px; -} -.navbar-gitlab .container-fluid .nav > li > a.header-user-dropdown-toggle .header-user-avatar { - margin-right: 0; -} -.navbar-gitlab .container-fluid .nav > li .header-new-dropdown-toggle { - margin-right: 0; -} -.navbar-sub-nav > li > a, -.navbar-sub-nav > li > button, -.navbar-nav > li > a, -.navbar-nav > li > button { - display: flex; - align-items: center; - justify-content: center; - padding: 6px 8px; - margin: 4px 2px; - font-size: 12px; - color: currentColor; - border-radius: 4px; - height: 32px; - font-weight: 600; -} -.navbar-sub-nav > li > button, -.navbar-nav > li > button { - background: transparent; - border: 0; -} -.navbar-sub-nav .dropdown-menu, -.navbar-nav .dropdown-menu { - position: absolute; -} -.navbar-sub-nav { - display: flex; - margin: 0 0 0 6px; -} -.caret-down, -.btn .caret-down { - top: 0; - height: 11px; - width: 11px; - margin-left: 4px; - fill: currentColor; -} -.header-user .dropdown-menu, -.header-new .dropdown-menu { - margin-top: 4px; -} -.btn-sign-in { - background-color: #ebebfa; - color: #292961; - font-weight: 600; - line-height: 18px; - margin: 4px 0 4px 2px; -} -.title-container .badge.badge-pill, -.navbar-nav .badge.badge-pill { - position: inherit; - font-weight: 400; - margin-left: -6px; - font-size: 11px; - color: #fff; - padding: 0 5px; - line-height: 12px; - border-radius: 7px; - box-shadow: 0 1px 0 rgba(76, 78, 84, 0.2); -} -.title-container .badge.badge-pill.green-badge, -.navbar-nav .badge.badge-pill.green-badge { - background-color: #108548; -} -.title-container .badge.badge-pill.merge-requests-count, -.navbar-nav .badge.badge-pill.merge-requests-count { - background-color: #de7e00; -} -.title-container .badge.badge-pill.todos-count, -.navbar-nav .badge.badge-pill.todos-count { - background-color: #1f75cb; -} -.title-container .canary-badge .badge, -.navbar-nav .canary-badge .badge { - font-size: 12px; - line-height: 16px; - padding: 0 0.5rem; -} - -@media (max-width: 575.98px) { - .navbar-gitlab .container-fluid { - font-size: 18px; - } - .navbar-gitlab .container-fluid .navbar-nav { - table-layout: fixed; - width: 100%; - margin: 0; - text-align: right; - } - .navbar-gitlab .container-fluid .navbar-collapse { - margin-left: -8px; - margin-right: -10px; - } - .navbar-gitlab .container-fluid .navbar-collapse .nav > li:not(.d-none) { - flex: 1; - } - .header-user-dropdown-toggle { - text-align: center; - } - .header-user-avatar { - float: none; - } -} -.header-user.show .dropdown-menu { - margin-top: 4px; - color: #303030; - left: auto; - max-height: 445px; -} -.header-user.show .dropdown-menu svg { - vertical-align: text-top; -} -.header-user-avatar { - float: left; - margin-right: 5px; - border-radius: 50%; - border: 1px solid #f5f5f5; -} .navbar-empty { justify-content: center; height: 40px; background: #fff; border-bottom: 1px solid #f0f0f0; } - -@media (max-width: 575.98px) { - .nav-links > li > a .badge.badge-pill { - display: none; - } -} - -@media (max-width: 575.98px) { - .nav-links > li > a { - margin-right: 3px; - } -} -.media { - display: flex; - align-items: flex-start; -} -.card { - margin-bottom: 16px; -} -.nav-links:not(.quick-links) { - display: flex; - padding: 0; - margin: 0; - list-style: none; - height: auto; - border-bottom: 1px solid #dbdbdb; -} -.content-wrapper { - width: 100%; -} -.content-wrapper .container-fluid { - padding: 0 16px; -} - -@media (min-width: 768px) { - .page-with-contextual-sidebar { - padding-left: 50px; - } -} - -@media (min-width: 1200px) { - .page-with-contextual-sidebar { - padding-left: 220px; - } -} -.context-header { - position: relative; - margin-right: 2px; - width: 220px; -} -.context-header > a, -.context-header > button { - font-weight: 600; - display: flex; - width: 100%; - align-items: center; - padding: 10px 16px 10px 10px; - color: #303030; - background-color: transparent; - border: 0; - text-align: left; -} -.context-header .avatar-container { - flex: 0 0 40px; - background-color: #fff; -} -.context-header .sidebar-context-title { - overflow: hidden; - text-overflow: ellipsis; -} -.context-header .sidebar-context-title.text-secondary { - font-weight: normal; - font-size: 0.8em; -} -.nav-sidebar { - position: fixed; - z-index: 600; - width: 220px; - top: 40px; - bottom: 0; - left: 0; - background-color: #fafafa; - box-shadow: inset -1px 0 0 #dbdbdb; - transform: translate3d(0, 0, 0); -} - -@media (min-width: 576px) and (max-width: 576px) { - .nav-sidebar:not(.sidebar-collapsed-desktop) { - box-shadow: inset -1px 0 0 #dbdbdb, 2px 1px 3px rgba(0, 0, 0, 0.1); - } -} -.nav-sidebar.sidebar-collapsed-desktop { - width: 50px; -} -.nav-sidebar.sidebar-collapsed-desktop .nav-sidebar-inner-scroll { - overflow-x: hidden; -} -.nav-sidebar.sidebar-collapsed-desktop .badge.badge-pill:not(.fly-out-badge), -.nav-sidebar.sidebar-collapsed-desktop .sidebar-context-title, -.nav-sidebar.sidebar-collapsed-desktop .nav-item-name { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - white-space: nowrap; - width: 1px; -} -.nav-sidebar.sidebar-collapsed-desktop .sidebar-top-level-items > li > a { - min-height: 45px; -} -.nav-sidebar.sidebar-collapsed-desktop .fly-out-top-item { - display: block; -} -.nav-sidebar.sidebar-collapsed-desktop .avatar-container { - margin: 0 auto; -} -.nav-sidebar.sidebar-expanded-mobile { - left: 0; -} -.nav-sidebar a { - text-decoration: none; -} -.nav-sidebar ul { - padding-left: 0; - list-style: none; -} -.nav-sidebar li { - white-space: nowrap; -} -.nav-sidebar li a { - display: flex; - align-items: center; - padding: 12px 16px; - color: #666; -} -.nav-sidebar li .nav-item-name { - flex: 1; -} -.nav-sidebar li.active > a { - font-weight: 600; -} - -@media (max-width: 767.98px) { - .nav-sidebar { - left: -220px; - } +.navbar-empty .tanuki-logo, +.navbar-empty .brand-header-logo { + max-height: 100%; } -.nav-sidebar .nav-icon-container { - display: flex; - margin-right: 8px; +.tanuki-logo .tanuki-left-ear, +.tanuki-logo .tanuki-right-ear, +.tanuki-logo .tanuki-nose { + fill: #e24329; } -.nav-sidebar .fly-out-top-item { - display: none; +.tanuki-logo .tanuki-left-eye, +.tanuki-logo .tanuki-right-eye { + fill: #fc6d26; } -.nav-sidebar svg { - height: 16px; - width: 16px; +.tanuki-logo .tanuki-left-cheek, +.tanuki-logo .tanuki-right-cheek { + fill: #fca326; } - -@media (min-width: 768px) and (max-width: 1199px) { - .nav-sidebar:not(.sidebar-expanded-mobile) { - width: 50px; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-sidebar-inner-scroll { - overflow-x: hidden; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .badge.badge-pill:not(.fly-out-badge), - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-context-title, - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-item-name { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - white-space: nowrap; - width: 1px; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-top-level-items > li > a { - min-height: 45px; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .fly-out-top-item { - display: block; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .avatar-container { - margin: 0 auto; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .context-header { - height: 60px; - width: 50px; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .context-header a { - padding: 10px 4px; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .sidebar-top-level-items > li .sidebar-sub-level-items:not(.flyout-list) { - display: none; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .nav-icon-container { - margin-right: 0; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button { - padding: 16px; - width: 49px; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .collapse-text, - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .icon-chevron-double-lg-left { - display: none; - } - .nav-sidebar:not(.sidebar-expanded-mobile) .toggle-sidebar-button .icon-chevron-double-lg-right { - display: block; - margin: 0; - } -} -.nav-sidebar-inner-scroll { - height: 100%; - width: 100%; - overflow: auto; -} -.sidebar-sub-level-items { - display: none; - padding-bottom: 8px; -} -.sidebar-sub-level-items > li a { - padding: 8px 16px 8px 40px; -} -.sidebar-top-level-items { - margin-bottom: 60px; -} - -@media (min-width: 576px) { - .sidebar-top-level-items > li > a { - margin-right: 1px; - } -} -.sidebar-top-level-items > li .badge.badge-pill { - background-color: rgba(0, 0, 0, 0.08); - color: #666; -} -.sidebar-top-level-items > li.active { - background: rgba(0, 0, 0, 0.04); -} -.sidebar-top-level-items > li.active > a { - margin-left: 4px; - padding-left: 12px; -} -.sidebar-top-level-items > li.active .badge.badge-pill { - font-weight: 600; -} -.sidebar-top-level-items > li.active .sidebar-sub-level-items:not(.is-fly-out-only) { - display: block; -} -.toggle-sidebar-button, -.close-nav-button { - width: 219px; - position: fixed; - height: 48px; - bottom: 0; - padding: 0 16px; - background-color: #fafafa; - border: 0; - border-top: 1px solid #dbdbdb; - color: #666; - display: flex; - align-items: center; -} -.toggle-sidebar-button svg, -.close-nav-button svg { - margin-right: 8px; -} -.toggle-sidebar-button .icon-chevron-double-lg-right, -.close-nav-button .icon-chevron-double-lg-right { - display: none; -} -.collapse-text { - white-space: nowrap; - overflow: hidden; -} -.sidebar-collapsed-desktop .context-header { - height: 60px; - width: 50px; -} -.sidebar-collapsed-desktop .context-header a { - padding: 10px 4px; -} -.sidebar-collapsed-desktop .sidebar-top-level-items > li .sidebar-sub-level-items:not(.flyout-list) { - display: none; -} -.sidebar-collapsed-desktop .nav-icon-container { - margin-right: 0; -} -.sidebar-collapsed-desktop .toggle-sidebar-button { - padding: 16px; - width: 49px; -} -.sidebar-collapsed-desktop .toggle-sidebar-button .collapse-text, -.sidebar-collapsed-desktop .toggle-sidebar-button .icon-chevron-double-lg-left { - display: none; -} -.sidebar-collapsed-desktop .toggle-sidebar-button .icon-chevron-double-lg-right { - display: block; - margin: 0; -} -.fly-out-top-item > a { - display: flex; -} -.fly-out-top-item .fly-out-badge { - margin-left: 8px; -} -.fly-out-top-item-name { - flex: 1; -} -.close-nav-button { - display: none; -} - -@media (max-width: 767.98px) { - .close-nav-button { - display: flex; - } - .toggle-sidebar-button { - display: none; - } -} -table.table { +.card { margin-bottom: 16px; } -table.table .dropdown-menu a { - text-decoration: none; -} -table.table .success, -table.table .info { - color: #fff; -} -table.table .success a:not(.btn), -table.table .info a:not(.btn) { - text-decoration: underline; - color: #fff; -} -pre { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; - display: block; - padding: 8px 12px; - margin: 0 0 8px; - font-size: 13px; - word-break: break-all; - word-wrap: break-word; - color: #303030; - background-color: #fafafa; - border: 1px solid #dbdbdb; - border-radius: 2px; -} -.monospace { - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; -} -input::-moz-placeholder, -textarea::-moz-placeholder { +input::-moz-placeholder { color: #868686; opacity: 1; } -input::-ms-input-placeholder, -textarea::-ms-input-placeholder { +input::-ms-input-placeholder { color: #868686; } -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { +input:-ms-input-placeholder { color: #868686; } svg { fill: currentColor; } - -svg.s12 { - width: 12px; - height: 12px; -} - -svg.s16 { - width: 16px; - height: 16px; -} - -svg.s18 { - width: 18px; - height: 18px; -} - -svg.s12 { - vertical-align: -1px; -} - -svg.s16 { - vertical-align: -3px; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -table.code { - width: 100%; - font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; - border: 0; - border-collapse: separate; - margin: 0; - padding: 0; - table-layout: fixed; - border-radius: 0 0 4px 4px; -} -.frame .badge.badge-pill { - position: absolute; - background-color: #428fdc; - color: #fff; - border: #fff 1px solid; - min-height: 16px; - padding: 5px 8px; - border-radius: 12px; -} -.frame .badge.badge-pill { - transform: translate(-50%, -50%); -} -.color-label { - padding: 0 0.5rem; - line-height: 16px; - border-radius: 100px; - color: #fff; -} -.label-link { - display: inline-flex; - vertical-align: text-bottom; -} -.label-link .label { - vertical-align: inherit; - font-size: 12px; -} .login-page .container { max-width: 960px; } @@ -2096,6 +672,25 @@ table.code { border-radius: 0.25rem; padding: 15px; } +.login-page .login-box .login-heading h3, +.login-page .omniauth-container .login-heading h3 { + font-weight: 400; + line-height: 1.5; + margin: 0 0 10px; +} +.login-page .login-box .login-footer, +.login-page .omniauth-container .login-footer { + margin-top: 10px; +} +.login-page .login-box .login-footer p:last-child, +.login-page .omniauth-container .login-footer p:last-child { + margin-bottom: 0; +} +.login-page .login-box a.forgot, +.login-page .omniauth-container a.forgot { + float: right; + padding-top: 6px; +} .login-page .login-box .nav .active a, .login-page .omniauth-container .nav .active a { background: transparent; @@ -2132,22 +727,30 @@ table.code { background: none; margin-bottom: 16px; } - @media (max-width: 991.98px) { .login-page .omniauth-container form { width: 100%; } } -.login-page .omniauth-container .omniauth-btn { - width: 100%; - padding: 8px; -} .login-page .new-session-tabs { display: flex; box-shadow: 0 0 0 1px #dbdbdb; border-top-right-radius: 4px; border-top-left-radius: 4px; } +.login-page .new-session-tabs.custom-provider-tabs { + flex-wrap: wrap; +} +.login-page .new-session-tabs.custom-provider-tabs li { + min-width: 85px; + flex-basis: auto; +} +.login-page .new-session-tabs.custom-provider-tabs li:nth-child(n + 5) { + border-top: 1px solid #dbdbdb; +} +.login-page .new-session-tabs.custom-provider-tabs a { + font-size: 16px; +} .login-page .new-session-tabs li { flex: 1; text-align: center; @@ -2173,14 +776,22 @@ table.code { .login-page .submit-container { margin-top: 16px; } -.login-page input[type='submit'] { +.login-page input[type="submit"] { margin-bottom: 0; + display: block; + width: 100%; } .login-page .devise-errors h2 { margin-top: 0; font-size: 14px; color: #ae1800; } +@media (max-width: 575.98px) { + .login-page .col-md-5.float-right { + float: none !important; + margin-bottom: 45px; + } +} .devise-layout-html { margin: 0; padding: 0; @@ -2213,191 +824,57 @@ table.code { .devise-layout-html body .navless-container { padding: 65px 15px; } - @media (max-width: 575.98px) { .devise-layout-html body .navless-container { padding: 0 15px 65px; } } -.milestones { - padding: 8px; - margin-top: 8px; - border-radius: 4px; - background-color: #dbdbdb; -} -.search { - margin: 0 8px; -} -.search form { - margin: 0; - padding: 4px; - width: 200px; - line-height: 24px; - height: 32px; - border: 0; - border-radius: 4px; -} - -@media (min-width: 1200px) { - .search form { - width: 320px; - } -} -.search .search-input { - border: 0; - font-size: 14px; - padding: 0 20px 0 0; - margin-left: 5px; - line-height: 25px; - width: 98%; - color: #fff; - background: none; -} -.search .search-input-container { - display: flex; - position: relative; -} -.search .search-input-wrap { - width: 100%; -} -.search .search-input-wrap .search-icon, -.search .search-input-wrap .clear-icon { - position: absolute; - right: 5px; - top: 4px; -} -.search .search-input-wrap .search-icon { - -moz-user-select: none; - user-select: none; -} -.search .search-input-wrap .clear-icon { - display: none; -} -.search .search-input-wrap .dropdown { - position: static; -} -.search .search-input-wrap .dropdown-menu { - left: -5px; - max-height: 400px; - overflow: auto; -} -@media (min-width: 1200px) { - .search .search-input-wrap .dropdown-menu { - width: 320px; - } -} -.search .search-input-wrap .dropdown-content { - max-height: 382px; -} -.settings { - border-top: 1px solid #dbdbdb; -} -.settings:first-of-type { - margin-top: 10px; - border: 0; -} -.settings + div .settings:first-of-type { - margin-top: 0; - border-top: 1px solid #dbdbdb; -} -.avatar, .avatar-container { - float: left; - margin-right: 16px; - border-radius: 50%; - border: 1px solid #f5f5f5; -} -.s16.avatar, .s16.avatar-container { - width: 16px; - height: 16px; - margin-right: 8px; +.gl-border-solid { + border-style: solid; } -.s18.avatar, .s18.avatar-container { - width: 18px; - height: 18px; - margin-right: 8px; -} -.s40.avatar, .s40.avatar-container { - width: 40px; - height: 40px; - margin-right: 8px; +.gl-border-gray-100 { + border-color: #dbdbdb; } -.avatar { - transition-property: none; - width: 40px; - height: 40px; - padding: 0; - background: #fdfdfd; - overflow: hidden; - border-color: rgba(0, 0, 0, 0.1); +.gl-border-1 { + border-width: 1px; } -.avatar.center { - font-size: 14px; - line-height: 1.8em; - text-align: center; +.gl-rounded-base { + border-radius: 0.25rem; } -.avatar.avatar-tile { - border-radius: 0; - border: 0; +.gl-text-green-600 { + color: #217645; } -.avatar-container { - overflow: hidden; - display: flex; +.gl-text-red-500 { + color: #dd2b0e; } -.avatar-container a { - width: 100%; - height: 100%; +.gl-display-flex { display: flex; - text-decoration: none; -} -.avatar-container .avatar { - border-radius: 0; - border: 0; - height: auto; - width: 100%; - margin: 0; - align-self: center; -} -.avatar-container.s40 { - min-width: 40px; - min-height: 40px; -} -.rect-avatar { - border-radius: 2px; } -.rect-avatar.s16 { - border-radius: 2px; +.gl-align-items-center { + align-items: center; } -.rect-avatar.s18 { - border-radius: 2px; +.gl-p-2 { + padding: 0.25rem; } -.rect-avatar.s40 { - border-radius: 4px; +.gl-p-4 { + padding: 0.75rem; } -.tab-width-8 { - -moz-tab-size: 8; - tab-size: 8; +.gl-mt-2 { + margin-top: 0.25rem; } -.gl-sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - white-space: nowrap; - width: 1px; +.gl-mb-2 { + margin-bottom: 0.25rem; } -.gl-mt-5 { - margin-top: 1rem; +.gl-mb-3 { + margin-bottom: 0.5rem; } -.gl-ml-3 { - margin-left: 0.5rem; +.gl-mb-5 { + margin-bottom: 1rem; } -.content-wrapper > .alert-wrapper, -#content-body, .modal-dialog { - display: block; +.gl-text-left { + text-align: left; } -@import 'cloaking'; + +@import "cloaking"; @include cloak-startup-scss(none); diff --git a/app/controllers/groups/boards_controller.rb b/app/controllers/groups/boards_controller.rb index e1f09d73739..a6235d8fc04 100644 --- a/app/controllers/groups/boards_controller.rb +++ b/app/controllers/groups/boards_controller.rb @@ -8,6 +8,7 @@ class Groups::BoardsController < Groups::ApplicationController before_action :assign_endpoint_vars before_action do push_frontend_feature_flag(:graphql_board_lists, group, default_enabled: false) + push_frontend_feature_flag(:board_multi_select, group, default_enabled: :yaml) push_frontend_feature_flag(:swimlanes_buffered_rendering, group, default_enabled: :yaml) end diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb index 9a3e9437426..ee8bacbac61 100644 --- a/app/controllers/projects/boards_controller.rb +++ b/app/controllers/projects/boards_controller.rb @@ -9,6 +9,7 @@ class Projects::BoardsController < Projects::ApplicationController before_action do push_frontend_feature_flag(:swimlanes_buffered_rendering, project, default_enabled: :yaml) push_frontend_feature_flag(:graphql_board_lists, project, default_enabled: :yaml) + push_frontend_feature_flag(:board_multi_select, project, default_enabled: :yaml) end feature_category :boards diff --git a/app/models/bulk_imports/export.rb b/app/models/bulk_imports/export.rb index 59ca4dbfec6..371b58dea03 100644 --- a/app/models/bulk_imports/export.rb +++ b/app/models/bulk_imports/export.rb @@ -4,6 +4,10 @@ module BulkImports class Export < ApplicationRecord include Gitlab::Utils::StrongMemoize + STARTED = 0 + FINISHED = 1 + FAILED = -1 + self.table_name = 'bulk_import_exports' belongs_to :project, optional: true @@ -18,9 +22,9 @@ module BulkImports validate :portable_relation? state_machine :status, initial: :started do - state :started, value: 0 - state :finished, value: 1 - state :failed, value: -1 + state :started, value: STARTED + state :finished, value: FINISHED + state :failed, value: FAILED event :start do transition any => :started diff --git a/app/models/bulk_imports/export_status.rb b/app/models/bulk_imports/export_status.rb new file mode 100644 index 00000000000..72ece4e8fc0 --- /dev/null +++ b/app/models/bulk_imports/export_status.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module BulkImports + class ExportStatus + include Gitlab::Utils::StrongMemoize + + def initialize(pipeline_tracker, relation) + @pipeline_tracker = pipeline_tracker + @relation = relation + @entity = @pipeline_tracker.entity + @configuration = @entity.bulk_import.configuration + @client = Clients::Http.new(uri: @configuration.url, token: @configuration.access_token) + end + + def started? + export_status['status'] == Export::STARTED + end + + def failed? + export_status['status'] == Export::FAILED + end + + def error + export_status['error'] + end + + private + + attr_reader :client, :entity, :relation + + def export_status + strong_memoize(:export_status) do + fetch_export_status.find { |item| item['relation'] == relation } + end + rescue StandardError => e + { 'status' => Export::FAILED, 'error' => e.message } + end + + def fetch_export_status + client.get(status_endpoint).parsed_response + end + + def status_endpoint + "/groups/#{entity.encoded_source_full_path}/export_relations/status" + end + end +end diff --git a/app/models/bulk_imports/file_transfer/base_config.rb b/app/models/bulk_imports/file_transfer/base_config.rb index bb04e84ad72..7396f9d3655 100644 --- a/app/models/bulk_imports/file_transfer/base_config.rb +++ b/app/models/bulk_imports/file_transfer/base_config.rb @@ -13,6 +13,14 @@ module BulkImports attributes_finder.find_root(portable_class_sym) end + def top_relation_tree(relation) + portable_relations_tree[relation.to_s] + end + + def relation_excluded_keys(relation) + attributes_finder.find_excluded_keys(relation) + end + def export_path strong_memoize(:export_path) do relative_path = File.join(base_export_path, SecureRandom.hex) @@ -47,6 +55,10 @@ module BulkImports @portable_class_sym ||= portable_class.to_s.demodulize.underscore.to_sym end + def portable_relations_tree + @portable_relations_tree ||= attributes_finder.find_relations_tree(portable_class_sym).deep_stringify_keys + end + def import_export_yaml raise NotImplementedError end diff --git a/app/services/bulk_imports/file_download_service.rb b/app/services/bulk_imports/file_download_service.rb index 6d338268440..1edd0695efd 100644 --- a/app/services/bulk_imports/file_download_service.rb +++ b/app/services/bulk_imports/file_download_service.rb @@ -3,7 +3,7 @@ module BulkImports class FileDownloadService FILE_SIZE_LIMIT = 5.gigabytes - ALLOWED_CONTENT_TYPES = ['application/octet-stream'].freeze + ALLOWED_CONTENT_TYPES = %w(application/gzip application/octet-stream).freeze ServiceError = Class.new(StandardError) diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml index b28cd47efcc..14d0d73e2b7 100644 --- a/app/views/layouts/_head.html.haml +++ b/app/views/layouts/_head.html.haml @@ -36,7 +36,7 @@ = favicon_link_tag favicon, id: 'favicon', data: { original_href: favicon }, type: 'image/png' - = render 'layouts/startup_css' + = render 'layouts/startup_css', { startup_filename: local_assigns.fetch(:startup_filename, nil) } - if user_application_theme == 'gl-dark' = stylesheet_link_tag_defer "application_dark" = yield :page_specific_styles diff --git a/app/views/layouts/_startup_css.haml b/app/views/layouts/_startup_css.haml index 7d3cfe28007..67c871b95f5 100644 --- a/app/views/layouts/_startup_css.haml +++ b/app/views/layouts/_startup_css.haml @@ -1,4 +1,5 @@ -- startup_filename = current_path?("sessions#new") ? 'signin' : user_application_theme == 'gl-dark' ? 'dark' : 'general' +- startup_filename_default = user_application_theme == 'gl-dark' ? 'dark' : 'general' +- startup_filename = local_assigns.fetch(:startup_filename, nil) || startup_filename_default %style = Rails.application.assets_manifest.find_sources("themes/#{user_application_theme_css_filename}.css").first.to_s.html_safe if user_application_theme_css_filename diff --git a/app/views/layouts/devise.html.haml b/app/views/layouts/devise.html.haml index ef61a04c288..ae7c160c060 100644 --- a/app/views/layouts/devise.html.haml +++ b/app/views/layouts/devise.html.haml @@ -1,6 +1,6 @@ !!! 5 %html.devise-layout-html{ class: system_message_class } - = render "layouts/head" + = render "layouts/head", { startup_filename: 'signin' } %body.ui-indigo.login-page.application.navless{ class: "#{client_class_list}", data: { page: body_data_page, qa_selector: 'login_page' } } = header_message = render "layouts/init_client_detection_flags" diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml index f3e9aa09306..e395a0bbed8 100644 --- a/app/workers/all_queues.yml +++ b/app/workers/all_queues.yml @@ -1087,15 +1087,6 @@ :weight: 2 :idempotent: true :tags: [] -- :name: incident_management:incident_management_process_prometheus_alert - :worker_name: IncidentManagement::ProcessPrometheusAlertWorker - :feature_category: :incident_management - :has_external_dependencies: - :urgency: :low - :resource_boundary: :cpu - :weight: 2 - :idempotent: - :tags: [] - :name: jira_connect:jira_connect_sync_branch :worker_name: JiraConnect::SyncBranchWorker :feature_category: :integrations diff --git a/app/workers/bulk_imports/pipeline_worker.rb b/app/workers/bulk_imports/pipeline_worker.rb index 256301bf097..2547b6bcecb 100644 --- a/app/workers/bulk_imports/pipeline_worker.rb +++ b/app/workers/bulk_imports/pipeline_worker.rb @@ -4,6 +4,8 @@ module BulkImports class PipelineWorker # rubocop:disable Scalability/IdempotentWorker include ApplicationWorker + NDJSON_PIPELINE_PERFORM_DELAY = 1.minute + feature_category :importers tags :exclude_from_kubernetes @@ -40,6 +42,15 @@ module BulkImports private def run(pipeline_tracker) + if ndjson_pipeline?(pipeline_tracker) + status = ExportStatus.new(pipeline_tracker, pipeline_tracker.pipeline_class::RELATION) + + raise(Pipeline::ExpiredError, 'Pipeline timeout') if job_timeout?(pipeline_tracker) + raise(Pipeline::FailedError, status.error) if status.failed? + + return reenqueue(pipeline_tracker) if status.started? + end + pipeline_tracker.update!(status_event: 'start', jid: jid) context = ::BulkImports::Pipeline::Context.new(pipeline_tracker) @@ -48,7 +59,7 @@ module BulkImports pipeline_tracker.finish! rescue StandardError => e - pipeline_tracker.fail_op! + pipeline_tracker.update!(status_event: 'fail_op', jid: jid) logger.error( worker: self.class.name, @@ -67,5 +78,17 @@ module BulkImports def logger @logger ||= Gitlab::Import::Logger.build end + + def ndjson_pipeline?(pipeline_tracker) + pipeline_tracker.pipeline_class.ndjson_pipeline? + end + + def job_timeout?(pipeline_tracker) + (Time.zone.now - pipeline_tracker.entity.created_at) > Pipeline::NDJSON_EXPORT_TIMEOUT + end + + def reenqueue(pipeline_tracker) + self.class.perform_in(NDJSON_PIPELINE_PERFORM_DELAY, pipeline_tracker.id, pipeline_tracker.stage, pipeline_tracker.entity.id) + end end end diff --git a/app/workers/incident_management/process_prometheus_alert_worker.rb b/app/workers/incident_management/process_prometheus_alert_worker.rb deleted file mode 100644 index 7b5c6fd9001..00000000000 --- a/app/workers/incident_management/process_prometheus_alert_worker.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -module IncidentManagement - class ProcessPrometheusAlertWorker # rubocop:disable Scalability/IdempotentWorker - include ApplicationWorker - - sidekiq_options retry: 3 - - queue_namespace :incident_management - feature_category :incident_management - worker_resource_boundary :cpu - - def perform(project_id, alert_hash) - # no-op - # - # This worker is not scheduled anymore since - # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35943 - # and will be removed completely via - # https://gitlab.com/gitlab-org/gitlab/-/issues/227146 - # in 14.0. - end - end -end |