mediawiki-skins-MinervaNeue/includes/Skins/ToggleList/DropdownList.less

47 lines
1.8 KiB
Plaintext

// A DropdownList is a ToggleList that extends downward.
.toggle-list__list--drop-down {
background: @background-color-base;
// The menu appears over the content and occupies no room within it.
position: absolute;
// If max-height is set and the height exceeds it, add a vertical scrollbar.
overflow-y: auto;
// The menu floats over content but below overlays.
z-index: @z-index-drawer;
// Two box-shadows: first creates a drop-shadow, second acts as a subtle border.
box-shadow: 0 5px 17px 0 rgba( 0, 0, 0, 0.24 ), 0 0 1px @border-color-base;
visibility: hidden;
opacity: 0;
transform: translateY( -8px );
// When cursor is pointer and -webkit-tap-highlight-color is set, the color does not seem to
// transition. Clear it.
-webkit-tap-highlight-color: transparent;
.toggle-list-item:hover {
// Make the app feel like an app, not a JPEG. When hovering over a menu item, add a little
// interactivity.
background: @background-color-interactive;
}
}
// Without the minerva-animations-ready class, DropdownList can appear and
// perform its exit animation when the page loads in chrome (and possibly
// others).
// https://bugs.chromium.org/p/chromium/issues/detail?id=332189
.minerva-animations-ready {
.toggle-list__list--drop-down {
// Animate menu visibility, opacity, and translation changes in and out. Visibility duration
// cannot be animated initially as it causes a flash on page load in Chromium due to
// https://bugs.chromium.org/p/chromium/issues/detail?id=332189.
transition: opacity @transition-duration-base ease-in-out, -webkit-tap-highlight-color 0s ease-in-out, transform @transition-duration-base ease-in-out, visibility @transition-duration-base ease-in-out;
}
}
.toggle-list__checkbox:checked ~ .toggle-list__list--drop-down {
transform: translateY( 0 );
// Reveal the list when checked.
visibility: visible;
opacity: 1;
}