diff --git a/includes/SkinVector.php b/includes/SkinVector.php index 6d2812d9..a99fdcc2 100644 --- a/includes/SkinVector.php +++ b/includes/SkinVector.php @@ -236,6 +236,7 @@ class SkinVector extends SkinMustache { 'vector-language-button-label', count( $this->getLanguages() ) )->parse(); + $portletData['icon'] = 'language'; } $class = $portletData['class']; $portletData['class'] = trim( "$class $extraClasses[$type]" ); diff --git a/includes/templates/Menu.mustache b/includes/templates/Menu.mustache index d810c9e8..917c668f 100644 --- a/includes/templates/Menu.mustache +++ b/includes/templates/Menu.mustache @@ -8,7 +8,7 @@ {{#is-dropdown}} {{/is-dropdown}} -

+

{{label}}

diff --git a/resources/skins.vector.styles/LanguageButton.less b/resources/skins.vector.styles/LanguageButton.less new file mode 100644 index 00000000..c66ac376 --- /dev/null +++ b/resources/skins.vector.styles/LanguageButton.less @@ -0,0 +1,19 @@ +@import 'mediawiki.ui/mixins.buttons.less'; + +// mw-body-header class can be removed when language button is the default. +// e.g. upon removal of SkinVector::isLanguagesInHeader +.mw-body-header .mw-portlet-lang { + h3 { + padding-right: 40px; + } + + .vector-menu-content { + top: auto; + right: 0; + box-sizing: border-box; + } + + .after-portlet { + margin-top: 8px; + } +} diff --git a/resources/skins.vector.styles/skin.less b/resources/skins.vector.styles/skin.less index c1676c4c..a295f884 100644 --- a/resources/skins.vector.styles/skin.less +++ b/resources/skins.vector.styles/skin.less @@ -18,6 +18,7 @@ @import 'TabWatchstarLink.less'; @import 'MenuDropdown.less'; @import 'MenuPortal.less'; + @import 'LanguageButton.less'; @import 'Sidebar.less'; @import 'SidebarLogo.less'; @import 'Footer.less'; diff --git a/skin.json b/skin.json index eaec31f6..1519fb2d 100644 --- a/skin.json +++ b/skin.json @@ -26,6 +26,7 @@ ], "styles": [ "skins.vector.styles", + "skins.vector.icons", "mediawiki.ui.icon" ], "messages": [ @@ -114,6 +115,17 @@ ], "styles": [ "resources/skins.vector.styles.responsive.less" ] }, + "skins.vector.icons": { + "selectorWithVariant": ".mw-ui-icon-wikimedia-{name}-{variant}:before", + "selectorWithoutVariant": ".mw-ui-icon-wikimedia-{name}:before", + "useDataURI": false, + "defaultColor": "#54595d", + "class": "ResourceLoaderOOUIIconPackModule", + "variants": [], + "icons": [ + "language" + ] + }, "skins.vector.js": { "packageFiles": [ "resources/skins.vector.js/skin.js", @@ -171,7 +183,8 @@ "+mediawiki.notification": "skinStyles/mediawiki.notification.less", "+oojs-ui-core.styles": "skinStyles/ooui.less", "mediawiki.special": "skinStyles/mediawiki.special.less", - "+ext.relatedArticles.readMore": "skinStyles/ext.relatedArticles.readMore.less" + "+ext.relatedArticles.readMore": "skinStyles/ext.relatedArticles.readMore.less", + "+mediawiki.ui.icon": "skinStyles/mediawiki.ui.icon.less" } }, "config": { diff --git a/skinStyles/mediawiki.ui.icon.less b/skinStyles/mediawiki.ui.icon.less new file mode 100644 index 00000000..9fb3befb --- /dev/null +++ b/skinStyles/mediawiki.ui.icon.less @@ -0,0 +1,6 @@ +// The .mw-page-container class is used to restrict this to the modern Vector. +// This element is not needed in legacy Vector. +.mw-page-container .mw-ui-icon:before { + // mw-ui-icon in core defaults to 24x24. The style guide now requests 20x20. + background-size: 20px auto; +}