Jump to content

MediaWiki:Gadget-rtrc.css

From mediawiki.org

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/**
 * Real-Time Recent Changes
 * https://gerrit.wikimedia.org/g/mediawiki/gadgets/RTRC
 *
 * @copyright 2010 Timo Tijhof
 */

/* Minimise MediaWiki frame */

.mw-rtrc-available #siteNotice,
.mw-rtrc-available .firstHeading,
.mw-rtrc-available #bodyContent {
	visibility: hidden;
}

.mw-rtrc-available #ca-talk,
.mw-rtrc-available #p-views,
.mw-rtrc-available #p-cactions,
.mw-rtrc-available #footer,
.mw-rtrc-available #contentSub,
.mw-rtrc-available #catlinks,
.mw-rtrc-available .mw-revdelundel-link {
	display: none;
}

.mw-rtrc-available .skin-timeless #mw-related-navigation {
	display: none;
}
.mw-rtrc-available .skin-timeless #mw-content {
	padding: 0;
}

/* Wrapper */

.mw-rtrc-wrapper {
	position: relative;
	background: rgb(247, 246, 248);
	border-top: 30px solid #343434;
	padding: 0 1em;
	font-size: 13px;
	line-height: 1.4;
	color: #343434;
	opacity: 0;
	transition: opacity 150ms ease-out 50ms;
}

.mw-rtrc-ready .mw-rtrc-wrapper {
	opacity: 1;
}

.mw-rtrc-legend .mw-rtrc-item {
	display: inline-block;
	padding: 0 0.6em;
}

.mw-rtrc-available #content {
	background: rgb(247, 246, 248);
	padding: 0;
}

.mw-rtrc-head {
	position: absolute;
	left: 1em;
	right: 1em;
	/* See .mw-rtrc-wrapper#border-top */
	top: -30px;
	line-height: 30px;
	text-align: center;
	color: #ccc;
	/* Avoid overlap with head-links on narrow screens */
	padding: 0 11em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mw-rtrc-foot {
	position: fixed;
	left: 0;
	bottom: 0;
	right: 0;
	background: rgba(255, 255, 255, 0.7);
	padding: 6px 15px 6px 15px;
	border-top: 1px solid #a1cef5;
	text-align: center;
	color: #343434;
	transition: all 150ms ease-out;
	transition-property: opacity, background;
}

.mw-rtrc-foot:hover {
	background: rgba(255, 255, 255, 1);
}

/* Sidebar overlay */

/* Don't animate initial hide from init(), only after its ready */
.mw-rtrc-ready.mw-rtrc-sidebar-toggleable #mw-panel,
.mw-rtrc-ready.mw-rtrc-sidebar-toggleable #left-navigation,
.mw-rtrc-ready.mw-rtrc-sidebar-toggleable #content,
.mw-rtrc-navtoggle {
	transition: transform 250ms ease-out;
}
.mw-rtrc-ready.mw-rtrc-sidebar-toggleable .mw-rtrc-sidebar-cover {
	transition: opacity 250ms ease-out;
}
.mw-rtrc-ready.mw-rtrc-sidebar-toggleable #p-personal {
	/* When sliding out */
	transition: z-index 0ms linear 255ms;
}
.mw-rtrc-ready.mw-rtrc-sidebar-on #p-personal {
	/* When sliding in */
	transition: z-index 0ms linear 0ms;
}

/* Make the sidebar standalone for transitioning. */
.mw-rtrc-sidebar-toggleable #mw-panel {
	background-color: #f6f6f6;
	top: 0; /* was 160px */
	padding-top: 0; /* was 1em */
	width: 11em; /* was 10em with 1em offset from #content */
	min-height: 100%;

	z-index: 1; /* overlap mw-rtrc-sidebar-cover */
	box-shadow: rgba(0, 0, 0, 0.5) 0 0 25px;
	will-change: transform;
}
/* flipped */
/* @noflip */
.mw-rtrc-sidebar-toggleable .ltr #mw-panel {
	border-right: 1px solid #a7d7f9; /* transferred from #content/border-left */
	transform: translate(-105%, 0);
}
.mw-rtrc-sidebar-toggleable #p-logo {
	position: static; /* was absolute */
	margin-bottom: 1em; /* transferred from #mw-panel/padding-top */
}
/* flipped */
/* @noflip */
.mw-rtrc-sidebar-toggleable .ltr #left-navigation {
	margin-left: 1em;
}
/* flipped */
/* @noflip */
.mw-rtrc-sidebar-toggleable .ltr #content {
	margin-left: 0;
	border-left: 0;
}
.mw-rtrc-sidebar-cover {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background: #000;
	will-change: opacity;
	opacity: 0;
	pointer-events: none;
}

