mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-09-24 02:39:20 +00:00
Update dropdown and pinnable element styles to match spec
- Generalize spacing for pinnable header and menu items under PinnableHeader.less and PinnableElement.less - Impacts main menu, page tools & personal tools Bug: T324877 Change-Id: I4042e5c1957d64797f21146f687ef960721299ce
This commit is contained in:
parent
7f2118e756
commit
fe105edcdb
|
@ -1,5 +1,6 @@
|
|||
{{! Use `.vector-main-menu` to target styles at this element}}
|
||||
{{>PinnableElement/Open}}
|
||||
{{^is-page-tools-enabled}}
|
||||
{{#data-portlets-first}}{{>MainMenuGroup}}{{/data-portlets-first}}
|
||||
{{#data-main-menu-action}}{{>MainMenuAction}}{{/data-main-menu-action}}
|
||||
{{#array-portlets-rest}}{{>MainMenuGroup}}{{/array-portlets-rest}}
|
||||
|
@ -8,4 +9,16 @@
|
|||
{{/is-language-in-content}}
|
||||
{{! T295555 Add language switch alert message. }}
|
||||
{{#data-vector-language-switch-alert}}{{>MainMenuAction}}{{/data-vector-language-switch-alert}}
|
||||
{{/is-page-tools-enabled}}
|
||||
|
||||
{{#is-page-tools-enabled}}
|
||||
{{#data-portlets-first}}{{>Menu}}{{/data-portlets-first}}
|
||||
{{#data-main-menu-action}}{{>MainMenuAction}}{{/data-main-menu-action}}
|
||||
{{#array-portlets-rest}}{{>Menu}}{{/array-portlets-rest}}
|
||||
{{^is-language-in-content}}
|
||||
{{#data-languages}}{{>Menu}}{{/data-languages}}
|
||||
{{/is-language-in-content}}
|
||||
{{! T295555 Add language switch alert message. }}
|
||||
{{#data-vector-language-switch-alert}}{{>MainMenuAction}}{{/data-vector-language-switch-alert}}
|
||||
{{/is-page-tools-enabled}}
|
||||
{{>PinnableElement/Close}}
|
||||
|
|
|
@ -32,11 +32,16 @@
|
|||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.mixin-vector-dropdown-menu-item() {
|
||||
// Remove this mixin after VectorPageTools is enabled everywhere
|
||||
.mixin-vector-dropdown-menu-item-deprecated() {
|
||||
min-height: @height-dropdown-menu-item;
|
||||
padding: @padding-dropdown-menu-item;
|
||||
}
|
||||
|
||||
.mixin-vector-dropdown-menu-item() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: @padding-dropdown-menu-item;
|
||||
padding: @padding-vertical-dropdown-menu-item @padding-horizontal-dropdown-menu-item;
|
||||
font-size: @font-size-dropdown;
|
||||
|
||||
&:visited {
|
||||
|
|
|
@ -129,7 +129,10 @@
|
|||
|
||||
// Dropdowns
|
||||
@height-dropdown-menu-item: unit( 32 / @font-size-browser, rem );
|
||||
// Remove this variable after VectorPageTools is enabled everywhere
|
||||
@padding-dropdown-menu-item: 0 12px;
|
||||
@padding-vertical-dropdown-menu-item: 6px;
|
||||
@padding-horizontal-dropdown-menu-item: 14px;
|
||||
@font-size-dropdown: unit( @font-size-base, rem ); // Equals `0.875rem`.
|
||||
|
||||
// Main menu
|
||||
|
|
|
@ -37,5 +37,9 @@
|
|||
.mixin-vector-dropdown-menu-item();
|
||||
white-space: nowrap;
|
||||
color: @color-link;
|
||||
|
||||
.vector-feature-page-tools-disabled & {
|
||||
.mixin-vector-dropdown-menu-item-deprecated();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,44 @@
|
|||
}
|
||||
}
|
||||
|
||||
.vector-main-menu {
|
||||
box-sizing: border-box;
|
||||
|
||||
// Hide #p-navigation label
|
||||
#p-navigation .vector-menu-heading {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.vector-feature-page-tools-enabled .vector-main-menu {
|
||||
.vector-main-menu-action-opt-out a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.vector-language-sidebar-alert {
|
||||
// Override default .mw-message-box styles
|
||||
padding: 8px;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Main menu when pinned in the sidebar
|
||||
.vector-feature-page-tools-enabled #vector-main-menu-pinned-container .vector-main-menu {
|
||||
padding: @padding-vertical-dropdown-menu-item @padding-horizontal-dropdown-menu-item;
|
||||
background-color: @background-color-secondary--modern;
|
||||
// Align text with page container
|
||||
margin-left: -@padding-horizontal-dropdown-menu-item;
|
||||
}
|
||||
|
||||
// Main menu when unpinned in the dropdown
|
||||
#vector-main-menu-unpinned-container .vector-main-menu {
|
||||
width: 250px;
|
||||
|
||||
.vector-language-sidebar-alert {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.vector-feature-page-tools-disabled {
|
||||
@media ( max-width: @max-width-tablet ) {
|
||||
.vector-main-menu {
|
||||
|
@ -25,18 +63,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.vector-main-menu {
|
||||
box-sizing: border-box;
|
||||
|
||||
// Hide #p-navigation label
|
||||
#p-navigation .vector-menu-heading {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Main menu when pinned in the sidebar
|
||||
.vector-feature-page-tools-disabled .vector-main-menu,
|
||||
#vector-main-menu-pinned-container .vector-main-menu {
|
||||
.vector-feature-page-tools-disabled .vector-main-menu {
|
||||
// Temporary magic number, will be calculated after TOC specs are finalized
|
||||
padding: 12px 19px 12px 9px;
|
||||
background-color: @background-color-secondary--modern;
|
||||
|
@ -47,35 +74,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
// Main menu when unpinned in the dropdown
|
||||
#vector-main-menu-unpinned-container .vector-main-menu {
|
||||
width: 250px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.vector-menu-heading,
|
||||
.vector-main-menu-group {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
// Main menu when unpinned in the dropdown
|
||||
.vector-main-menu-unpinned-container & {
|
||||
width: 250px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.vector-menu-heading,
|
||||
.vector-main-menu-group {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.vector-menu-content {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.vector-main-menu-action {
|
||||
.vector-feature-page-tools-disabled .vector-main-menu-action {
|
||||
// Styles for MainMenuAction template.
|
||||
.vector-main-menu-action-item {
|
||||
// Align with the portal heading/links
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
@import '../../common/variables.less';
|
||||
@import 'mediawiki.mixins.less';
|
||||
|
||||
.vector-main-menu-group,
|
||||
.vector-main-menu-action-item {
|
||||
.vector-feature-page-tools-disabled .vector-main-menu-group,
|
||||
.vector-feature-page-tools-disabled .vector-main-menu-action-item {
|
||||
margin: 0 @margin-end-portal 0 @margin-start-portal;
|
||||
padding: 0.25em 0;
|
||||
direction: ltr;
|
||||
|
|
|
@ -7,37 +7,9 @@
|
|||
}
|
||||
|
||||
.vector-page-tools {
|
||||
.vector-menu-heading {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
.mixin-vector-menu-heading();
|
||||
}
|
||||
|
||||
.mw-list-item {
|
||||
a {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
white-space: nowrap;
|
||||
color: @color-link;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Styles applying to all items in the pinned column.
|
||||
*/
|
||||
#vector-page-tools-pinned-container & {
|
||||
padding-left: 45px;
|
||||
width: 140px;
|
||||
|
||||
// Make the heading border line up with the edge of the text
|
||||
// (Whereas in a dropdown, the border lines up with the edge of the dropdown container).
|
||||
.vector-menu-heading,
|
||||
.mw-list-item a {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.vector-pinnable-header {
|
||||
padding: @padding-vertical-tabs;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,35 @@
|
|||
.vector-feature-page-tools-enabled .vector-pinnable-element {
|
||||
.vector-menu {
|
||||
& > * + * {
|
||||
// Apply top border to every children of pinnable elements except the first
|
||||
border-top: @border-width-base @border-style-base @colorGray14;
|
||||
}
|
||||
|
||||
// Remove the border for the first .vector-menu since
|
||||
// it already exists on the pinnable header, or, when there's no
|
||||
// pinnable header, a border exists on the dropdown container.
|
||||
.vector-menu:first-child,
|
||||
.vector-pinnable-header + .vector-menu {
|
||||
border: 0;
|
||||
.vector-menu-heading {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
.mixin-vector-menu-heading();
|
||||
}
|
||||
|
||||
.mw-list-item a {
|
||||
// Mirror styles from Dropdown.less
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
white-space: nowrap;
|
||||
color: @color-link;
|
||||
}
|
||||
|
||||
.vector-main-menu-action-content {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: merge this into the selector above after page tools is enabled everywhere
|
||||
.vector-pinned-container .vector-pinnable-element {
|
||||
// Make the heading border line up with the edge of the text
|
||||
// (Whereas in a dropdown, the border lines up with the edge of the dropdown container).
|
||||
.vector-pinnable-header,
|
||||
.vector-menu-heading,
|
||||
.mw-list-item a,
|
||||
.vector-main-menu-action-content {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
.vector-pinnable-header {
|
||||
border-bottom: @border-width-base @border-style-base @colorGray14;
|
||||
.vector-feature-page-tools-enabled & {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
// Override display: flex applied by .mixin-vector-dropdown-menu-item()
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.vector-menu-dropdown .vector-pinnable-header {
|
||||
// Match dropdown item styles
|
||||
// Line height needed for vertically centering pinnable header
|
||||
line-height: @height-dropdown-menu-item;
|
||||
padding: @padding-dropdown-menu-item;
|
||||
.vector-page-tools,
|
||||
.sidebar-toc {
|
||||
.vector-pinned-container & .vector-pinnable-header {
|
||||
// Align TOC and Page Tools pinnable header border with page toolbar border
|
||||
// 40px (page toolbar height) - 17px (pinnable header height) - 6px (pinnable header bottom padding) = 17px
|
||||
padding-top: 17px;
|
||||
}
|
||||
}
|
||||
|
||||
.vector-pinnable-header-label {
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
padding-top: 1.5em;
|
||||
}
|
||||
|
||||
.vector-toc-pinned @{selector-main-menu-closed} ~ .mw-table-of-contents-container & {
|
||||
.vector-feature-page-tools-disabled.vector-toc-pinned @{selector-main-menu-closed} ~ .mw-table-of-contents-container &,
|
||||
.vector-feature-page-tools-enabled.vector-toc-pinned.vector-feature-main-menu-pinned-disabled & {
|
||||
// Needed to align TOC with bottom of title, 1.5em padding + 1.5em margin = 3em
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
@ -64,7 +65,7 @@
|
|||
overflow-x: hidden;
|
||||
background-color: @background-color-page-container;
|
||||
|
||||
.vector-toc-pinnable-header {
|
||||
.vector-feature-page-tools-disabled & .vector-toc-pinnable-header {
|
||||
// Override default pinnable header styles
|
||||
padding: 0 0 12px 0;
|
||||
border: 0;
|
||||
|
|
|
@ -55,6 +55,10 @@
|
|||
.mw-portlet-personal .mw-list-item {
|
||||
a {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
|
||||
.vector-feature-page-tools-disabled & {
|
||||
.mixin-vector-dropdown-menu-item-deprecated();
|
||||
}
|
||||
white-space: nowrap;
|
||||
color: @color-link;
|
||||
}
|
||||
|
@ -115,6 +119,14 @@
|
|||
// Anon editor notice i.e. "Pages for logged out editors".
|
||||
.vector-user-menu-anon-editor {
|
||||
.mixin-vector-dropdown-menu-item();
|
||||
|
||||
.vector-feature-page-tools-disabled & {
|
||||
.mixin-vector-dropdown-menu-item-deprecated();
|
||||
}
|
||||
|
||||
.vector-feature-page-tools-enabled & p {
|
||||
margin: 0;
|
||||
}
|
||||
color: @color-base--subtle;
|
||||
|
||||
a:before {
|
||||
|
|
Loading…
Reference in a new issue