mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-12-13 16:38:44 +00:00
3cea6d4132
This change scopes the styles related to the Zebra update by wrapping the imports in a top-level feature flag selector, i.e .vector-feature-zebra-design-enabled { @import "./screen.less" } To account for this extra selector, ampersands are added wherever the html element is targeted in the affected files. This applies to both zebra enabled and disabled files. getDefaultModules() is used in SkinVector22.php to conditionally load the new skins.vector.zebra.styles module when the feature is enabled. Bug: T332600 Change-Id: I5e673df383ff31f296010f982e4188c82f095590
161 lines
4.1 KiB
Plaintext
161 lines
4.1 KiB
Plaintext
@import '../../../common/variables.less';
|
|
@import '../../../common/mixins.less';
|
|
|
|
@selector-nojs-collapsed-toc-open: ~'#vector-toc-collapsed-checkbox:checked';
|
|
|
|
// TOC dropdown styles
|
|
#vector-toc-collapsed-button,
|
|
.vector-sticky-header-toc,
|
|
.vector-page-titlebar-toc {
|
|
display: none;
|
|
margin-right: 8px;
|
|
}
|
|
|
|
// TOC dropdown toggle styles
|
|
#vector-toc-collapsed-button,
|
|
body:not( .vector-below-page-title ) #vector-page-titlebar-toc-label {
|
|
@media ( max-width: @max-width-tablet ) {
|
|
// Override the default button styles so the ToC button in the page titlebar is slightly shorter on small viewports
|
|
padding: 7px 12px;
|
|
}
|
|
}
|
|
|
|
// TOC styles when unpinned
|
|
.mixin-toc-unpinned() {
|
|
display: block;
|
|
|
|
> .vector-menu-content {
|
|
// Override default dropdown max width
|
|
max-width: none;
|
|
}
|
|
|
|
// Shared unpinned TOC styles, applies across all unpinned cases (page titlebar, sticky header, floating)
|
|
.vector-toc {
|
|
// T316056 Remove TOC menu fixed width and apply min/max-width
|
|
width: max-content;
|
|
min-width: 200px;
|
|
// Collapsed TOC should be smaller than 85% of the content container (51em) and 75vw
|
|
max-width: ~'min( 0.85 * @{max-width-content-container}, 75vw )'; // min( 51em, 75vw )
|
|
|
|
// Adjust TOC spacing when unpinned
|
|
.vector-pinnable-header {
|
|
padding-left: @padding-horizontal-dropdown-menu-item + @spacing-subsection-toggle;
|
|
}
|
|
|
|
.vector-toc-contents {
|
|
padding-right: @padding-horizontal-dropdown-menu-item;
|
|
padding-left: @padding-horizontal-dropdown-menu-item + @spacing-subsection-toggle;
|
|
}
|
|
}
|
|
}
|
|
|
|
// TOC styles when below page title
|
|
.mixin-toc-below-page-title {
|
|
position: fixed;
|
|
top: 12px;
|
|
left: 12px;
|
|
margin: 0;
|
|
z-index: @z-index-menu;
|
|
}
|
|
|
|
&.client-js {
|
|
@media ( max-width: @max-width-tablet ) {
|
|
//
|
|
// TOC in page titlebar on narrow screens
|
|
//
|
|
.vector-page-titlebar-toc {
|
|
.mixin-toc-unpinned();
|
|
}
|
|
|
|
//
|
|
// TOC in page titlebar on narrow screens below page title
|
|
//
|
|
.vector-below-page-title .vector-page-titlebar-toc {
|
|
.mixin-toc-below-page-title();
|
|
}
|
|
}
|
|
|
|
@media ( min-width: @min-width-desktop ) {
|
|
//
|
|
// TOC in page titlebar
|
|
//
|
|
&.vector-feature-toc-pinned-disabled body:not( .vector-sticky-header-visible ) {
|
|
.vector-page-titlebar-toc {
|
|
.mixin-toc-unpinned();
|
|
}
|
|
}
|
|
|
|
//
|
|
// TOC in page titlebar below page title
|
|
//
|
|
&.vector-feature-toc-pinned-disabled body:not( .vector-sticky-header-visible ).vector-below-page-title {
|
|
.vector-page-titlebar-toc {
|
|
.mixin-toc-below-page-title();
|
|
}
|
|
}
|
|
|
|
//
|
|
// TOC in sticky header
|
|
//
|
|
&.vector-feature-toc-pinned-disabled .vector-sticky-header-visible {
|
|
.vector-sticky-header-toc {
|
|
.mixin-toc-unpinned();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.client-nojs {
|
|
//
|
|
// No-JS TOC in page titlebar
|
|
//
|
|
&.vector-feature-toc-pinned-disabled {
|
|
.vector-page-titlebar-toc {
|
|
.mixin-toc-unpinned();
|
|
}
|
|
}
|
|
|
|
//
|
|
// No-JS TOC in page titlebar on narrow screens for anon users
|
|
//
|
|
@media ( max-width: @max-width-tablet ) {
|
|
// Make the TOC appear in the page titlebar on small viewports
|
|
// even when the TOC location in the DOM is actually in the sidebar
|
|
// This case only happens for no-js anon users.
|
|
&.vector-feature-toc-pinned-enabled {
|
|
#vector-toc-collapsed-button {
|
|
display: block;
|
|
}
|
|
|
|
#vector-toc-pinned-container {
|
|
// Override TOC container's sticky positioning
|
|
position: relative;
|
|
.mixin-toc-unpinned();
|
|
}
|
|
|
|
.vector-toc {
|
|
display: none;
|
|
position: absolute;
|
|
top: 36px; // TOC button height
|
|
// FIXME: Don't use a magic number. This used to be tied to the private variable in core
|
|
// @icon-padding-md so perhaps this needs to make use of the flush classes?
|
|
left: -12px;
|
|
margin-top: @padding-top-content; // Account for padding-top from .mw-body
|
|
// FIXME: Collapsed TOC styles are not consistent with other vector dropdowns
|
|
border: @border-width-base @border-style-base @border-color-base;
|
|
z-index: @z-index-menu;
|
|
|
|
.vector-pinnable-header,
|
|
.vector-toc-contents {
|
|
padding-left: @padding-horizontal-dropdown-menu-item;
|
|
}
|
|
}
|
|
|
|
@{selector-nojs-collapsed-toc-open} ~ .mw-table-of-contents-container .vector-toc {
|
|
// Hide the TOC when the button is not checked
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
}
|