/* navtoggle is inside #mw-panel and relative to its box */
.mw-rtrc-navtoggle {
	position: absolute;
	top: 10px;
	border: 0 solid #aaa;
	width: 10px;
	height: 15px;
	cursor: pointer;

	transform: scaleX(1);
}
/* flipped */
/* @noflip */
.ltr .mw-rtrc-navtoggle {
	left: 13.5em;
	border-width: 0 0 0 5px;
}
/* arrow */
.mw-rtrc-navtoggle:after {
	content: " ";
	width: 0;
	height: 0;
	position: absolute;
	border: 5px solid transparent;
	top: 50%;
	margin-top: -5px;
}
/* flipped */
/* @noflip */
.ltr .mw-rtrc-navtoggle:after {
	border-left-color: #333;
	margin-left: 5px;
}
.mw-rtrc-sidebar-toggleable #mw-panel:before {
	/* cover the space between navtoggle and mw-panel to avoid :hover gaps */
	content: "";
	position: absolute;
	top: 0;
	display: block;
	width: calc(13em + 30px);
	height: 40px;
}
/* flipped */
/* @noflip */
.mw-rtrc-sidebar-toggleable .ltr #mw-panel:before  {
	left: 0;
}

.mw-rtrc-sidebar-toggleable #mw-panel:hover .mw-rtrc-navtoggle {
	border-color: #fff;
	transform: scaleX(-1);
}
/* Must specify .ltr/.rtl to match specificity */
.mw-rtrc-sidebar-toggleable .ltr #mw-panel:hover,
.mw-rtrc-sidebar-toggleable .rtl #mw-panel:hover {
	z-index: 1;
	transform: none;
}
.mw-rtrc-sidebar-on #p-personal {
	z-index: 0; /* was 100 */
}
.mw-rtrc-sidebar-on .mw-rtrc-sidebar-cover {
	opacity: 0.5;
}

/* Buttons / Links */

.mw-rtrc-head-links {
	position: absolute;
	top: 0;
}
/* flipped */
/* @noflip */
.ltr .mw-rtrc-head-links {
	right: 1em;
}

.mw-rtrc-head-links a {
	display: inline-block;
	padding: 0 0.6em;
	color: #ccc;
}

.mw-rtrc-head-links a:hover {
	color: #fff;
	text-decoration: none;
	background: #555;
}

.mw-rtrc-wrapper .button:active {
	position: relative;
	top: 1px;
}

.mw-rtrc-wrapper select {
	/* Reset Vector's select { vertical-align: top; } */
	vertical-align: baseline;
}

.mw-rtrc-wrapper .helpicon {
	display: inline-block;
	margin: 0 0.3em 0.1em 0.3em;
	vertical-align: middle;
	width: 18px;
	height: 18px;
	line-height: 18px;
	background: #edab00;
	color: #fff;
	font-weight: bold;
	text-align: center;
}

.mw-rtrc-nohelp .helpicon {
	display: none;
}

.mw-rtrc-wrapper .button:hover,
.mw-rtrc-wrapper .helpicon:hover {
	cursor: pointer;
}

.mw-rtrc-head-links a:first-letter,
.mw-rtrc-diff-tools .tab:first-letter {
	text-transform: uppercase;
}

/* Settings */

.mw-rtrc-settings {
	margin: 0 auto;
	min-width: 1000px;
	text-align: center;
}

.mw-rtrc-settings fieldset,
/* Avoid unwanted margins in Timeless skin from (as of Feb 2024)
   `form:not(.oo-ui-layout) fieldset`
*/
.skin-timeless form.mw-rtrc-settings fieldset {
	display: inline-block;
	background: #fff;
	border-bottom-left-radius: 11px;
	border-bottom-right-radius: 11px;
	box-shadow: rgba(200, 200, 200, 1) 0 5px 15px;
	text-align: initial;
	/* reset mw/fieldset */
	margin: 0;
	padding: 0;
	border: 0;
}
/* Avoid unwanted margins in Timeless skin from (as of Feb 2024)
   `form input:not(.mw-widgets-datetime-dateTimeInputWidget-editField):not(.mw-history-compareselectedversions-button)`
*/
.skin-timeless form.mw-rtrc-settings input {
	margin: 0;
}

