MediaWiki:Minerva.css: Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:
@import 'mediawiki.skin.variables.less';
@import 'mixins.less';
/* Reset user agent styles. We don't reset small or blockquote here deliberately */
/* Reset user agent styles. We don't reset small or blockquote here deliberately */
cite,
cite,
Line 118: Line 121:
}
}


@import 'mediawiki.skin.variables.less';
/**
* Ambox classes are nested in a top-level class
* This class is appended to the DOM via JS
* THESE RULES ONLY APPLY TO MINERVA skin.
**/
@ambox-padding: 8px;
@ambox-icon-padding: @ambox-padding * 4;
@line-height-content: 1.65;
 
body.skin-minerva .mw-parser-output .ambox,
/* Be more specific than .content table styles in Minerva */
body.skin-minerva .mw-parser-output table.ambox {
display: block;
margin: 0;
}
 
.client-js body.skin-minerva .mw-parser-output .ambox {
cursor: pointer;
width: auto;
// !important needed to override core ambox styles
background: @background-color-interactive-subtle !important;
color: @color-subtle;
margin-bottom: 1px;
 
tbody {
display: table;
width: 100%;
}
 
// Assuming that most ambox templates wrap content in this element.
// See https://en.wikipedia.org/w/index.php?title=Module:Message_box&action=raw (search for 'mbox-text-span').
// https://phabricator.wikimedia.org/T206887 suggests .mbox-text-div is also needed.
.mbox-text-div,
.mbox-text-span {
display: block;
max-height: @line-height-content * 2em;
// All will have this height (approx 2 lines) even if a single line e.g. {{dictdef}} when on mobile.
// Overriden later in tablet styles.
height: @line-height-content * 2em;
overflow: hidden;
}
 
// Wrestle with inline styles that editors may place on elements inside the ambox
div {
// e.g. on mw-collapsible inside Multiple issues template
margin: 0 !important;
// e.g. on Template:Expand Russian
padding: 0 !important;
}
 
td,
div.mbox-text {
position: relative;
// Override !important above if this is a div
padding: @ambox-padding @ambox-padding @ambox-padding @ambox-icon-padding !important;
 
> div,
> span {
font-size: unit( ( 13 / 16 ), rem );
}
}
 
// All text should be treated the same
b {
font-weight: inherit;
}
 
// Hide links in new treatment
a {
color: inherit !important;
-webkit-tap-highlight-color: rgba( 0, 0, 0, 0 ) !important;
 
&:hover,
&:focus {
text-decoration: none;
outline: inherit;
}
}
 
small,
.hide-when-compact,
/* Template:Expand Russian */
.mw-collapsible-content,
/* Remove empty leftmost column when present (.mbox-empty-cell)
* and .verbose and any hr tags that might be present in the ambox
* See https://en.wikipedia.org/w/index.php?
*  title=Special:WhatLinksHere/Template:Proposed_deletion_notify
* (https://phabricator.wikimedia.org/T197265) */
.mbox-empty-cell,
hr,
.verbose,
/* Nested amboxes (multiple issues) */
table,
.mbox-image {
display: none;
}
 
.minerva-ambox-icon {
position: absolute;
left: @ambox-padding;
top: 11px;
}
 
.ambox-learn-more {
color: @color-progressive;
position: absolute;
right: @ambox-padding;
bottom: @ambox-padding;
z-index: @z-index-base;
line-height: @line-height-content; // sets height for fade & aligns "learn more" to ambox text.
 
/* creates a fade under the "learn more" button to avoid overlapping text. */
&::before {
content: '';
position: absolute;
z-index: @z-index-bottom;
bottom: 0;
right: 0;
width: 100%; // width & height defined by length of "learn more".
height: 100%;
box-sizing: content-box; // explicitly setting box-sizing so padding extends beyond 100%.
padding-left: 4em;
background: linear-gradient( to right, transparent 0, @background-color-interactive-subtle 3em );
}
}
 
@media screen and ( min-width: @min-width-breakpoint-tablet ) {
.mbox-text-div,
.mbox-text-span {
height: auto;
margin-bottom: @ambox-padding * 3 !important; // important offsets `.ambox div { margin:0!important}` which offsets inline styles.
}
 
.ambox-learn-more {
left: @ambox-icon-padding;
right: 0;
background: none;
 
// Move blur to far right last line
// https://phabricator.wikimedia.org/T197931#4475197
&::before {
top: unit( -@line-height-content, em );
width: 10px;
}
}
}
}
 
// FIXME: [T367519] This is temporarily restricted to .skin-minerva to provide a short term fix for T367462.
// The expectation is that this CSS will be revised to exclude the .skin-minerva class in future,
// or limited to the Minerva skin via a skinStyle.
body.skin--responsive.skin-minerva .mw-parser-output {
.hatnote,
.dablink,
.rellink {
padding: 5px 7px;
color: @color-subtle;
font-size: unit( ( 13 / 16 ), rem );
background-color: @background-color-interactive-subtle;
margin-bottom: 1px;
overflow: hidden;
 
a {
color: @color-progressive;
}
}
}


