Putting icon on link label baseline as good as possible cross-browser and unify code with Vector skin's code. With one improvement, putting icon in `:before` selector in order to be able to specifically change icon independent from link, which opens up `opacity` or state changes. Also cleaning up CSS by - reducing specificity - changing to `stylelint-disable-line` only on specific selectors - removing initial value `transparent` Bug: T207075 Change-Id: Ib5d446434263441eb85aa2e96a0e4dbde1034c1c Depends-on: I92acb9851a3c0acdbc40a4a4528a91c7332c9293
72 lines
2.5 KiB
Plaintext
72 lines
2.5 KiB
Plaintext
/* stylelint-disable indentation, selector-max-id */
|
|
@import 'mediawiki.mixins';
|
|
|
|
// Similar to from Vector's 'personalMenu.less' file.
|
|
@font-size-browser: 16; // Assumed browser default of `16px`
|
|
// ULS personal tool menu
|
|
@background-position-menu-uls-icon: left ( 1 / @font-size-browser / @font-size-menu-uls );
|
|
@background-size-menu-uls-icon: 16 / @font-size-browser / @font-size-menu-uls;
|
|
@padding-top-menu-uls-icon: 4 / @font-size-browser / @font-size-menu-uls;
|
|
@padding-left-menu-uls-icon: 20 / @font-size-browser / @font-size-menu-uls;
|
|
@font-size-menu-uls: 0.75em;
|
|
|
|
/*
|
|
* The trigger can be placed in the personal toolbar near the username
|
|
* or near the interlanguage links.
|
|
*/
|
|
|
|
/*
|
|
* A hack to load the icon before the rest of the module is lazy-loaded.
|
|
* Copied from jquery.uls.css with the path changed.
|
|
*/
|
|
.uls-trigger {
|
|
background: no-repeat left center;
|
|
.background-image-svg( '../../lib/jquery.uls/images/language.svg', '../../lib/jquery.uls/images/language.png' );
|
|
// Let the SVG image fit without cropping or stretch
|
|
background-size: contain;
|
|
padding-left: 24px;
|
|
}
|
|
|
|
#pt-uls {
|
|
padding-top: 0 !important; // stylelint-disable-line declaration-no-important
|
|
|
|
.uls-trigger {
|
|
background-image: none;
|
|
// Same values as Vector's `#p-personal li`.
|
|
display: inline-block;
|
|
padding-top: 0.5em !important; // stylelint-disable-line declaration-no-important
|
|
padding-left: 0;
|
|
|
|
// Putting the icon in before in order to apply `opacity`.
|
|
&:before {
|
|
content: '';
|
|
.background-image-svg( '../../lib/jquery.uls/images/language.svg', '../../lib/jquery.uls/images/language.png' );
|
|
// Same values as Vector's `#pt-userpage a`.
|
|
background-position: @background-position-menu-uls-icon;
|
|
// Support Edge: Can't be `contain`, see T207075.
|
|
background-repeat: no-repeat;
|
|
background-size: @background-size-menu-uls-icon @background-size-menu-uls-icon;
|
|
padding-top: @padding-top-menu-uls-icon;
|
|
padding-left: @padding-left-menu-uls-icon;
|
|
// Equals `#555`, closest to `#54595d` on background-color `#fff`.
|
|
opacity: 0.67;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Opera for some inexplicable reason confuses right and left padding with */
|
|
/* RTL text direction here (bug T47142). x:-o-prefocus won't match anything, */
|
|
/* but will make other browsers ignore this rule. */
|
|
/* stylelint-disable selector-type-no-unknown */
|
|
x:-o-prefocus,
|
|
body.rtl li#pt-uls {
|
|
/* @noflip */
|
|
direction: ltr;
|
|
}
|
|
/* stylelint-enable selector-type-no-unknown */
|
|
|
|
/* Don't show it to users who disabled JS */
|
|
.client-nojs #pt-uls {
|
|
display: none;
|
|
}
|