.mw-rtrc-setting-select {
	max-width: 80px;
}

.mw-rtrc-settings .panel-group {
	display: table;
}

.mw-rtrc-settings .panel-group:first-child {
	border-bottom: 1px solid #ddd;
}

.mw-rtrc-settings .panel {
	display: table-cell;
	width: 1px; /* auto doesn't work, cells will grow now from 1px */
	vertical-align: top;
	border-right: 1px solid #ddd;
	padding: 3px 5px;
	white-space: nowrap;
	text-align: center;
}

.mw-rtrc-settings .sub-panel {
	display: inline-block;
	vertical-align: top;
	text-align: initial;
	padding: 0 5px;
	border-right: 1px solid #ddd;
}

.mw-rtrc-settings .sub-panel:first-of-type {
	padding-left: 0;
}
.mw-rtrc-settings .sub-panel:last-of-type {
	border-right: 0;
	padding-right: 0;
}

.mw-rtrc-settings .panel .head {
	display: block;
	font-weight: bold;
}

.mw-rtrc-settings .panel-group-mini .head {
	display: inline-block;
}

.mw-rtrc-settings .button {
	padding: 6px 12px;
	border-width: 1px;
	border-style: solid;
	border-radius: 4px;
	font-weight: bold;
	font-size: 14px;
	line-height: 1.42;
	color: #fff;
	background-color: #357ebd;
	border-color: #3071a9;
}
.mw-rtrc-settings .button-small {
	padding: 3px 6px;
	font-size: 11px;
	line-height: 1.5;
	border-radius: 3px;
}
.mw-rtrc-settings .button:hover {
	background-color: #428bca;
	border-color: #428bca;
	cursor: pointer;
}
.mw-rtrc-settings .button:active {
	box-shadow: inset 0 4px 6px rgba(0, 0, 0, 0.250);
}
.mw-rtrc-settings .button-green {
	background-color: #4cae4c;
	border-color: #449d44;
}
.mw-rtrc-settings .button-green:hover	{
	background-color: #5cb85c;
	border-color: #5cb85c;
}
.mw-rtrc-settings .button-red {
	background-color: #d43f3a;
	border-color: #c9302c;
}
.mw-rtrc-settings .button-red:hover {
	background-color: #d9534f;
	border-color: #d9534f;
}
.mw-rtrc-settings .button[disabled]:hover {
	cursor: default;
}

/* Diff frame */

.mw-rtrc-diff {
	position: relative;
	width: 97%;
	margin: 20px auto 15px auto;
	padding: 0 1em;
	overflow: hidden;
	background: #fff;
	border-radius: 11px;
	box-shadow: rgba(200, 200, 200, 1) 0 5px 15px;

	transform-origin: top;
	transform: scaleY(1);
	max-height: 1000px;

	/* When opening, delay the slide until after we reserve the height */
	transition: transform 300ms ease-out 200ms, max-height 500ms ease-in;
}

.mw-rtrc-diff-closed {
	max-height: 0;
	transform: scaleY(0);

	/* When closing, no delay for height change since it is naturally behind
	   while lowering the height hidden in overflow to the actual height */
	transition: transform 300ms ease-in, max-height 300ms ease-out;
}

.mw-rtrc-diff-newpage {
	max-height: 400px;
}

.mw-rtrc-diff-loading {
	opacity: 0.4;
	pointer-events: none;
}

.mw-rtrc-diff h3 {
	margin: 0 1em 0.5em 0;
	border-bottom: 1px solid rgb(247, 246, 248);
	font-size: 21px;
	font-weight: normal;
	white-space: nowrap;
	overflow: hidden;
}

.mw-rtrc-diff table.diff {
	margin: 0;
	width: 100%;
}

/* Hide broken "Browse history interactively" link. */
.mw-rtrc-diff .mw-revslider-container,
/* Hide broken "Inline" toggle button. */
.mw-rtrc-diff .mw-diffPage-inlineToggle-container {
	display: none;
}

.mw-rtrc-diff-tools {
	position: absolute;
	top: 0;
	right: 2em;
	width: 80%;
}

.mw-rtrc-diff-tools .tab {
	float: right;
	display: block;
	font-weight: bold;
	margin-left: 3px;
	padding: 3px 10px;
	background-color:rgb(247, 246, 248);
	border-bottom-left-radius: 11px;
	border-bottom-right-radius: 11px;
}

