mediawiki-skins-Vector/resources/common/components/MenuDropdownCheckbox.less
bwang 9546bd30c0 Prevent dropdown arrow from flipping in modern Vector
Bug: T314669
Change-Id: Icaae181cac1b399d9c0e90c55c7ee36982b638d3
2022-08-16 16:13:55 -05:00

91 lines
1.8 KiB
Plaintext

@import '../variables.less';
/**
* Common styles responsible for hiding/showing the Vector dropdown.
*/
/**
* Vector Dropdown. Contains the dropdown label, checkbox, and
* dropdown content.
*/
.vector-menu-dropdown {
position: relative;
// Dropdown menu container. Hidden by default until checkbox is checked.
.vector-menu-content {
position: absolute;
top: 100%;
left: -@border-width-base;
opacity: 0;
height: 0;
visibility: hidden;
overflow: hidden;
// The menu content should not be narrower than the menu button.
min-width: 100%;
margin: 0;
padding: 0;
z-index: @z-index-menu;
}
// Dropdown <ul> element.
.vector-menu-content-list {
list-style: none;
}
// dropdown list items.
.mw-list-item {
padding: 0;
margin: 0;
a {
// displays all links in a single column.
display: block;
white-space: nowrap;
cursor: pointer;
}
}
.selected a,
.selected a:visited {
color: @color-link-selected;
text-decoration: none;
}
}
/**
* Invisible checkbox covering the dropdown menu handle.
*/
.vector-menu-checkbox {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
z-index: @z-index-menu-checkbox;
opacity: 0;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
// Hide the checkbox completely in browsers that don't support :checked
display: none;
// Hide and show menu content based off checked status.
&:checked ~ .vector-menu-content {
opacity: 1;
visibility: visible;
height: auto;
}
:not( :checked ) > & {
// When the browser supports :checked, display it
display: block;
}
// Add focus state to menu dropdown buttons (i.e. #p-variants, #p-cactions)
&:focus + .vector-menu-heading {
// Simulate browser focus ring
outline: dotted 1px; // Firefox style
outline: auto -webkit-focus-ring-color; // Webkit style
}
}