@import '../../minerva.less/minerva.variables.less'; @import '../../minerva.less/minerva.mixins.less'; @import 'mediawiki.mixins.less'; @import 'icons.less'; /* stylelint-disable no-descending-specificity */ html, body { // Ensure overlays take up full screen height: 100%; } html { font-size: @font-size-root; // Support Safari: Prevent font scaling in landscape -webkit-text-size-adjust: none; } body { background-color: @background-color-base; color: @color-base; // Support All Browsers: Remove `margin` (normalized) margin: 0; } /* needed for navigation elements and content */ ul { margin: 0; padding: 0; } main { // Support IE 9-11: Apply correct `display` (normalized), see T207618. display: block; } .mw-body { // avoid margin collapsing (see T147956) border-top: @border-width-base @border-style-base @border-color-transparent; padding-bottom: 32px; } .overlay-enabled, .mw-body { background-color: @background-color-base; } // If footer has last modified list item (Desktop MinervaNeue ?useformat=desktop&useskin=minerva), // hide it (T173545). // stylelint-disable-next-line selector-max-id .navigation-drawer--loading, #footer-info-lastmod { display: none; } // Override rule in MobileFrontend ( // (ul.footer-info li in resources/mobile.init.styles.less) // to show copyright. // stylelint-disable-next-line selector-max-id #footer-info-copyright { display: block; } // JavaScript overlay and server side rendered header .overlay-header, .minerva-header { display: flex; align-items: center; width: 100%; border-spacing: 0; border-collapse: collapse; height: @height-site-header; white-space: nowrap; // When banners are present we want to easily distinguish between them and the header so add border border-top: @border-subtle; // Hide the header border top when a banner is not present. margin-top: -@border-width-base; } // // Search // .minerva-search-form { display: flex; width: 100%; flex-grow: 1; align-items: center; > button { margin-left: auto; } } .search-box { position: relative; } // Search input // Used in minerva header and search overlay header .search-box .search { @size-icon-search: unit( 18 / @font-size-browser, em ); @size-icon-search-gutter: unit( 8 / @font-size-browser, em ); @size-modifier-border: unit( 1 / @font-size-browser, em ); @padding-vertical-search: 8px - @border-width-base; @padding-start-search-icon: @size-icon-search + ( 2 * @size-icon-search-gutter ) - @size-modifier-border; background-color: @background-color-base; // Support Fennec, Opera Mini: Remove default background, see T38490. // Support Safari: Get rid of rounded corners. -webkit-appearance: none; width: 100%; margin: 0; height: 2.25em; border: @border-width-base @border-style-base @border-color-inverted; border-radius: @border-radius-base; padding: @padding-vertical-search 0 @padding-vertical-search @padding-start-search-icon; box-shadow: @box-shadow-drop-small; // Keyboard focus is taken care of below at `.search:focus`. outline: 0; transition-property: border-color, box-shadow; transition-duration: @transition-duration-medium; font: inherit; // Disable search background for cached HTML. mask-image: none; // [T139928] Hide all pseudo-elements added to search inputs in WebKit. &::-webkit-search-decoration, &::-webkit-search-cancel-button, &::-webkit-search-results-button, &::-webkit-search-results-decoration { display: none; } } .search-box-icon-overlay { position: absolute; display: flex; align-items: center; left: 8px; top: 0; bottom: 0; } // Provide focus styles only in non-JS and overlay to prevent double transition. .client-nojs .search-box .search:focus, .search-overlay .search-box .search:focus { border-color: @border-color-progressive--focus; box-shadow: @box-shadow-inset-small @box-shadow-color-progressive--focus, 0 1px 1px rgba( 0, 0, 0, 0.05 ); } .content { .mw-heading2, h2 { // Clear table of contents and any other floated elements in desktop Minerva. clear: left; } // Only reveal section edit links in expanded section headings. // The .section-heading class is only present on mobile. .section-heading { .mw-editsection { visibility: hidden; } &.open-block .mw-editsection, .client-nojs & .mw-editsection { visibility: visible; } } /* For legacy parser */ .mw-parser-output > .mw-heading2, .mw-parser-output > h2, .mw-parser-output[ data-mw-parsoid-version ] > section > .mw-heading2, .section-heading { border-bottom: @border-width-base @border-style-base @border-color-muted; margin-bottom: @margin-heading; } .mw-parser-output { // We want to apply display: flex to the heading wrapper elements to style them right (T305971), // but not to the heading text elements, because it results in bad text layout (T367468). // This turns out to be difficult, because mobile/desktop, legacy/modern/unwrapped headings, // and DiscussionTools/normal page generate a lot of different combinations of HTML markup. // Support modern headings, DiscussionTools, and mobile mode .mw-heading, .section-heading { display: flex; // T356513: display after floated elements min-width: fit-content; } // Support desktop Minerva legacy headings (this can only be done with a :has() selector, // there's no other way to distinguish them from unwrapped headings, even though it lacks // support for some browsers). Will be no longer needed when legacy headings are gone. // FIXME: Remove this block when $wgParserEnableLegacyHeadingDOM is removed. :is( h1, h2, h3, h4, h5, h6 ):has( .mw-headline ) { display: flex; } // FIXME: Remove `.mw-headline` when $wgParserEnableLegacyHeadingDOM is removed. h1, h2, h3, h4, h5, h6, .mw-headline { flex-grow: 1; flex-basis: 0; margin-left: 0; } .mw-editsection { align-self: center; // Negative margins to prevent the edit icon from affecting the height of the heading margin-top: -1em; margin-bottom: -1em; .cdx-mixin-button-layout-flush( 'end', true, 'large' ); .cdx-button { font-size: 1rem; } } } } // stylelint-disable selector-max-id #page-secondary-actions { a { margin: 10px 2px 2px 0; } } // It may be better to express these in a single class // or think about using extend or a mixin to stay with semantic selectors // https://css-tricks.com/the-extend-concept/ #bodyContent .panel .content, .overlay .content-header, .overlay .panel, .mw-mf-page-list.side-list .list-thumb, .mw-mf-page-list li, .topic-title-list li, .site-link-list li, .drawer, /*Specificity needed to override content styles in core. */ .content h2.list-header, .list-header, .mw-revision { padding-left: @padding-content; padding-right: @padding-content; } .image-list, .minerva-anon-talk-message, .pre-content, /* Form only pages e.g Special:MobileOptions */ #mw-content-text > form > .oo-ui-fieldLayout > .oo-ui-fieldLayout-body, /* Save button on Special:MobileOptions */ #mw-content-text > form > .oo-ui-widget, .content, .post-content { margin: 0 @margin-content; } // T217197 #mw-content-subtitle { margin-top: 10px; margin-bottom: 10px; &:empty { margin: 0; } } // stylelint-enable selector-max-id @media all and ( min-width: @min-width-breakpoint-tablet ) { /* FIXME: this should be one generic class name */ /* SpecialMobileEditWatchlist */ .page-summary-list, /* Talk overlay */ .topic-title-list, /* structured languages, mobile pagelists */ .site-link-list, /* overlays */ .overlay .panel, /* language overlay / MobileSpecialPageFeed */ .list-header { padding-left: @padding-content-tablet; padding-right: @padding-content-tablet; } } /* stylelint-enable no-descending-specificity */