mediawiki-skins-Vector/components/tabs.less
Volker E e2c9a585e4 Bring menu tab appearance closer to standard widgets
Bringing appearance and behaviour closer to standard widget like
DropdownWidget:
- Amending color to be (closest) aligned to WikimediaUI color
  palette, but switch normal and `:hover`/`:focus` state in order not
  to be too disruptive of a change and align with rest of Vector tabs,
- removing obsolete JS functionality as IE 6 as only major browser
  affected does receive the menu items as tabs nonetheless and replacing
  with simple CSS selector,
- removing unnecessary and obsolete images and
- Lessifying selector

Bug: T153043
Change-Id: Ia15480162bb8f923d0e9b6e42ca90c2c880978de
2017-10-19 23:24:15 +00:00

283 lines
5.5 KiB
Plaintext

/**
* Styling for namespace tabs (page, discussion) and views (read, edit, view history, watch and other actions)
*/
/* Navigation Labels */
div.vectorTabs h3 {
display: none;
}
/* Namespaces and Views */
div.vectorTabs {
/* @noflip */
float: left;
height: 2.5em;
.background-image('images/tab-break.png');
background-position: bottom left;
background-repeat: no-repeat;
padding-left: 1px;
.vector-nav-directionality & {
float: left;
}
ul {
/* @noflip */
float: left;
height: 100%;
list-style-type: none;
list-style-image: none;
margin: 0;
padding: 0;
.background-image('images/tab-break.png');
background-position: right bottom;
background-repeat: no-repeat;
.vector-nav-directionality & {
float: left;
}
li {
/* @noflip */
float: left;
line-height: 1.125em;
/* For IE6, overridden later to display:block by modern browsers */
display: inline-block;
height: 100%;
margin: 0;
padding: 0;
.background-image('images/tab-normal-fade.png');
background-position: bottom left;
background-repeat: repeat-x;
white-space: nowrap;
.vector-nav-directionality & {
float: left;
}
}
/* IGNORED BY IE6 which doesn't support child selector */
> li {
display: block;
}
}
li {
&.new {
a,
a:visited {
color: #a55858;
}
}
&.selected {
.background-image('images/tab-current-fade.png');
a,
a:visited {
color: #222;
text-decoration: none;
}
}
&.icon {
a {
background-position: bottom right;
background-repeat: no-repeat;
}
}
a {
/* For IE6, overridden later to display:block by modern browsers */
display: inline-block;
height: 1.9em;
padding-left: 0.5em;
padding-right: 0.5em;
color: @menu-link-color;
cursor: pointer;
font-size: 0.8em;
}
/* Ignored by IE6 which doesn't support child selector */
> a {
display: block;
}
}
span {
display: inline-block;
.background-image('images/tab-break.png');
background-position: bottom right;
background-repeat: no-repeat;
height: 100%;
a {
/* For IE6, overridden later to display:block by modern browsers */
display: inline-block;
padding-top: 1.25em;
}
/* Ignored by IE6 which doesn't support child selector */
> a {
/* @noflip */
float: left;
display: block;
.vector-nav-directionality & {
float: left;
}
}
}
}
/* Variants and Actions */
div.vectorMenu {
/* @noflip */
direction: ltr;
/* @noflip */
float: left;
cursor: pointer;
position: relative;
line-height: 1.125em;
.vector-nav-directionality & {
direction: ltr;
float: left;
}
}
div#mw-head div.vectorMenu h3 {
/* @noflip */
float: left;
.background-image('images/tab-break.png');
background-repeat: no-repeat;
background-position: bottom right;
font-size: 1em;
height: 2.5em;
// `padding-right` >= `1px` effectively moves the "background border" outside of the element to act like a real
// border. It is necessary for `div.vectorMenu div.menu` dropdown to align well.
padding-right: 0.5em; // equals `8px` as visually harmonically with `padding-left` in `div.vectorMenu h3 span`
margin-right: -1px;
.vector-nav-directionality & {
float: left;
}
}
div.vectorMenu h3 {
span {
display: block;
font-size: 0.8em;
padding-left: 0.7em;
padding-top: 1.25em;
padding-right: 16px;
font-weight: normal;
color: @content-font-color;
.background-image-svg('images/arrow-down.svg', 'images/arrow-down.png');
background-position: 100% 87%;
background-repeat: no-repeat;
opacity: 0.85; // equals `#434343` on `#fff` background, closest to `#444`
}
&:hover span,
&:focus span {
opacity: 1;
}
}
div.vectorMenu div.menu {
// Match the width of the dropdown "heading" (the tab)
min-width: 100%;
position: absolute;
top: 2.5em;
left: -1px;
background-color: @body-background-color;
border: 1px solid #a2a9b1;
border-top-width: 0;
clear: both;
box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
text-align: left;
display: none;
// Menus must overlap indicators (z-index: 1) and VisualEditor toolbar (z-index: 2)
z-index: 2;
}
/* Enable forcing showing of the menu for accessibility */
div.vectorMenu:hover div.menu,
div.vectorMenu.menuForceShow div.menu {
display: block;
}
div.vectorMenu ul {
list-style-type: none;
list-style-image: none;
padding: 0;
margin: 0;
text-align: left;
}
// stylelint-disable selector-no-vendor-prefix, selector-type-no-unknown
/* Fixes old versions of FireFox */
div.vectorMenu ul,
x:-moz-any-link {
min-width: 5em;
}
/* Returns things back to normal in modern versions of FireFox */
div.vectorMenu ul,
x:-moz-any-link,
x:default {
min-width: 0;
}
// stylelint-enable selector-no-vendor-prefix, selector-type-no-unknown
div.vectorMenu li {
padding: 0;
margin: 0;
text-align: left;
line-height: 1em;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
div.vectorMenu li a {
display: inline-block;
padding: 0.5em;
white-space: nowrap;
color: @menu-link-color;
cursor: pointer;
font-size: 0.8em;
}
/* IGNORED BY IE6 */
div.vectorMenu li > a {
display: block;
}
div.vectorMenu li.selected a,
div.vectorMenu li.selected a:visited {
color: #222;
text-decoration: none;
}
// Expand vectorMenu as basic tabs in IE6
// (IE6 doesn't support :hover on DIV)
* html div.vectorMenu div.menu {
display: block;
position: static;
border: 0;
}
* html div#mw-head div.vectorMenu h3 {
display: none;
}
* html div.vectorMenu li {
float: left;
line-height: 1.125em;
border-right: 1px solid #a7d7f9;
}
* html div.vectorMenu li a {
padding-top: 1.25em;
}
@import 'watchstar.less';