// FIXME [T367519] This is temporarily restricted to .skin-minerva to provide a short term fix for T367462
// FIXME [T367519] This is temporarily restricted to .skin-minerva to provide a short term fix for T367462
Line 198: Line 367:
clear: right !important;
clear: right !important;
}
}
}
}
/** This mixin should only be used where it's safe to do so. It should not be applied
to content which may have important information. */
.night-mode-strip-all-colors-when-safe() {
background: inherit !important;
color: inherit !important;
/* If a border is defined retain it but make it black. If no border this won't do anything. */
border-color: @border-color-subtle !important;
}
@media screen {
.skin-theme-clientpref-night .page-Main_Page {
.mw-parser-output :not( .notheme ):not( a ) {
.night-mode-strip-all-colors-when-safe();
}
}
}
@media screen and ( prefers-color-scheme: dark ) {
.skin-theme-clientpref-os .page-Main_Page {
.mw-parser-output :not( .notheme ):not( a ) {
.night-mode-strip-all-colors-when-safe();
}
}
}
@media screen {
.skin-theme-clientpref-night .ns-100 {
.mw-parser-output :not( .notheme ):not( a ) {
.night-mode-strip-all-colors-when-safe();
}
}
}
@media screen and ( prefers-color-scheme: dark ) {
.skin-theme-clientpref-os .ns-100 {
.mw-parser-output :not( .notheme ):not( a ) {
.night-mode-strip-all-colors-when-safe();
}
}
}
/* TODO: Check matches https://github.com/wikimedia/mediawiki-skins-MinervaNeue/blob/master/resources/skins.minerva.base.styles/content/hacks.less#L188 onwards
before merging. */
/* T358385 */
[ bgcolor ] {
// Important: this should correspond with the light mode theme version of color-base
color: #333;
}
@selector-inline-style-color: ~'[style*="background"]:not( [style*="transparent"] ):not( [style*="inherit"] )';
.mixin-links-in-styled-tables-readable() {
/* Limited to article namespace. This should not be added to namespaces which reset colors e.g. Portal (100) */
body.ns-0:not( .page-Main_Page  ) .mw-parser-output table:not( .infobox ):not( .navbox-inner ):not( .navbox ) {
[bgcolor],
&[style*="background"]:not([style*="transparent"]):not([style*="inherit"]),
th@{selector-inline-style-color},
td@{selector-inline-style-color},
tr@{selector-inline-style-color} td {
a:not( .mw-selflink ) {
color: var( --color-base-fixed, #202122 );
text-decoration: underline;
}
// For red links use a wavy underline, to distinguish them from standard links.
a.new {
text-decoration-style: wavy;
}
}
}
}
@media screen {
html.skin-theme-clientpref-night {
// These colors become !important in night mode to avoid color contrast issues.
.hatnote:not( .notheme ),
.dablink:not( .notheme ),
.rellink:not( .notheme ),
.infobox:not( .notheme ) {
color: @color-base !important;
background-color: @background-color-interactive-subtle !important;
}
/* T357453 - attempt to strip colors from the majority of infoboxes in night mode (unless notheme specified) */
// please forgive me for bypassing the linter there is no easy way to keep all of the infobox classes grouped without
.infobox td,
.infobox th,
.infobox-above,
/* T359644 */
.infobox p,
.infobox > div,
.infobox caption,
/* frwiki T359644 */
.infobox--frwiki td,
.infobox--frwiki th,
.infobox--frwiki p,
.infobox--frwiki > div,
.infobox--frwiki caption,
/* itwiki */
.sinottico th,
.infobox-header,
/* T358164 General case that templates/extensions can opt into */
.skin-nightmode-reset-color,
.navigation-box,
.metadata,
/* T357735 */
.quotebox,
/* T357726 */
.side-box,
.side-box div,
/* T358012 */
.navbox,
.navbox-subgroup,
.navbox-group,
.navbox-even,
.navbox-abovebelow,
.navbox-title {
&:not( .notheme ) {
.night-mode-strip-all-colors-when-safe();
}
}
// T358797 - if a background color is specified, assume they wanted the day mode font color
.mw-parser-output [ style*='background' ] {
/* @color-base */
color: #202122; // not !important so that if a color is also specified it will take priority
}
.mixin-links-in-styled-tables-readable();
}
}
@media screen and ( prefers-color-scheme: dark ) {
html.skin-theme-clientpref-os {
/* T357453 */
.infobox td,
.infobox th,
.infobox-above,
/* T359644 */
.infobox p,
.infobox > div,
.infobox caption,
/* frwiki T359644 */
.infobox--frwiki td,
.infobox--frwiki th,
.infobox--frwiki p,
.infobox--frwiki > div,
.infobox--frwiki caption,
/* itwiki */
.sinottico th,
.infobox-header,
/* T358164 General case that templates/extensions can opt into */
.skin-nightmode-reset-color,
.navigation-box,
.metadata,
/* T357735 */
.quotebox,
/* T357726 */
.side-box,
.side-box div,
/* T358012 */
.navbox,
.navbox-subgroup,
.navbox-group,
.navbox-even,
.navbox-abovebelow,
.navbox-title {
&:not( .notheme ) {
.night-mode-strip-all-colors-when-safe();
}
}
// These colors become !important in night mode to avoid color contrast issues.
.hatnote:not( .notheme ),
.dablink:not( .notheme ),
.rellink:not( .notheme ),
.infobox:not( .notheme ) {
color: @color-base !important;
background-color: @background-color-interactive-subtle !important;
}
// T358797 - if a background color is specified, assume they wanted the day mode font color
.mw-parser-output [ style*='background' ] {
/* @color-base */
color: #202122; // not !important so that if a color is also specified it will take priority
}
.mixin-links-in-styled-tables-readable();
}
}
}
}