.mw-rtrc-diff-tools .tab a:hover {
	cursor: pointer;
}

/* Feed */

.mw-rtrc-body {
	position: relative;
	width: 100%;
	margin: 20px auto 70px auto;
}

.mw-rtrc-body.placeholder {
	width: 100%;
	height: 600px;
	background: transparent url(https://upload.wikimedia.org/wikipedia/commons/9/9d/RTRC_Placeholder.png) top center no-repeat;
}

.mw-rtrc-body.placeholder > * {
	display: none;
}

.mw-rtrc-feed {
	position: relative;
	padding: 2em 0;
	background: #fff;
	font-size: 14px;
	border-top-left-radius: 11px;
	border-top-right-radius:11px;
	box-shadow: rgba(200, 200, 200, 1) 0 5px 15px;
}

.mw-rtrc-feed-update {
	position: absolute;
	top: 0.5em;
	left: 10%;
	width: 80%;
	font-size: smaller;
	text-align: center;
}

#krRTRC_loader {
	position: absolute;
	top: 0;
	right: 0;
}

.mw-rtrc-feed-content {
	margin: 0 0 -1.5em 0;
	width: 100%;
}

.mw-rtrc-item,
.mw-rtrc-heading {
	padding: 0 5px;
	white-space: nowrap;
	border: 1px solid transparent;
}

.mw-rtrc-item .mw-title {
	unicode-bidi: embed;
}

.mw-rtrc-item:nth-child(odd),
.mw-rtrc-heading:nth-child(odd) {
	background: #f3f3f3;
}

.mw-rtrc-item.mw-rtrc-item-alert {
	background: #ffd5d5;
}

.mw-rtrc-item.mw-rtrc-item-skipped {
	background: #d6d9e9;
}

.mw-rtrc-item.mw-rtrc-item-patrolled {
	background: #d9e9d6;
}

.mw-rtrc-item.mw-rtrc-item-current {
	background: #ffce7b;
	border: 1px solid orange;
}

.mw-rtrc-item-alert-rev .mw-rtrc-revscore {
	cursor: help;
}

.mw-rtrc-item-alert-user .mw-userlink,
.mw-rtrc-item-alert-rev .mw-rtrc-revscore {
	background: url(https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Nuvola_apps_important.svg/18px-Nuvola_apps_important.svg.png) 0 50% no-repeat;
	padding-left: 20px;
}

