debian-mirror-gitlab/app/assets/stylesheets/framework/super_sidebar.scss
2023-07-09 08:55:56 +05:30

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;
}
}