mediawiki-skins-Vector/resources/skins.vector.styles/components/TabWatchstarLink.less
Jan Drewniak 3c0559a71d Refactor chevron across components + separate watchstar
Consolidates the CSS responsible for styling chevrons into one
implementation. This removes the need for custom padding and
background positioning for the following components:

- "more" menu
- user menu
- watchstar
- language button
- languge button in sticky header

Instead of absolutely positioning the chevron on these components,
the parent label element is set to `display: inline-flex` so that
the chevron is vertically aligned and given enough space by default.

The watchstar, although not a chevron, is also given the
`display: inline-flex` treatment so that it can be aligned with
other elements in the toolbar.

This new implementation requires splitting the watchstar
component into legacy and modern due to a quirk in Firefox that
causes a bug with the watchstar in legacy Vector.

NOTE: This change causes visual changes due to the difference in
centering the chevrons via flexbox vs percentage positions.

Bug: T308344, T310838
Change-Id: Ie9e0fce1366cd25a5899fee49770de4a09424fe2
2022-07-21 10:14:21 -04:00

62 lines
1.6 KiB
Plaintext

@import '../../common/variables.less';
@import 'mediawiki.mixins.less';
@import 'mediawiki.mixins.rotation.less';
/* Watch/Unwatch Icon Styling */
/* Only use icon if the menu item is not collapsed into the "More" dropdown
* (in which case it is inside `.vector-menu-dropdown` instead of `.vector-menu-tabs`). */
.vector-menu-tabs {
@size-watchlink-icon: unit( 16 / @font-size-tabs / @font-size-browser, em );
.mw-watchlink.icon a {
overflow: hidden;
text-indent: -99999px;
color: transparent;
&:before {
content: '';
display: block;
width: @size-watchlink-icon;
height: @size-watchlink-icon;
}
}
#ca-unwatch.icon a:before {
background-image: url( ../common/images/unwatch-icon.svg );
}
#ca-unwatch.mw-watchlink-temp.icon a:before {
background-image: url( ../common/images/unwatch-icon.svg );
}
#ca-watch.icon a:before {
background-image: url( ../common/images/unwatch-icon.svg );
}
#ca-unwatch.icon a:hover:before,
#ca-unwatch.icon a:focus:before {
background-image: url( ../common/images/unwatch-icon.svg );
}
#ca-unwatch.mw-watchlink-temp.icon a:hover:before,
#ca-unwatch.mw-watchlink-temp.icon a:focus:before {
background-image: url( ../common/images/unwatch-icon.svg );
}
#ca-watch.icon a:hover:before,
#ca-watch.icon a:focus:before {
background-image: url( ../common/images/watch-icon-hl.svg );
}
// Loading watchstar link class.
#ca-unwatch.icon .loading:before,
#ca-watch.icon .loading:before {
.rotation( 700ms );
/* Suppress the hilarious rotating focus outline on Firefox */
outline: 0;
cursor: default;
pointer-events: none;
transform-origin: 50% 50%;
}
}