@media (min-resolution: 2dppx), (min-resolution: 192dpi) {
	.mw-rtrc-item-alert-user .mw-userlink,
	.mw-rtrc-item-alert-rev .mw-rtrc-revscore {
		background-image: url(https://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/Nuvola_apps_important.svg/36px-Nuvola_apps_important.svg.png);
		background-size: 18px;
	}
}

/* Acts like a table with table-rows, using divs to avoid fixed table-layout with forced width and oveflow issues */
.mw-rtrc-item div {
	display: inline-block;
	overflow: hidden;
	padding: 3px 0;
	vertical-align: middle;
}

.mw-rtrc-item div[first] { width: 40% }
.mw-rtrc-item div[user] { width: 24% }
.mw-rtrc-item div[comment] { width: 30% }
.mw-rtrc-item .mw-rtrc-meta {
	width: 6%;
	text-align: right;
}

.mw-rtrc-meta .mw-plusminus {
	font-size: smaller;
}

.mw-rtrc-legend {
	margin: 5px auto;
	padding: 5px 13px;
	background: #fff;
	border-bottom-left-radius: 11px;
	border-bottom-right-radius: 11px;
	box-shadow: rgba(200, 200, 200, 1) 0 5px 15px;
}

/* Diff pre-wrap (partially from wikibits/diff.css but there only adds pre-wrap for diffchange */
.mw-rtrc-available table.diff td {
	white-space: pre-wrap;
}

/**
 * On/Off switch checboxes.
 * Based on "iOS 6 style switch checkboxes" by Lea Verou https://lea.verou.me/
 */

.mw-rtrc-settings .switch {
	position: absolute;
	opacity: 0;
}

/* @noflip */
.mw-rtrc-settings .switch + div {
	direction: ltr;

	display: inline-block;
	vertical-align: middle;
	margin: 0 .5em;
	width: 3em;
	height: 1em;
	overflow: hidden;
	background: #fff;
	background-image: linear-gradient(rgba(0, 0, 0, .1), transparent),
	                  linear-gradient(90deg, #357ebd 50%, transparent 50%);
	background-size: 200% 100%;
	background-position: 100% 0;
	background-origin: border-box;
	background-clip: border-box;
	border: 1px solid rgba(0, 0, 0, .3);
	border-radius: 999px;
	box-shadow: 0 .1em .1em rgba(0, 0, 0, .2) inset,
		        0 .45em 0 .1em rgba(0, 0, 0, .05) inset;
	font-size: 150%;
	text-align: left;
	transition-duration: .4s;
	transition-property: padding, width, background-position, text-indent;
}

/* @noflip */
.mw-rtrc-settings .switch:checked + div {
	padding-left: 2em;
	width: 1em;
	background-position: 0 0;
}

/* @noflip */
.mw-rtrc-settings .switch + div:before {
	content: 'On';
	float: left;
	margin: -.1em;
	width: 1.65em;
	height: 1.65em;
	background: #fff;
	background-image: linear-gradient(rgba(0, 0, 0, .2), transparent);
	border: 1px solid rgba(0,0,0,.35);
	border-radius: inherit;
	box-shadow: 0 .1em .1em .1em hsla(0, 0%, 100%, .8) inset,
	            0 0 .5em rgba(0, 0, 0, .3);
	color: white;
	text-shadow: 0 -1px 1px rgba(0, 0, 0, .3);
	text-indent: -2.5em;
}

.mw-rtrc-settings .switch:active + div:before {
	background-color: #eee;
}

.mw-rtrc-settings .switch:focus + div {
	box-shadow: 0 .1em .1em rgba(0, 0, 0, .2) inset,
	            0 .45em 0 .1em rgba(0, 0, 0, .05) inset,
	            0 0 .4em 1px rgba(255, 0, 0, .5);
}

.mw-rtrc-settings .switch + div:before,
.mw-rtrc-settings .switch + div:after {
	font: bold 60%/1.9 sans-serif;
	text-transform: uppercase;
}

/* @noflip */
.mw-rtrc-settings .switch + div:after {
	content: 'Off';
	text-align: left;
	float: left;
	text-indent: .5em;
	color: rgba(0, 0, 0, .45);
	text-shadow: none;
}


/**
 * Manually flipped declarations
 * - We set @noflip everywhere because this gadget will
 *   be stored on-wiki and we need to disable the native flip
 *   mechanism because we'll deliver one version to all users.
 */

/* @noflip */
.mw-rtrc-sidebar-toggleable .rtl #mw-panel {
	border-left: 1px solid #a7d7f9;
	transform: translate(105%, 0);
}

/* @noflip */
.mw-rtrc-sidebar-toggleable .rtl #left-navigation {
	margin-right: 1em;
}

/* @noflip */
.mw-rtrc-sidebar-toggleable .rtl #content {
	margin-right: 0;
	border-right: 0;
}

/* @noflip */
.rtl .mw-rtrc-navtoggle {
	right: 13.5em;
	border-width: 0 5px 0 0;
}

/* @noflip */
.rtl .mw-rtrc-navtoggle:after {
	border-right-color: #333;
	margin-right: 5px;
}

/* @noflip */
.mw-rtrc-sidebar-toggleable .rtl #mw-panel:before  {
	right: 0;
}

/* @noflip */
.rtl .mw-rtrc-head-links {
	left: 1em;
}

.client-js .skin-vector #t-specialpages::before {
	content: "RTRC …";

	/* Imitate `.vector-menu-portal .vector-menu-content li` styles.
	   Padding 0+0.5 instead of 0.25+0.25 because we have to compensate for
	   being an LI pseudo-element child instead of sibling. */
	display: block;
	padding: 0 0 0.5em 0;
	line-height: 1.125em;

	/* Idle styling */
	cursor: wait;
	opacity: 0.5;
}
/* Ideally we'd use something like `li:not(#t-rtrc) + #t-specialpages::before` above,
   but we can't since there may be multiple portlet links inserted this way, so we
   have to use sibling (~) instead of adjecent (+). And, when negating a sibling
   selector, it doesn't stop matching once #t-rtrc is created as it would simply
   keep matching via another sibling instead. */
.client-js .skin-vector #t-rtrc ~ #t-specialpages::before {
	display: none;
}