@mixin active-toggle { background-color: $gray-50 !important; mix-blend-mode: multiply; .gl-dark & { mix-blend-mode: screen; } } $super-sidebar-transition-duration: $gl-transition-duration-medium; $super-sidebar-transition-hint-duration: $super-sidebar-transition-duration / 4; @mixin notification-dot($color, $size, $top, $left) { background-color: $color; border: 2px solid $gray-10; // Same as the sidebar's background color. position: absolute; height: $size; width: $size; top: $top; left: $left; border-radius: 50%; transition: background-color 100ms linear, border-color 100ms linear; } .super-sidebar { display: flex; flex-direction: column; position: fixed; top: calc(#{$header-height} + #{$calc-application-bars-height}); bottom: $calc-application-footer-height; left: 0; background-color: var(--gray-10, $gray-10); border-right: 1px solid $t-gray-a-08; transform: translate3d(0, 0, 0); width: $super-sidebar-width; z-index: $super-sidebar-z-index; &.super-sidebar-loading { transform: translate3d(-100%, 0, 0); transition: none; @include media-breakpoint-up(xl) { transform: translate3d(0, 0, 0); } } @media (prefers-reduced-motion: no-preference) { transition: transform $super-sidebar-transition-duration; } .user-bar { background-color: $t-gray-a-04; .tanuki-logo { @include gl-vertical-align-middle; } .user-bar-item, .tanuki-logo-container { @include gl-rounded-base; @include gl-p-2; @include gl-bg-transparent; @include gl-border-none; &:focus, &:active { @include gl-focus; } } .user-bar-item { &:hover, &:focus, &:active { @include active-toggle; } } $light-mode-btn-bg: #e0dfe5; $dark-mode-btn-bg: #53515b; .tanuki-logo-container { &:hover, &:focus, &:active { background-color: $light-mode-btn-bg; .gl-dark & { background-color: $dark-mode-btn-bg; } } } } .counter .gl-icon, .item-icon { color: var(--gray-600, $gray-500); } .counter:hover, .counter:focus, .counter[aria-expanded='true'] { background-color: $gray-50; border-color: transparent; mix-blend-mode: multiply; .gl-dark & { mix-blend-mode: screen; } .gl-icon { color: var(--gray-700, $gray-700); } } .counter:hover, .counter[aria-expanded='true'] { box-shadow: none; } .context-switcher .gl-new-dropdown-custom-toggle { width: 100%; } .context-switcher .gl-new-dropdown-panel { overflow-y: auto; } .context-switcher-search-box input { @include gl-font-sm; } .gl-new-dropdown-custom-toggle .context-switcher-toggle { &[aria-expanded='true'] { background-color: $t-gray-a-08; } &:focus { @include gl-focus($inset: true); } } .btn-with-notification { position: relative; .notification-dot-info { @include notification-dot($blue-500, 9px, 5px, 22px); } .notification-dot-warning { @include notification-dot($orange-300, 12px, 1px, 19px); } &:hover, &:focus { .notification { border-color: $gray-50; // Same as the button's hover background color. } } } .gl-new-dropdown-toggle[aria-expanded='true'] { @include active-toggle; } .gl-new-dropdown-custom-toggle { .btn-with-notification { mix-blend-mode: unset; // Our tertiary buttons otherwise use another mix-blend mode, making border-color semi-transparent. } [aria-expanded='true'] { @include active-toggle; } } .nav-item-link { button, .draggable-icon { opacity: 0; } .draggable-icon { cursor: grab; } &:hover { button, .draggable-icon { opacity: 1; } } &:focus button, button:focus { opacity: 1; } } #trial-status-sidebar-widget:hover { text-decoration: none; @include gl-text-contrast-light; } } .super-sidebar-skip-to { z-index: $super-sidebar-z-index; } .super-sidebar-overlay { display: none; } .super-sidebar-peek, .super-sidebar-peek-hint { @include gl-shadow; border-right: 0; } .super-sidebar-peek-hint { @media (prefers-reduced-motion: no-preference) { transition: transform $super-sidebar-transition-hint-duration ease-out; } } .page-with-super-sidebar { padding-left: 0; @media (prefers-reduced-motion: no-preference) { transition: padding-left $super-sidebar-transition-duration; } &:not(.page-with-super-sidebar-collapsed) { .super-sidebar-overlay { display: block; position: fixed; top: 0; bottom: 0; left: 0; right: 0; background-color: $black-transparent; z-index: $super-sidebar-z-index - 1; @include media-breakpoint-up(md) { display: none; } } } @include media-breakpoint-up(xl) { padding-left: $super-sidebar-width; .super-sidebar-toggle { display: none; } } } .page-with-super-sidebar-collapsed { .super-sidebar { transform: translate3d(-100%, 0, 0); &.super-sidebar-peek { transform: translate3d(0, 0, 0); } &.super-sidebar-peek-hint { transform: translate3d(calc(#{$gl-spacing-scale-3} - 100%), 0, 0); } } @include media-breakpoint-up(xl) { padding-left: 0; .super-sidebar-toggle { display: block; } } } .gl-dark { .super-sidebar { .gl-new-dropdown-custom-toggle { .btn-with-notification.btn-with-notification { mix-blend-mode: unset; } } } } .global-search-modal { padding: 3rem 0.5rem 0; &.gl-modal .modal-dialog { align-items: flex-start; } @include gl-media-breakpoint-up(sm) { padding: 5rem 1rem 0; } // This is a temporary workaround! // the button in GitLab UI Search components need to be updated to not be the small size // see in Figma: https://www.figma.com/file/qEddyqCrI7kPSBjGmwkZzQ/Component-library?node-id=43905%3A45540 .gl-search-box-by-type-clear.btn-sm { padding: 0.5rem !important; } .is-searching { .in-search-scope-help { position: absolute; top: 0.625rem; right: 2.5rem; } } .gl-search-box-by-type-input-borderless { @include gl-rounded-base; } .global-search-results { max-height: 30rem; } }