src/components/base/drawer/drawer.scss (121 lines of code) (raw):
$gl-drawer-width: 400px;
$gl-sidebar-width: 290px;
$gl-drawer-scrim-gradient: linear-gradient(
to bottom,
var(--gl-color-alpha-0),
var(--gl-background-color-overlap)
);
.gl-drawer {
@apply gl-bg-overlap;
right: 0;
@apply gl-transition-all;
position: fixed;
@apply gl-h-full;
@apply gl-w-full;
@apply gl-overflow-y-auto;
@apply gl-shadow-lg;
@apply gl-text-base;
@apply gl-leading-normal;
@apply gl-flex;
@apply gl-flex-col;
.gl-drawer-header-sticky {
@apply gl-bg-overlap;
top: 0;
position: sticky;
}
}
.gl-drawer-default {
@include media-breakpoint-up(md) {
width: $gl-drawer-width;
}
.gl-drawer-header,
.gl-drawer-body > * {
@apply gl-p-5;
}
}
.gl-drawer-sidebar {
@include media-breakpoint-up(md) {
width: $gl-sidebar-width;
}
.gl-drawer-header,
.gl-drawer-body > * {
@apply gl-py-5;
}
.gl-drawer-body > * {
@apply gl-border-b;
@apply gl-mx-5;
&:last-child {
@apply gl-border-none;
}
}
.gl-drawer-header {
@apply gl-px-5;
}
}
.gl-drawer-footer {
@apply gl-bg-overlap;
@apply gl-border-t;
@apply gl-p-5;
}
.gl-drawer-body-scrim-on-footer {
&::before {
background: $gl-drawer-scrim-gradient;
top: -$gl-border-size-1;
@apply -gl-translate-y-full;
content: '';
left: 0;
position: absolute;
@apply gl-pointer-events-none;
@apply gl-w-full;
@apply gl-h-7;
}
}
.gl-drawer-footer-sticky {
bottom: 0;
position: sticky;
}
.gl-drawer-header {
@apply gl-border-b;
}
.gl-drawer-title {
@apply gl-text-heading;
@apply gl-flex;
@apply gl-items-center;
@apply gl-justify-between;
svg {
@apply gl-w-5;
@apply gl-h-5;
@apply gl-align-middle;
}
}
.gl-drawer-close-button {
@apply gl-self-start;
@apply gl-bg-transparent;
@apply gl-border-none;
}
.gl-drawer-body {
@apply gl-grow;
// prevent safari bug where box shadow is visible
// above the drawer when hovering interactive elements
// see https://gitlab.com/gitlab-org/gitlab/-/issues/366558
background-color: inherit;
}
.gl-drawer-body-scrim {
&::after {
background: $gl-drawer-scrim-gradient;
content: '';
bottom: 0;
@apply gl-pointer-events-none;
@apply gl-w-full;
position: fixed;
@apply gl-h-7;
}
}
.gl-drawer-enter-to {
@apply gl-translate-x-0;
}
.gl-drawer-enter,
.gl-drawer-leave-to {
@apply gl-translate-x-full;
}
.gl-drawer-enter-active,
.gl-drawer-leave-active {
@apply gl-transition-all;
}