mediawiki-extensions-Revisi.../modules/ext.RevisionSlider.less
thiemowmde 93d33916a4 Replace some more colors with LESS design tokens
This doesn't fully solve T370572 but already improves the situation
a bit, without causing any change in light mode. Notably: The 1px
separator between the individual bars was hard-coded white before.

I suggest to continue working on this in separate patches, not make
this patch more complicated.

Bug: T370572
Change-Id: I1a2159221bfc37f23e85e6aa7d6beed1f149163f
2024-07-23 20:34:28 +00:00

427 lines
7.9 KiB
Plaintext

@import 'mediawiki.skin.variables.less';
@import 'mediawiki.mixins';
@new: #1e6db8;
@old: #fc3;
/* Use darker color for handle */
@oldHandle: darken( @old, 18% );
.mw-revslider-container-expanded {
margin-bottom: 15px;
}
.mw-revslider-container-collapsed {
margin-bottom: 0;
}
.mw-revslider-auto-expand-button {
position: absolute;
top: 0;
/* default button width + default button margin ( 1.875em + 0.234375em ) */
right: 2.109375em;
}
.mw-revslider-revision {
position: relative;
margin-top: 70px;
background-color: #e3e3e3;
border-color: #e3e3e3;
z-index: 1;
&-up {
border-bottom: @border-width-thick @border-style-base @border-color-transparent;
}
&-down {
border-top: @border-width-thick @border-style-base @border-color-transparent;
}
}
.mw-revslider-revision-new,
.mw-revslider-revision-old,
.mw-revslider-revision-intermediate {
.mw-revslider-revision {
background-color: #bcbcbc;
border-color: #989898;
}
}
.mw-revslider-revision-border-box {
height: 100%;
width: 100%;
border-left: @border-width-base @border-style-base @background-color-base;
box-sizing: border-box;
.mw-revslider-revision-old & {
border-bottom: @border-width-thick @border-style-base @old;
}
.mw-revslider-revision-new & {
border-bottom: @border-width-thick @border-style-base @new;
}
.mw-revslider-revision-filter-highlight & {
border: @border-width-base @border-style-base @border-color-interactive;
background-color: #7f7f7f;
}
}
.mw-revslider-revision-wrapper {
display: inline-block;
height: 140px;
&:hover,
&-hovered {
background-color: #f2f2f2;
}
&-up,
&-down {
top: 0;
height: 70px;
position: absolute;
z-index: 1;
}
&-down {
top: 70px;
}
}
.mw-revslider-revision-hovered {
&.mw-revslider-revision-wrapper-up .mw-revslider-pointer-ghost {
background-color: lighten( @new, 30% );
border: @border-width-thick @border-style-base @new;
bottom: -4px;
}
&.mw-revslider-revision-wrapper-down .mw-revslider-pointer-ghost {
background-color: lighten( @oldHandle, 30% );
border: @border-width-thick @border-style-base @oldHandle;
top: -1px;
}
}
.mw-revslider-pointer.mw-revslider-pointer-ghost {
z-index: 2;
width: 11px;
height: 11px;
left: 1px;
cursor: pointer;
}
.mw-revslider-revision-wrapper-hovered .mw-revslider-revision-hovered {
cursor: pointer;
&.mw-revslider-revision-wrapper-up {
background-color: fade( @new, 30% );
}
&.mw-revslider-revision-wrapper-down {
background-color: fade( @old, 30% );
}
}
.mw-revslider-tooltip {
font-size: 13px;
}
.mw-revslider-revision-tooltip {
.oo-ui-popupWidget-body {
padding-right: 21px;
}
.mw-revslider-change-positive {
color: @color-content-added;
}
.mw-revslider-change-negative {
color: @color-content-removed;
}
.mw-revslider-change-none {
color: #aaa;
}
.mw-revslider-filter-highlightable-row {
border: @border-width-base @border-style-base @border-color-transparent;
border-radius: @border-radius-pill;
margin-left: -8px;
padding-left: 7px;
&.mw-revslider-filter-highlight {
border-color: #e0e0e0;
}
}
}
.mw-revslider-arrow-tooltip,
.mw-revslider-help-tooltip {
text-align: center;
}
.mw-revslider-revisions {
height: 140px;
white-space: nowrap;
}
.mw-revslider-revisions-container {
width: 90%;
position: relative;
overflow: hidden;
}
.mw-revslider-revisions-container,
.mw-revslider-arrow {
float: left;
}
.mw-revslider-arrow {
width: 22px;
height: 142px;
&.oo-ui-buttonElement .oo-ui-buttonElement-button {
min-width: 0;
width: 20px;
min-height: 0;
height: 140px;
padding: 0;
}
&.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
min-width: inherit;
width: 20px;
min-height: inherit;
}
&-backwards {
margin-right: 30px;
}
&-forwards {
margin-left: 30px;
}
}
/* This is a bit hacky way, the goal being to have a framed toggle button widget with some styles
of the frameless one (to fit the size of the toggle button */
.mw-revslider-container .mw-revslider-auto-expand-button .oo-ui-buttonElement-button {
padding: 0;
width: 1.875em;
height: 1.875em;
background-color: @border-color-transparent;
border: 0;
}
.mw-revslider-auto-expand-button.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
display: block;
position: static;
margin: auto;
}
.mw-revslider-revision-slider {
position: relative;
margin: auto;
}
.mw-revslider-pointer-container {
pointer-events: none;
position: absolute;
cursor: pointer;
clear: both;
top: 65px;
z-index: 1;
}
.mw-revslider-pointer {
pointer-events: all;
position: absolute !important; /* stylelint-disable-line declaration-no-important */
z-index: 1;
width: 14px;
height: 14px;
border-radius: @border-radius-circle;
&:focus {
outline: @border-width-thick @border-style-base @outline-color-progressive--focus;
}
&-cursor {
cursor: grab;
}
&-grabbing,
&.mw-revslider-pointer-grabbing:hover {
cursor: grabbing;
}
&.mw-revslider-pointer-newer {
top: -6px;
border: @border-width-base @border-style-base @new;
.vertical-gradient( lighten( @new, 30% ), @new );
&:hover,
&:focus {
.vertical-gradient( lighten( @new, 40% ), @new );
}
}
&.mw-revslider-pointer-older {
top: 4px;
border: @border-width-base @border-style-base @oldHandle;
.vertical-gradient( lighten( @oldHandle, 30% ), @oldHandle );
&:hover,
&:focus {
.vertical-gradient( lighten( @oldHandle, 40% ), @oldHandle );
}
}
}
.mw-revslider-slider-line {
margin: 0 10px;
.mw-revslider-pointer-container-newer & {
margin-top: -12px;
margin-bottom: 4px;
border-bottom: 4px @border-style-base fade( @new, 50% );
}
.mw-revslider-pointer-container-older & {
margin-top: 8px;
border-top: 4px @border-style-base fade( @old, 50% );
}
.mw-revslider-pointer-container-newer:hover & {
border-bottom-color: fade( @new, 80% );
}
.mw-revslider-pointer-container-older:hover & {
border-top-color: fade( @old, 80% );
}
}
.mw-revslider-revisions-older {
float: left;
}
.mw-revslider-revisions-newer {
float: right;
}
.mw-revslider-diff-loading {
opacity: 0.5;
}
.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .mw-revslider-help-dialog > .oo-ui-window-frame {
top: 30%;
bottom: auto;
}
.mw-revslider-help-dialog-image-landscape,
.mw-revslider-help-dialog-image-portrait {
height: 160px;
width: 100%;
background-repeat: no-repeat;
background-position: center;
}
.mw-revslider-help-dialog-image-portrait {
height: 180px;
}
.mw-revslider-column-image {
width: 50%;
float: left;
}
.mw-revslider-column-text {
width: 50%;
float: right;
white-space: pre-wrap;
}
.mw-revslider-help-dialog-text {
font-size: 14px;
line-height: 1.5;
}
.mw-revslider-show-help {
position: absolute;
right: 0;
bottom: 0;
margin-right: 0;
z-index: 1;
}
.mw-revslider-pointer-line-upper,
.mw-revslider-pointer-line-lower {
border: 0 @border-style-base @border-color-transparent;
}
.mw-revslider-pointer-line {
/* @noflip */
margin-left: 1px;
position: absolute;
top: 73px;
.mw-revslider-left-line {
/* @noflip */
border-left-width: @border-width-thick;
}
.mw-revslider-right-line {
/* @noflip */
border-right-width: @border-width-thick;
}
.mw-revslider-bottom-line {
border-bottom-width: @border-width-thick;
}
.mw-revslider-lower-color {
border-color: @old;
}
.mw-revslider-upper-color {
border-color: @new;
}
}
.mw-revslider-pointer-older {
.mw-revslider-pointer-line-upper {
height: 81px;
}
.mw-revslider-pointer-line-lower {
height: 17px;
}
}
.mw-revslider-pointer-newer {
.mw-revslider-pointer-line-upper {
height: 71px;
}
.mw-revslider-pointer-line-lower {
height: 27px;
}
}
.mw-revslider-pointer-line-underline {
border-bottom: @border-width-thick @border-style-base;
}
.mw-revslider-bubble {
height: 1.428571em;
width: 1.428571em;
background-color: #ccc;
border-radius: @border-radius-circle;
display: inline-block;
float: right;
}
.mw-revslider-filter-highlight-bubble {
background-color: #72777d;
border: #e0e0e0;
}