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