331 lines
6.5 KiB
SCSS
331 lines
6.5 KiB
SCSS
@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-skip-to {
|
|
top: calc(#{$header-height} + #{$calc-application-bars-height});
|
|
width: calc(#{$super-sidebar-width} - #{$gl-spacing-scale-5});
|
|
z-index: $super-sidebar-skip-to-z-index;
|
|
}
|
|
|
|
.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;
|
|
}
|
|
}
|
|
|
|
&:hover,
|
|
&:focus-within {
|
|
.nav-item-badge {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
&:focus button,
|
|
button:focus {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
#trial-status-sidebar-widget:hover {
|
|
text-decoration: none;
|
|
@include gl-text-contrast-light;
|
|
}
|
|
}
|
|
|
|
.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;
|
|
}
|
|
}
|