mediawiki-skins-MinervaNeue/resources/skins.minerva.base.styles/pageactions.less
jdlrobson 9150aec131 Feature flag overhaul
Two new feature flags:
1) MinervaPersonalMenu
2) MinervaAdvancedMainMenu

Changes:
* AMC defaults to false on desktop - desktop doesn't have AMC mode it just
enables several skin options.
* WHen inserting a link at the bottom of the page check whether the talk at top
of the page (tabs) is enabled.. not AMC
* Update ServiceWiring to construct menu based on MinervaAdvancedMainMenu
and  MinervaPersonalMenu - note when former is enabled but not latter there is
no way to logout. Noted in README.
* Use one entry point for skins.minerva.amc.styles/index.less
* Document files inside skins.minerva.amc.styles to make it clear which features
they are associated with
* Drop history page styles when AMC is disabled - it's not possible to ever get to
these as the history page redirects in non-AMC mode
* Rename the class .minerva--amc-enabled to minerva--history-page-action-enabled
to reflect its real purpose and move styles from skins.minerva.base.styles to skins.minerva.amc.styles
No need to worry about cached HTML as AMC runs without cache...
* Remove isAnyAMCOptionEnabled - it's an antipattern and should be discouraged as it discourages the
art of feature flagging. Nothing is using it after these changes.
* The AMC_MODE flag is disabled. There is no need for this - AMC is not a feature and therefore not a
skin option. It is a mechanism for turning on other skin options. Tests are updated.

Testing:
It should now be possible to enable any feature in `beta` and see it in the beta of the
site.

Bug: T229295
Change-Id: I48959905f5c09721b14a27aa1a5ad82849ac6263
2019-08-23 10:48:14 -07:00

127 lines
3 KiB
Plaintext

@import '../../minerva.less/minerva.variables.less';
@import '../../minerva.less/minerva.mixins.less';
.heading-holder {
padding: @titleSectionSpacingTop 0 0;
position: relative;
.tagline {
color: @colorGray5;
font-size: @taglineFontSize;
}
}
.page-heading {
margin-bottom: 12px;
}
// used to disable the languages icon.
.mw-ui-icon-element.disabled,
.language-selector.disabled {
cursor: default;
opacity: 0.25;
}
#page-actions {
position: relative;
}
.page-actions-menu {
.box-sizing( border-box );
border-top: 1px solid @colorGray14;
border-bottom: 1px solid @colorGray12;
margin-top: -1px; // Offset top border.
}
.page-actions-menu__list {
display: flex;
justify-content: space-between;
height: @pageActionToolbarHeight;
}
.page-actions-menu__list-item {
display: flex;
flex-basis: 4em;
justify-content: flex-end;
align-items: center;
// overriding default icon styles
.mw-ui-icon-element {
// The page actions menu icons are ever so slightly larger
// than standard icons.
@pageActionsIconSize: @iconSize + 0.15;
@pageActionsIconTarget: 2.75em; // 44px minimum touch target
// explicitly added to ensure this element (which is an anchor) receives width/height
// when it's viewed in services that manipulate DOM such as Google Translate.
display: block;
position: relative;
min-width: @pageActionsIconTarget;
width: @pageActionsIconTarget;
height: @pageActionsIconTarget;
&:hover {
box-shadow: none;
}
&:before {
margin: 0;
// `.mw-ui-icon` absolutely positions this pseudo-element but only
// positions right & left. This ensures icon stretches 100% height and
// stretches the entire height of its parent element.
top: 0;
bottom: 0;
background-size: @pageActionsIconSize;
}
}
}
// Layout for less than 5 items - one item at the beginning, rest at the end.
// |1-----2--3--4|
.page-actions-menu__list-item:first-child {
flex-grow: 1;
justify-content: flex-start;
}
.page-actions-overflow-list {
// The top of the menu is flush with the bottom of the page actions toolbar.
top: 100%;
right: 0;
}
// overriding common.less `display:inherit` (which causes `display: flex;` in this instance).
.client-js .jsonly#ca-watch {
display: list-item;
}
// Watchstar is hidden for anonymous no-js users
// While we could link the icon to the login/signup form, this is not
// a perfect experience and could be confusing.
// In JavaScript this icon will be converted to a watch icon and will point
// to a Call to action to sign up/login and explain why that's a good idea.
// Thus, anonymous users without JS will never see this icon.
// This is a small % of our users, so deemed okay.
.client-nojs {
.watch-this-article {
visibility: hidden;
}
.is-authenticated {
.watch-this-article {
visibility: visible;
}
}
}
// On small devices that don't support Javascript, hide the page actions bar
@media all and ( max-width: @width-breakpoint-mobile - 1 ) {
.client-nojs {
#page-actions {
display: none;
}
#section_0 {
border: 0;
}
}
}