mediawiki-skins-Citizen/resources/skins.citizen.styles/common/common.less
alistair3149 6f7f548680
feat(core): only use overflow when needed for mw-body
Assigning overflow property that is not clip will block position:sticky from working.
Instead, Citizen will only apply overflow:clip with a fallback to hidden in smaller viewport.
2022-05-23 18:18:53 -04:00

263 lines
3.8 KiB
Plaintext

/*
* Framework
*/
html {
scroll-padding-top: ~'calc( var( --height-header ) + 20px )'; // fixed header offset, supported by major browsers
}
html,
body {
min-height: 100%;
padding: 0;
margin: 0;
accent-color: var( --color-primary );
background: var( --color-surface-0 );
color: var( --color-base );
}
:focus {
outline-color: var( --color-primary );
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: var( --color-base--emphasized );
}
table {
overflow: auto;
max-width: 100vw;
}
hr {
border: 0;
border-top: 1px solid var( --border-color-base--darker );
}
ul,
ol {
padding: 0;
}
p,
ul,
ol,
dl {
margin: @content-margin-top 0 0 0;
}
pre,
code,
.mw-code {
border: 1px solid var( --border-color-base );
background-color: var( --color-surface-2 );
}
code {
padding: 1px 4px;
}
pre,
.mw-code {
padding: 1rem;
border-radius: var( --border-radius--large );
/* Wrap lines in overflow. T2260, T103780 */
white-space: pre-wrap;
word-break: break-word;
}
input,
select,
textarea {
border: 1px solid var( --border-color-base );
background-color: var( --color-surface-1 );
color: inherit;
}
fieldset {
padding: @content-margin-top / 2 20px;
border: 1px solid var( --border-color-base );
margin: @content-margin-top 0;
}
fieldset > table {
margin-top: 0 !important;
}
legend {
padding: 4px;
margin: 0;
color: var( --color-base--subtle );
}
textarea {
width: 100%;
}
blockquote {
margin: @content-margin-top var( --padding-page );
color: var( --color-base--subtle );
cite {
display: block;
margin-top: @content-margin-top * @content-scaling;
&:before {
content: '— ';
}
}
}
sup,
sub {
line-height: 1;
}
dd {
margin-bottom: 0.1rem;
margin-left: @content-margin-top * 2;
}
td {
> p,
> ul,
> ol {
&:first-child {
margin-top: 0; // Remove margin for the first element in td
}
}
}
a {
color: var( --color-link );
text-decoration: none;
&:not( [ href ] ) {
cursor: pointer;
/* Always cursor:pointer even without href */
}
&:hover {
color: var( --color-link--hover );
}
&:active {
color: var( --color-link--active );
}
&.new {
color: var( --color-link-new ); // Override visited
&:hover {
color: var( --color-link-new--hover );
}
&:active {
color: var( --color-link-new--active );
}
}
&.mw-selflink {
color: inherit;
font-weight: bold;
text-decoration: inherit;
&:hover {
cursor: inherit;
text-decoration: inherit;
}
&:active {
color: inherit;
}
}
}
.error {
padding: 2px 4px;
background-color: var( --background-color-destructive );
}
.nowrap {
white-space: nowrap;
}
/*
* Content
*/
.mw-body,
.parsoid-body {
direction: ltr;
}
// TODO: Think of better places to put indicators;
.mw-indicators {
padding-left: 10px;
border-left: 1px solid var( --border-color-base );
margin-left: 10px;
font-size: @ui-menu-text;
}
.printfooter {
display: none;
}
div.patrollink {
font-size: 75%;
text-align: right;
}
video {
max-width: 100%; // Prevent overflow
}
.skin-citizen-dark {
color-scheme: dark;
.mw-editsection > a:before {
filter: invert( 1 );
}
.mw-indicator {
filter: invert( 1 ) hue-rotate( 180deg );
// Have to hardcode the color since the filter breaks the color
a {
color: @color-primary;
&:hover {
color: @color-primary--hover;
}
&:active {
color: @color-primary--active;
}
}
}
}
@media ( max-width: @width-breakpoint-tablet ) {
.mw-body,
.parsoid-body {
overflow-x: hidden; // fallback if clip is not supported
overflow-x: clip; // avoid breaking layout in smaller screen sizes
}
table {
display: block;
}
}
@media ( min-width: @width-breakpoint-tablet ) {
// Delay scroll animation won't happen on load
// Use it only for larger viewport as it is very costly
// on mobile devices
html.citizen-animations-ready {
scroll-behavior: smooth;
}
}